论文笔记之Dynamic Heterogeneous Graph Neural Network for Real-time Event Prediction

Dynamic Heterogeneous Graph Neural Network for Real-time Event Prediction

本文是滴滴发在KDD2020的paper。
文中指出用户响应预测的困难在于模型需要考虑真实物理环境中的历史信息和实时事件信息。
本文提出了使用动态构建的异构图来编码事件的属性和事件发生的周围环境。除此之外,文中提出了一种多层图神经网络模型来学习历史行为和周围环境对于当前事件的影响,生成有效的事件表示来改善相应模型的准确性。

首先文中定义了几个术语:PreView, Request, Cancel_Order, Finish_Order

PreView指的是用户确定起点和终点,页面上会显示出路线,服务类型,估计价格。Request指的是用户点击按钮,触发打车事件。Cancel_Order指的是司机到达前用户取消订单。Finish_Order指的是司机将用户送到目的地,用户付钱,完成整个交易流程。
本文的目标是对PreView事件建模,估计用户点击Request按钮的概率。

上图表示一个用户的打车流程。
文中使用名词POI(Point Of Interest)来表示地图上所有可能的上车和下车点。如上图所示,不同的用户行为同时发生在各个不同的POIs.
用户是否会点击Request按钮会由很多因素来决定。一些因素是显式的,可以直接从数据源中获取,比如用户当前位置和上车点位置的距离,天气,时间等;一些因素是隐式的,比如用户对于等待的意愿,用户对于这笔花销的意愿,用户对于路线的满意程度等等,这些特征很难直接获取。
一种解决方案是从历史数据和当前时间的观测中引入一些代替的特征,比如用户行为历史中和交易相关的行为,当前实时物理环境中发生的一些事件等等。
比如用户在当前PreView之前可能已经完成了多个订单,我们可以使用这些历史信息来捕捉用户的潜在特征,比如用户对于服务类型的偏好,用户对于花销的意愿程度等等。
具体的,用户更倾向于对那些和之前已经完成的PreView类似的PreView发起Request。同样的,我们也可以从用户没有完成的PreView中来抽取负特征。
为了计算PreView之间的相似性,文中提出使用从历史数据中学习到的embedding。除此之外,我们希望embedding能够捕捉当时周围环境的供求情况。为了达到这一目的,文中提出利用周边地区同时发生的一些事件。比如周边地区有许多需求没有被满足,那么当前的供求关系是不平衡的。再比如周边地区有许多取消订单,那么路况可能是拥挤的,或者期望等待时间很长。由此可见,一些历史数据和当前正在发生的实时数据都能为预测模型提供信息。
然而,历史数据和实时数据对于当前分析事件的相关程度是不同的,因此引入异构图来表示这些关系。

在动态异构图中embed实时事件的挑战在于:
1)对于每个新发生的事件,需要对于这个时间动态构建一个图,包括收集相关乘客的历史事件,以及周边区域发生的事件。
2)图中的实体和关系是异构的。比如时间有PreView,Request等,事件之间的关系有相同的乘客,相同的起点等。
3)对于我们关注的事件,不同的实体和不同的关系的影响的重要性程度也是不同的。
4)对于大规模实时事件进行建模。

文中并没有采用在训练阶段embed item的做法,而是提出了一种新的框架来实时生成事件的表示,使得能够捕捉用户行为和周围环境的动态变化。
每个实体的embedding以一种基于GNN的inductive的方式生成。(实体包括事件,物品,用户行为等)

整个方法主要包括以下几个步骤:
1)为每个事件构建一个动态异构图。
2)使用文中提出的异构图embedding算法来生成事件的embedding。
3)基于实体的embedding进行实时预测。

文中提出了一个概念叫heterogeneous session(h-session)。比如在一次打车的行为过程中,在PreView事件之后,可能会有Request, Finish_Order, Cancel_Order等,这些事件就属于一个h-session,描述了用户一次完整的打车行为。
构建完异构图后,文中提出了一种新的图学习算法REGNN(Real-time Event Graph Neural Network)来生成事件的embedding。

对于每个需要预测的实时事件,动态创建一个异构图,图中包括了相关h-session中的事件和其他相关的实体。图中的边表示了节点之间各种复杂的关系,包括时间顺序上的关系,空间位置的关系,以及其他的逻辑关系。

上图记录了文中用到的一些符号表示。

定义图G=(VG,EG,OV,RE),节点映射函数VG->OV,边映射函数EG->RE,VG中的每个节点对应OV中的一种类型,EG中的每条边对应RE中的一种类型。当|OV|=1并且|RE|=1时,图为同构图;否则,图为异构图。

