新闻  |   论坛  |   博客  |   在线研讨会
2W字长文 | 漫谈工业界图神经网络推荐系统(5)
数据派THU | 2021-12-18 13:16:41    阅读:439   发布文章

3.6 Gemini: A Novel and Universal Heterogeneous Graph Information Fusing Framework for Online Recommendations[39] [Gemini],KDD 2020,滴滴

问题背景:基于User-Item二分图的方法,一种是直接在原图上交叉聚合,另一种是借助辅助数据(如社交网络)将其划分为User-User,Item-Item同构图。前者会存在邻居稀疏的问题,后者则丢失了User-Item关联信息,并且辅助数据限制了应用场景。

业务场景:物品推荐排序阶段

图的构建:群体用户行为数据构建的二分图,接着通过User-Item-User,Item-User-Item关系导出User-User和Item-Item同构图,由于是通过二阶邻居导出的子图,在某种程度上缓解了邻居稀疏的问题。

特征使用:

Node Embedding:同构子图可以使用User和Item的多种特征,但是作者对边的异构性进行了建模,因此实际只能使用ID特征。

Edge Embedding

7.png

User-User子图中,边由导出时的中间Items决定(保留了原来的一阶邻居信息)

直接对Items Sum pooling无法建模重要性差异,因此作者提出了TF-IDF Pooling,其中TF是某Item在该边对应的所有Items中的占比,占比越大,说明对该边来说越重要;IDF是某Item在所有边对应的Items集合中的占比,占比越大,说明该Item重要性越低。TF-IDF=TF*IDF。

这里没有直接用TF-IDF加权求和,而是将该得分分桶离散化然后Embedding,通过元素积的方式进行特征交叉

采样方法:Node-Wise Sampling Attention based Aggregating:加性模型计算Attention,并且考虑了Edge Embedding,得到邻域Embedding后与自身Embedding进行融合。

8.png

Gemini Framework

训练推断:使用MLP计算User点击某Item的概率,损失函数交叉熵,点击Item为正样本,曝光未点击Item为负样本(因此可以断定是排序模型)

Joint training:在User-User上聚合邻居时,Edge Embedding需要用到Item Embedding,反之亦然,所以User-User和Item-Item的聚合过程是相互依赖的。

Gemini-Collaboration Framework:似乎是将原来相互依赖的两个聚合过程分开,先将其中一个训练至收敛再进行另一个,从而降低训练的复杂度,类似GAN的训练方式。

3.7 Multi-view Denoising Graph Auto-Encoders on Heterogeneous Information Networks for Cold-start Recommendation[40] [MvDGAE],KDD 2021,腾讯

问题背景:User-Item行为数据往往非常稀疏,新用户或新商品存在冷启动问题。一类方法通过引入更多属性特征缓解,但是这会非常依赖特征数据的获取和质量;另一类方法通过HIN引入属性信息来缓解(这和上面的有什么区别),但是它们大多通过有监督的方式训练,会产生训练和测试阶段的不一致(训练阶段大多是old user或item,测试阶段存在更多new user或item,它们在图中的连接会比较稀疏,只存在一些属性关联)。

业务场景:文中没有具体说,从损失函数与推断方式来看似乎是物品推荐的排序阶段

图的构建:群体用户行为数据+属性数据构成的异构图

9.png

特征使用:从聚合方式来看,只用上了ID特征(需要注意的是,这里是是指单个结点的ID特征,实际上在HIN中,属性特征被建模为了结点,例如,电影的演员特征,演员被建模为了结点)

采样方法:分为两个阶段,Encoder阶段基于Meta-Path(首尾不限) Node-Wise采样,Decoder阶段基于特定的Meta-Path(首尾相同)采样出User-User和Item-Item子图,每个Meta-Path对应一个View。Multi-view Graph Encoders

10.png

Node-level Aggregation based on Meta-path:通过GAT聚合Node-Wise采样到的邻居,这里不同于HAN,对于Meta-Path上的邻居(存在不同类型)都会聚合。

Dropout on Multi-views:这里是对View的Dropout,而不是某个View下Edge的Dropout,通过Dropout可以迫使学习到的Embedding更具泛化性,在测试时对于连接稀疏的new user或item有更好效果。

11.png

Multi-view Graph Denoising Decoding

Construct Multi-View Graph:基于首尾相同的Meta-Path构建不同View的User-User和Item-Item子图,使得那些相似的User或Item的表征也更接近。

Multi-View Graph Decoding:用Encoder得到的Embedding重构多个View的子图,即链接预测任务。

12.png

Sampling Strategy:对所有结点对预测边开销太大,需要经过采样预测部分边,这里对Meta-Path 1-hop邻居完全采样,然后对2 hop邻居部分随机采样,以缓解1-hop邻居稀疏的问题。

Bayesian Task Weight Learner:多个View子图的Encoder和Decoder是独立的,最终需要将它们的Loss整合到一起联合训练,这里也用了异方差不确定性来自动学习权重。

13.png

Optimization Objective:Loss由两部分组成,一部分是重构Loss,一部分是评分Loss(均方差)(如果只有点击数据,那就是交叉熵),所以本文其实是利用到了标签数据,是无监督+有监督的结合。

14.png

