时态图网络:即使很久不发朋友圈,也能知道你的新兴趣


时态图网络:即使很久不发朋友圈,也能知道你的新兴趣文章插图
编译 | 龚倩
校对 | 青暮
现实世界中 , 各种性质的交易网络、社会互动和交往等许多问题都是动态的 , 并且都可以被建模成节点和边随时间变化的图 。 在这篇文章中 , 我们介绍了时态图网络 , 这是由Twitter开发的 , 用于动态图深度学习的通用框架 。 本文作者是Twitter的图学习研究负责人Michael Bronstein 。
图神经网络(GNN)的研究已经飞速成为今年机器学习领域最热门的话题之一 。 近期 , 人们见证了GNN在生物学、化学、社会科学、物理学和许多其他领域中取得了一系列的成功 。
到目前为止 , GNN模型主要是针对不随时间变化的静态图开发的 。 然而 , 真实世界里许多值得关注的图却是动态的 , 是会随着时间的推移不断发展变化的 , 其中突出的例子包括社交网络、金融交易和推荐系统等 。
在许多情况下 , 正是这类系统的动态行为向人们传达出重要的信息 , 而如果只考虑静态图 , 我们就很难得到这些重要的信息 。
时态图网络:即使很久不发朋友圈,也能知道你的新兴趣文章插图
在一个动态的Twitter用户网络里 , 用户们通过发布推特进行交互并相互关注 。 图中所有的边都有一个时间戳 。 我们想要基于这样一个动态图来预测未来的交互如何发生 , 比如用户会喜欢哪种类型的推特 , 或者他们会选择关注谁 。
动态图可以表示为时间事件的有序列表或异步“流” , 例如节点和边的添加或删除 。 像Twitter这样的社交网络就是一个很好的例子:当一个人开始使用Twitter时 , 图中就会创建一个新的节点 。 当用户们关注另一个用户时 , 图中就会创建一个边 。 当用户更改其配置文件时 , 图中的节点将会被更新 。
时态图网络:即使很久不发朋友圈,也能知道你的新兴趣文章插图
事件流被编码器神经网络接收 , 该神经网络为图的每个节点生成了一个与时间相关的嵌入 。 嵌入的内容可以被传输到针对特定任务而设计的解码器 。
一个示例任务是通过尝试回答以下问题来预测未来的交互:节点i和 j在t时刻出现边的概率是多少?对于推荐系统来说 , 解决这个问题的能力是至关重要的 , 例如为社交网络用户推荐关注者 , 或者为特定用户推荐展示内容 。 如下图所示:
时态图网络:即使很久不发朋友圈,也能知道你的新兴趣文章插图
本图展示了一个TGN编码器接收了一个具有七条可视边(分别带有时间戳 t?到 t?)的动态图 , 目的是预测在t?时刻(即图中灰色边缘) , 节点2和节点4之间出现交互的概率 。 为此 , TGN在t?时间点计算节点2和节点4的嵌入 , 然后将这些嵌入串联起来并传输到解码器(例如MLP) , 最后解码器输出两节点发生交互的概率 。
以上设置中的关键部分是编码器 , 它可以与任何解码器一起训练 。 在前面提到的未来交互预测任务中 , 编码器可以采用自监督的方式进行训练:在每一代训练过程中(即每个epoch) , 编码器按时间顺序处理事件 , 并基于之前的事件预测下一个交互 。
时态图网络(TGN)是我们在Twitter上与Fabrizio Frasca、Davide Eynard、Ben Chamberlain和Federico Monti等同事共同开发的一个通用编码器架构 。
该模型适用于各种各样的以事件流表征的动态图的学习问题 。 简而言之 , TGN编码器根据节点的交互创建节点的压缩表征 , 并在每次事件发生时更新节点 。 基于此 , TGN主要有以下组件:
内存 。 内存中存储着所有节点的状态 , 其作用是作为节点过去交互的压缩表征 。 它类似于RNN的隐藏状态;不同的是每个节点 i都有一个单独的状态向量s?(t) 。
当一个新节点出现时 , 我们相应地添加一个初始化为零的状态向量 。 此外 , 由于每个节点的内存只是一个状态向量(而不是一个参数) , 所以当模型接收到新的交互时 , 节点在测试时间也可以进行更新 。
消息函数 。 消息函数是内存更新的主要机制 。 给定在t时刻节点i和节点 j之间的交互 , 信息函数计算出两条消息用于更新内存(一条用于节点i , 另一条用于节点 j) 。 这类似于在消息传递图神经网络中计算的消息 , 这一消息是在交互出现前的 t?时刻节点i和节点 j的内存、交互出现的时间t、边缘特征这三个变量的函数:
时态图网络:即使很久不发朋友圈,也能知道你的新兴趣文章插图
时态图网络:即使很久不发朋友圈,也能知道你的新兴趣文章插图