PROBLEM FORMULATION

问题定义,PreView Conversion Prediction.
given PreView事件 PT = (p,o,d,T), T表示时间,o表示起点,d表示终点,p表示用户。目标是估计用户p触发事件Request的概率yT,通过embedding一系列历史的动态异构图[G_PT, G_PT-1,..., G_PT-N+1],G_Pt表示事件Pt的动态异构图,t=T-N+1,...,T.
G_P中包含了不同类型的事件和物品,embedding模型的目标是学习一个函数

给出一个时间序列信息和(1)中获得的embedding,上层模型的目标是学习一个模型Gθ,其中θ是参数来预测yT。

T为timestamp,Et表示时间t事件的embedding,N表示时间序列的长度。

METHODOLOGY

首先介绍real-time event embedding框架。
考虑对于PreView最相关的属性:乘客,时间戳,起点,终点。
从乘客的角度,可以从其历史行为事件中获得信息。从起点和终点的角度,可以通过综合这两个地点的事件信息获得空间的表示。

整个工作流图如上所示。
•given PreView事件PT=(p,o,d,T),根据下面的流程生成异构图:
1)乘客视角:挑选乘客一周内在时间T之前最近的Np个PreView事件(包括Request, Finish_Order, Cancel_Order)。对于这些事件在图中创建相关的邻居节点,关于乘客p的这个子图记为HetGp,T。
2)起点和终点视角:在同时发生的PreView事件中,挑选在时间戳T之前x分钟内的和PT相同起点的PreView事件,包括它们相关的Request, FInish_Order, Cancel_Order事件。这些事件添加到图中作为起点子图HetGo,T.另一方面,以相同的方式构建终点子图HetGd,T.
3)为了整合历史PreViews的时空信息,用RNN学习历史事件序列的hidden state,以键值对的方式存储它们。因此,事件序列的下一个序列能够快速的预测和更新。

•根据这些事件和当前事件PT之间的关系,添加相关类型的边。比如属于同一个h-session这种关系,或者是各自属于的h-session之前有序列关系等。

•在构造的异构子图上,使用REGNN来生成PT的实时事件embedding。

•最后,生成的事件embedding作为下游预测任务的输入。

上图展示了PreView模型的具体细节。最下面三层是三个GAT,分别对应不同的粒度(GAT within h-session, GAT across h-sessions within the same subgraph, GAT across subgraphs),之后接GRU层,接MLP层,最后给出预测。

Dynamic Heterogeneous Graph Construction

PT的动态异构图G_PT由三种子图组成

分别表示乘客子图,起点子图和终点子图。+表示图的join操作,定义为G=G1+G2, G1=(V1,E1), G2=(V2,E2),那么G的节点为V1∪V2,G的边为E1∪E2.
三个子图的构建过程如下:
•inside h-session.连接同一session中的事件来构建子图。
•across h-session.为了分析前面的h-session对于目标PreView的影响,添加前面h-session到目标PreView之间的边。然而,不同的h-session起到的影响效果是不同的,因此边的类型也是不同的,

PreView Event Graph Embedding

PT表示在时间T的PreView,使用最近的N个h-session来构建关于PT的图。
对于三种level,使用了三种不同的embedding模型。
•GATs inside h-session.

上式中○+符号表示concatenate,OV表示一个h-session中不同类型的事件,K表示heads的总数(GAT中的head,即一条边上做几次attention)。h(1)h_s表示做一次GAT之后h-session的隐状态,h(0)h_s表示h-session的初始状态,用PreView事件的节点特征进行初始化。(P,R,F,C分别代表PreView,Request,finish,cancel)

•GATs across h-session.
在不同的h-session之间执行attention操作。对于不同子图中的h-session,GAT如下

Np,No,Nd分别表示乘客子图,起点子图,终点子图中不同的时间戳的总数。
需要注意的是t从0开始,即加上了self attention.
GATp的操作如下,GATo和GATd类似。

各符号的意义和前面类似。
•GATs across subgraphs.

最终综合三个子图,计算最后的embedding。
具体式子如下,

OG表示不同类型的异构子图。其余符号和前面的类似。

Event Time-series Embedding

利用RNN对用户过去的PreView之间的时序依赖建模。文中使用了GRU

ET是在时间T进行global attention得到的最终embedding,也就是(7)中的hgPT.

Objective And Model Training

最终的损失函数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343