3.8 Graph Intention Network for Click-through Rate Prediction in Sponsored Search[36] [GIN],SIGIR 2019,阿里

问题背景:使用单个用户的历史行为表征用户兴趣存在行为稀疏和泛化性弱的问题;图神经网络预训练的方式得到的Embedding与目标任务不相关。

业务场景:搜索广告排序阶段

图的构建:群体用户行为数据构建Item同构图。首先将Item点击序列按照Query相关性划分为多个Session,然后在Session内相邻Item之间构建邻居关系(防止不相关的两个Item成为邻居),边的权重为共现频数。具体使用近30天所有用户的点击序列构建商品相似图。

特征使用:多种特征

采样方法:Node-Wise Sampling,根据共现频数计算概率分布 模型结构:为序列中的每个Item采样邻居用GNN聚合得到更一般的Embedding,即通过构建图引入额外信息丰富行为序列从而缓解行为稀疏问题和泛化性弱的问题。得到更一般的Embedding后就是常规的Target Attention抽取序列中的偏好信息。

15.png

3.9 ATBRG: Adaptive Target-Behavior Relational Graph Network for Effective Recommendation[37] [ATBRG],SIGIR 2020,阿里

问题背景:基于Meta-Path的方法,一方面需要人工经验设计,另一方面会损失结构信息(各Meta-Path独立);基于GNN的方法,一方面对Target Item和User分别采样,缺少它们之间的交互性,另一方面随机采样邻居可能会引入噪声(这个得看图是怎么构建的吧,并且我们也可以按权重采样)。

16.png

a中由于各Meta-Path独立,衬衫和连衣裙没能建立起关联

b中一方面由于分别采样,丢失了Target Item与用户行为过的连衣裙的关联,另一方面由于随机采样反而引入了开水壶噪声

c中用本文特有的构建图的方式,最终得到的KG图既能较好地保留结构信息,又能去除一些与Target Item不相关的噪声。

业务场景:商品推荐排序阶段

图的构建:群体用户行为数据+属性数据构建的异构图

特征使用:ID特征

采样方法:从Target Item和用户行为过的Items构成的Root Nodes合集中,分别为每个结点在图中采样K-Hop邻居,根据采样的结点集合从原图中诱导出子图(区别于独立采样,可以建立Target Item与行为过的相关的Item的联系),对于该子图中只有一个邻居的结点进行剪枝(这些结点很可能是噪声)。

17.png

Embedding Layer:User和Target Item的Embedding(ID和其他特征),异构图(KG图)中实体和关系的Embedding。

Relation-aware Extractor Layer:这里是用中心结点计算邻居结点的重要性,同时对“关系”进行了建模,即关系的类型会影响重要性,例如,点击和购买两种关系,显然表现出的兴趣程度不同

18.png

Representation Activation Layer:得到Target Item和Sequence Item的Embedding后,这里又进一步使用Target Attention筛选相关信息

19.png

Feature Interaction Layer:将所有Embedding Concat后送入MLP做特征交叉

3.10 GMCM: Graph-based Micro-behavior Conversion Model for Post-click Conversion Rate Estimation[38] [GMCM],SIGIR 2020,阿里

问题背景

微观行为与最终是否成交高度相关,但是微观行为不适合用序列建模,不同顺序的微观行为表达的可能是同一意图,例如,用户在购买前先看评论再看问大家,和先看问大家再看评论,表达的意图一样。(这里的微观行为是指用户点击商品后,购买商品前发生的一系列行为,例如评论,收藏等)

20.png

CVR任务存在数据稀疏的问题(用户的成交行为是稀疏的)

CVR任务存在样本选择偏差的问题(用户是先点击后成交,但是线上CVR预估时,是从全域候选集经过召回后打分,而不是对用户发生过点击的Item打分) 业务场景:商品推荐排序阶段

图的构建:群体用户行为数据构建的异构图

微观行为图,结点是微观行为,边是共现频数归一化后的权重

用所有用户的微观行为数据构建图,即该图反映的是一般性的群体规律,对于单个用户其微观行为数据体现在Node Loss中

21.png

特征使用:上游多种特征变换对齐后的Embedding

采样方法:微观行为图是很小的,不需要进行采样 Multi-task Learning Modul:底层共享部分Embedding(特别是ID Embedding)

22.pngGraph-based CVR Networks

MLP Layers

23.png

Node Embedding Layer:将MLP的输出通过N个1-Layer MLP映射为N个微观行为结点Embedding

24.png

Graph Convolutional Networks

25.png

P是归一化后的共现频数,B是一个可学习的权重矩阵

26.png

这里分成了两个任务,一个是预测某个微观行为结点是否存在,即在构建图时是默认所有微观结点都存在,并且图的边权也是所有用户数据统计出的。单个用户的微观行为数据是在Node Loss中体现的。

另一个是将CVR预测转化为了图分类任务,即微观行为图可以反映用户是否会发生成交

图的Embedding通过Graph Pooling得到,例如Sum pooling,Mean pooling,Concat Pooling

Loss Layer:相应的PMG Loss也由Node Loss和CVR Loss构成,最终Loss由PMG Loss和CTR Loss组合而成(也有分别训练)。这里将CTR预估分数作为了IPV来Debias。

27.png

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客