
动态图的表示学习是现实世界动态网络研究中的重要组成部分。其不仅需要抓住节点特征和相关关系,而且需要对一段连续时间上的动态变化建模。本文针对动态图表示学习的两篇工作,介绍了目前常用的方法,并提出了一些未来研究的展望。近年来,得益于图(graph)模型对系统内的关系和作用简单直观的建模,图表示学习(graphrepresentation learning)在社会学、生物学等众多领域取得了一系列成功。一般的图学习方法主要基于图神经网络(graph neuralnetwork, GNN):图中的节点会聚合邻居节点的信息,从而学习节点或图的表示,进而解决节点分类、图分类等问题。但这些方法大多都假定了待处理的图是静态的(static),然而,现实生活中,我们遇到的很多关系图(例如社交网络)都是动态的(dynamic),图中的边和节点会随着时间流逝而不断变化。而有时,我们恰恰想要了解的就是这些随时间变化而变化的特征。对于这种情形,传统的静态图学习方法可能就不适用了。在本文中,我们介绍了两篇动态图表示学习的工作。第一篇作者提出了使用两个递归神经网络对用户-项目(user-item)关系建模的方法JODIE;第二篇作者提出了学习连续时间动态图(continuous-timedynamic graphs)的通用框架Temporal Graph Networks (TGNs),并指出之前的许多方法都是此框架的具体实例。原文《Predicting DynamicEmbedding Trajectory in Temporal Interaction Networks》发表在The 25th ACM SIGKDDConference on Knowledge Discovery and Data Mining (KDD 19)。
文中提出了一种不同于之前学习方法只在用户(user)-项目(item)交互发生时学习嵌入(embedding),而是使用两个递归神经网络的模型,文章中称其为JODIE(Joint Dynamic User-Item Embedding Model)。并在实际的预测任务上,取得了比目前最优的方法更好的效果。
论文地址:https://doi.org/10.1145/3292500.3330895
用户(user)-项目(item)交互发生在很多领域,如电子金融,网上课程等。同一用户在一段时间内可能会与许多不同的项目相互发生交互,并且这些关系是在不断变化的。

例如上图中,每条交互伴随着交互发生的时间
和特征
(如一个用户对一个物品的购买数量)。对这些交互的实时预测是推荐系统领域重要的研究课题。
表示学习的方法通过学习用户和项目的低维表示,可以得到用户和项目的特征。然而对现实世界中实时关系的建模,表示学习的方法面临着以下四个问题:
1. 大多数方法只在交互发生时更新节点嵌入,如果没有交互,则嵌入不会更新。
2. 节点有固定属性和时变属性两种特征的,大多数方法只考虑到了其中一种。
3. 通过用户为所有项目打分来预测交互的方法具有线性时间复杂度,处理大规模数据是不切实际的。
4. 大多数现有方法不适用批处理学习(train with batchesof data)。
在本文中,作者改进了现有的表示学习方法,提出了JODIE模型。其目标为通过一段时间[0,T]上一系列用户-项目交互的特征
来建模用户嵌入轨迹(embeddingtrajectories of users)
和项目嵌入轨迹(embedding trajectories of items)
,其中
。

静态嵌入(Static Embeddings)和动态嵌入(Dynamic Embeddings)本文使用one-hot向量
作为静态嵌入表示用户和项目的固定属性和长时间行为。
作为动态嵌入代表用户和项目的时变属性。随着时间发展,动态嵌入形成时间序列,文章中称之为轨迹(trajectory)
嵌入更新操作(Embedding updateoperation)更新操作中,我们将利用用户u和项目i之间在时刻发生的交互S=(u,i,t,f)来产生动态嵌入和。模型整体关系如下所示:

其中
和
通过如下的循环神经网络更新用户和项目的嵌入:
公式中更新函数
为sigmoid函数,△u(△i) 为 u(i) 距离上一次与其他 i(u) 发生交互的时间,W 为需要学习的参数矩阵。嵌入投影操作(Embeddingprojection operation)
投影操作用来预测用户未来的嵌入轨迹,从而应用在关系预测等下游任务。
为计算用户 t+△ 在时刻的嵌入投影,我们只需根据用户在 t 时刻的嵌入 u(t) 和下面的公式计算:
其中 w 是由间隔时间△经过线性变化
得到,
为需要学习的参数,* 为对应元素乘积。
嵌入预测(Predict next itemembedding)
若已知用户 u 和项目 i 在 t 时刻发生交互,并且用户 u 与项目 j 在时刻 t+△发生交互,我们可能会想了解 t+△时刻之前, u 是否与某个项目发生交互?在这个预测环节,本文的创新点在于不同于大多数方法给出u与其他项目发生交互的概率(这会导致线性时间复杂度),而是给出一个项目的预测嵌入
(常数时间复杂度)。具体计算公式如下,其中 W 和 B 为线性层的参数:
损失函数
本文采用如下的
损失函数来训练模型:

其中[x,y]为向量拼接
训练数据批处理(Training databatching,t-Batch)
分批处理的主要思想为从关系网络中抽取相互独立的边作为一批数据。(即保证不同批数据间不含相同的用户或项目)具体实现可参考原文。

