新突破!动态网络表征学习在推荐领域的创新与实践

简介: 在现实生活中,用户对于一件事物的关注度即关系图往往是会随着时间而改变的。按照静态图的建模方法将不能显示地建模用户在时序上的兴趣变化。动态网络表征学习不仅能学习到当前网络的结构信息,而且也能学习到网络在时间上的变化,但是目前主要还是针对动态同构网络,本文在此基础上提出了基于层次化注意力机制的动态图表征算法,是推荐底层算法模型上的一次突破。

image.png

介绍

目前大多数 Graph Embedding 的方法如 node2vec、GCN、GraphSAGE 和 GAT 等主要是针对静态图模型的方法,也就是假设图是不会改变的。但是在现实生活中,关系图往往是会随着时间而改变。比如用户在一段时间内对连衣裙的兴趣会慢慢转移到高跟鞋,在关系图上的表现就是前一段时间用户的邻居主要都是连衣裙,但是后面一段时间用户的邻居主要都是高跟鞋。如果按照静态图的建模方法,连衣裙和高跟鞋都会出现在同一张图上,虽然可以在关系边上加上时间信息,但是其只能作为控制游走或聚合的权重,并不能显示地建模用户在时序上的兴趣变化。

动态网络表征学习也叫做 Dynamic Graph Embedding (Dynamic Network Embedding) ,不仅能学习到当前网络的结构信息,而且也能学习到网络在时间上的变化,是目前 Graph Embedding 的一个热门方向。近年来在动态网络表征学习方面相关的算法也如雨后春笋般被提出,如 DynamicTriad、DySAT 等。但是目前主要还是针对动态同构网络,受到 DySAT 和 HAN 算法的启发,我们在动态异构网络方面提出了基于层次化注意力机制的动态图表征算法(DyHAN),在离线测评上都优于目前现有的方法。

在业务落地上,考虑到开发难度和线上曝光情况,我们在之前 GraphSAGE i2i 基础上,引入动态模型更好地学习时序信息,在业务上取得了一定效果。

创新探索

在创新层面,针对用户和商品的动态异构图,我们提出基于层次化注意力机制的动态图表征算法(DyHAN, short for Dynamic Heterogeneous Graph Embedding using Hierarchical Attentions)。

图的构建

这里主要描述一下我们自己的数据集的构建信息,其他的数据集也是类似的。我们使用用户历史行为日志来构建。

节点类型:用户和商品

边类型:点击、询盘(AB)和 Order 等。

时间分片:每天的用户行为作为一个时间分片,取 10 天的时间分片来训练,第 11 天的来做评测。

节点信息:节点 id (这里为了方便实验,直接使用节点id特征,如果图有其他特征也可以加入进去)。
image.png
这样构建的关系图就是一个具有 11 个时间分片,2 个节点类型和 3 个边类型的异构动态图。在一个时间分片下,如果只看点击类型的边,我们就得到了这个时间分片下点击边类型的子图。

模型

算法主要为三层注意力机制,模型结构如图1所示。这里三层的融合分别是节点层级、边层级和时序层级上的聚合。在 DyHAN 里我们都使用了注意力机制,但是实际上这三个模块都可以替换成其他聚合方法,如节点层级的聚合可以使用 GraphSAGE 的 mean、mean-pooling 和 max-pooling 的方法。时间层级的聚合可以使用 RNN 类的方法,如 LSTM 和 GRU 等。
image.png
节点层级的聚合(Node-level Attention),目的为每个时间分片下每个边类型子图里的节点都做一个 attention 融合自身与其邻居的信息。这样融合后的向量能表示这个节点在这一类边类型下的语义信息。query 为节点本身,key 为节点的邻居(包括自己)。
image.png

边层级的聚合(Edge-level Attention), 主要作用为对每个时间分片下节点的边类型向量进行汇聚,某一类型的边类型向量可能对这个节点的贡献比较大。比如 order 的边类型向量对于交易品的贡献就比较大。
image.png
时序层级的聚合(Temporal-level Attention),主要把每个时间分片上的节点向量聚合起来。这里使用一个标准的 Scaled-Dot-Product Attention。M 为一个 mask 矩阵,主要是为了使节点向量只能看到过去的节点向量。
image.png
为了增加 expressive 的能力,每一层的聚合都可以使用 multi-head 机制。

损失函数选取 Cross Entropy,正负样本只在最后一个时间分片上选取。
image.png

实验

推荐的向量化召回就是计算两个节点的相似度来预测用户潜在感兴趣的商品,为了更好地贴合业务,我们选择边预测作为我们的实验任务。Baseline 选取了静态和动态图表征上比较有代表性的算法,如静态的主要有 DeepWalk、metapath2vec、GraphSAGE、GAT;动态的主要有 DynamicTriad、DySAT 等。我们在两个公开数据集和我们自己的数据集上进行了实验,下面是实验结果。
image.png

详细内容请参考我们的 paper:
Luwei Yang, Zhibo Xiao, Wen Jiang, Yi Wei, Yi Hu, and Hao Wang, “Dynamic heterogeneous graph embedding using hierarchical attentions,” in Proceedings of the 42nd European Conference on Information Retrieval, 2020

实践探索

考虑到目前 ICBU 推荐引擎的机制对用户向量化的曝光比例较低,在动态图表征的上线落地上我们首选在 i2i 上进行尝试,即直接在 GraphSAGE i2i 的基础上引入动态模型。

