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
最终的损失函数