本文将提出的JODIE模型用于未来关系预测(future interactionprediction)和用户状态改变预测(user state change prediction)两种情景,均得到了比现今最好的方法还要好的结果。

本文中作者还比较了JODIE模型和其他模型的训练时间和模型的健壮性,各种不同的指标均证明了本文模型有一定优越性。
原文《Temporal Graph Networks for Deep Learning on DynamicGraphs》发表在arXiv, 2020。
文中提出了在一种深度学习随时间变化的动态图的通用框架Temporal Graph Networks (TGNs),显著优于以前的方法,并且计算效率更高。进一步的研究表明,以前的一些动态图模型可以表示为新框架的具体实例。
论文地址:https://arxiv.org/abs/2006.10637我们将动态图建模为一系列带有时间戳的事件
,其中
表示在
时间 发生的事件,可能有两种类型:
(1)与图中节点有关的事件
:可能图中新产生了一个节点,或者节点被更新。(2)与图中边有关的交互
: 表示在 t 时刻,图中产生了一条 i 到 j 的边。关于删除一条边的表示在论文附录中也有讨论。
表示图中的节点集
表示图中的边集
表示图中节点 的邻居
表示节点 的 k 步可达邻居
表示t时刻动态图的快照(snapshot),节点个数记为n(t)本文的主要贡献在于动态图建模的框架Temporal Graph Network(TGN),其主要由以下几个模块组成:
内存(Memory)模块
类似于 RNN 的隐状态,存储图中节点的状态,作为节点过去交互的压缩表示。具体而言,t 时刻图中存在的节点 i 都有一个状态
被记录下来。当新节点被加入时,其状态将被初始化为零向量。
当一个与节点 i 相关的事件发生时,消息函数模块会计算消息,用来更新内存。分为以下两种情况:当事件是一个交互
时,将会计算下面两条消息:


当事件是节点相关事件
时,只有一条消息会被计算:

其中
是内存中节点在时刻以前的状态,
为可学习的函数。在本文中为简便,选取了恒同函数(identity)作为消息函数,即各输入的拼合(contatenation)。

当一个与节点 i 有关的事件发生时,节点的内存状态将会根据产生的消息而被更新:
注意在这里我们采用分批(batch)训练并更新的方式,所以在每次更新的时候,对每个节点而言,可能会产生不止一条消息,故上式中的
实际表示为一个batch 中节点产生消息的聚合。在本文中主要考虑了两种聚合函数:最近的消息(most recent message)和均和消息(mean message)。


其中 h 是可学习的函数。本文中主要考虑了以下四种类型:1. 恒同(Identity):
2. 时间投影(Time project,time):
其中 w 是需要学习的参数, △t 是距离上次发生与节点有关事件的时间间隔,○表示向量对应元素乘积。
3. Temporal Graph Attention(attn):引入 L 层图注意力机制,收集节点的步邻居信息得到节点嵌入。
其中细节较为复杂,具体实现可以参照论文原文。
4. Temporal Graph Sum(Sum):一种较attn更快的聚合方式。
具体实现可以参照论文原文。

当读入一批新数据时,首先会根据信息函数更新节点的内存表示,再用得到的新的内存产生节点嵌入,用于要处理的问题(边的预测、节点分类等等)。图示表示如下:


文章中还阐述了本框架与其他连续时间动态图的建模方法之间的联系。以前的很多方法,都可以看成是新框架TGN的具体实现,将不同的内存更新、节点嵌入、消息聚合方法进行组合,就得到了各种不同的方法。例如Jodie便是采用了时间投影的嵌入模块,其他方法的比较如下表所示:
最后,作者对比了新框架与其他方法在边预测和节点分类问题上的性能,采用的三个数据集分别是Wikipedia, Reddit和Twitter。在作为对照的其他方法中,既有在现今研究中表现很好的Jodie、DyRep等连续时间动态图的方法,也有GAE、VGAE、DeepWalk等静态图方法。

上表是不同方法在边预测(future edgeprediction)任务中的表现汇总。本文提出的新方法(采用attn嵌入的TGN)直推式(transductive)和归纳式(inductive)情景下,都表现出了比其他方法更高的准确度,尤其是在Twitter数据集下。在动态节点分类(dynamic nodeclassification)任务中,新方法同样超过了其他方法:

-总结-
动态图上表示学习还是一个新兴课题。通过本文介绍的两篇文章,我们能了解其中一些基础的方法和思想,对后续关于动态图方面的表示学习工作有一定的参考意义和启发价值。同时,未来仍有很多工作等待我们探索。例如,可以在关系预测中添加节点聚类以减少参数等。
相 关 链 接论文导读 | 大规模动态图上的节点相似度计算
论文导读 | 动态图上神经网络模型综述
GPU上的动态图
RDF四元组面向动态图的优势
论文导读|DynGCN:基于时空建模的动态图卷积网络
论文导论|动态任务分配-GPU上图计算的高效处理方式