图的构建

每个时间分片图的构建沿用之前 GraphSAGE i2i 的模式,由于工程上实现的机制,只对最后一个时间分片上的节点 infer 出节点向量。因此为了不减少商品覆盖度,每一个时间分片的设置为 90 天,时间分片之间设置适当的 overlapping。

模型

这样模型其实就变成了前文详述的 DyHAN 的简化版,其分为了两层结构,第一层为GraphSAGE 的聚合机制,主要为对每个时间分片计算出节点向量。第二层为时序层级上的聚合,采用上文介绍的 Scaled-Dot-Product Attention。最后的训练是无监督训练,无监督学习样本的选取做了一些优化,同时损失函数使用 Triplet Loss。
image.png

离线评测和线上效果

离线评测:我们随机选取 session 下第一个商品作为 trigger,计算同 session 后续点击的 distinct 商品的覆盖率。这样的样本选取一万个, 原 graphsage_i2i 的覆盖率增量为 4.2%,使用 dynamic_i2i 的覆盖率增量为 10.9%。
image.png
线上效果:在 Detail 跨店推荐上线,L-AB 转化率提升 3.54%,L-O 转化率提升 14.23%。在整体 Detail 页的转化方面,D-AB 转化率提升 0.85%,D-O 转化率提升 2.57%。

总结

在动态图表征学习上我们创新地提出了 DyHAN 的方法用于异构动态图建模,同时在阿里巴巴国际站(ICBU)推荐领域引入动态图表征模型,在业务上取得了一定的效果。同时我们也发现这种时间分片的动态图表征模式运算开销比较大,因为每一个时间分片都要运行一个静态的图表征模型,如何减小运算开销是未来的一个研究方向。同时在时间维度上如何更好地融合时序信息也是未来的一个研究方向。

目录
相关文章
|
17天前
|
机器学习/深度学习 人工智能 算法
深入解析图神经网络:Graph Transformer的算法基础与工程实践
Graph Transformer是一种结合了Transformer自注意力机制与图神经网络(GNNs)特点的神经网络模型,专为处理图结构数据而设计。它通过改进的数据表示方法、自注意力机制、拉普拉斯位置编码、消息传递与聚合机制等核心技术,实现了对图中节点间关系信息的高效处理及长程依赖关系的捕捉,显著提升了图相关任务的性能。本文详细解析了Graph Transformer的技术原理、实现细节及应用场景,并通过图书推荐系统的实例,展示了其在实际问题解决中的强大能力。
113 30
|
28天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN): 从理论到实践
本文将深入浅出地介绍卷积神经网络(CNN)的工作原理,并带领读者通过一个简单的图像分类项目,实现从理论到代码的转变。我们将探索CNN如何识别和处理图像数据,并通过实例展示如何训练一个有效的CNN模型。无论你是深度学习领域的新手还是希望扩展你的技术栈,这篇文章都将为你提供宝贵的知识和技能。
106 7
|
26天前
|
数据采集 XML 存储
构建高效的Python网络爬虫:从入门到实践
本文旨在通过深入浅出的方式,引导读者从零开始构建一个高效的Python网络爬虫。我们将探索爬虫的基本原理、核心组件以及如何利用Python的强大库进行数据抓取和处理。文章不仅提供理论指导,还结合实战案例,让读者能够快速掌握爬虫技术,并应用于实际项目中。无论你是编程新手还是有一定基础的开发者,都能在这篇文章中找到有价值的内容。
|
28天前
|
云安全 监控 安全
云计算环境下的网络安全策略与实践
在数字化时代,云计算已成为企业和个人存储、处理数据的重要方式。然而,随着云服务的普及,网络安全问题也日益凸显。本文将探讨如何在云计算环境中实施有效的网络安全措施,包括加密技术、访问控制、安全监控和应急响应计划等方面。我们将通过具体案例分析,展示如何在实际场景中应用这些策略,以保护云中的数据不受威胁。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络:从理论到实践
【10月更文挑战第35天】在人工智能的浪潮中,深度学习技术以其强大的数据处理能力成为科技界的宠儿。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,在图像识别和视频分析等领域展现出了惊人的潜力。本文将深入浅出地介绍CNN的工作原理,并结合实际代码示例,带领读者从零开始构建一个简单的CNN模型,探索其在图像分类任务中的应用。通过本文,读者不仅能够理解CNN背后的数学原理,还能学会如何利用现代深度学习框架实现自己的CNN模型。
|
1月前
|
数据采集 网络协议 算法
移动端弱网优化专题(十四):携程APP移动网络优化实践(弱网识别篇)
本文从方案设计、代码开发到技术落地,详尽的分享了携程在移动端弱网识别方面的实践经验,如果你也有类似需求,这篇文章会是一个不错的实操指南。
61 1
|
1月前
|
数据采集 存储 XML
Python实现网络爬虫自动化:从基础到实践
本文将介绍如何使用Python编写网络爬虫,从最基础的请求与解析,到自动化爬取并处理复杂数据。我们将通过实例展示如何抓取网页内容、解析数据、处理图片文件等常用爬虫任务。
271 1
|
1月前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
1月前
|
安全 网络协议 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-1):主动信息收集之ping、Nmap 就怕你学成黑客啦!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-1):主动信息收集之ping、Nmap 就怕你学成黑客啦!
|
1月前
|
网络协议 安全 NoSQL
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!