"); //-->
3. 论文介绍
3.1 Graph Convolutional Neural Networks for Web-Scale Recommender Systems[46] [PinSage],KDD 2018,Pinterest
问题背景:现有的GNN难以在大规模图数据场景落地 业务场景:i2i Top N推荐(似乎因为场景复杂性低的问题,这里并没有进一步分召回排序)
图的构建:Pin-Board二分图,Pin是照片,Board类似收藏夹
特征使用:Pin包含了图像特征和文本特征,Board本身没有特征,而是通过Average Pooling对应的Pin们得到
采样方法:Node-Wise Random Walk Sampling,使用个性化PageRank采样邻居,得分既可以用来加权聚合邻居,也可以用来构造Hard Sample。
Model Architecture:使用采样时的得分加权聚合邻居
Pinsage
Max-Margin Loss
User在某个Pin下点击的Pin构成一对正例,然后从其他Pin中随机采样一部分作为Easy Negative,采样时得分位于某个范围的Pin邻居作为Hard Negative。Easy Sample往往很好区分,模型无法从中学习到有效信息,而Hard Negative则可以迫使模型学得更好,但是也容易导致收敛困难,因此可以在起初几个Epoch只使用Easy Sample,然后再逐步加入Hard Sample
3.2 Metapath-guided Heterogeneous Graph Neural Network for Intent Recommendation[41] [MEIRec],KDD 2019,阿里
问题背景:当前的方法没有充分利用关联信息,作者利用异构图和相应模型来建模学习;通过Term Embedding共享的方法来降低学习量。
业务场景:底纹推荐排序阶段
图的构建:群体用户行为数据构建的Query-Item-User异构图,目标是学习User和Query的Embedding。特征使用:
Query和Item的Title共享Term Embedding,降低了需要学习的参数量,同时可以适应新的Query和Item
User的embedding通过Q-I-U、I-Q-U两条Meta-Path对应的邻居聚合得到
User Profile等静态特征最后与GNN得到的Embedding Concat后输入MLP
采样方法:Node-Wise Meta-Path随机采样
模型结构:主要是对于不同类型的邻居采用了不同的Aggregator
对于Item的Query邻居采用Mean Aggregator
对于User的Item和Query邻居采用LSTM Aggregator,考虑到了User对Item和Query的行为是有时序的
对于Query的邻居Item和User采用了CNN Aggregator
MEIRec
3.3 IntentGC:a Scalable Graph Convolution Framework Fusing Heterogeneous Information for Recommendation[45] [IntentGC],KDD 2019,阿里
问题背景:已有的工作大多利用社交网络或共现关联分别为User-Item二分图中的Users和Items扩充内部连接,却忽略了属性关联这一类丰富的信息。
业务场景:广告推荐召回阶段
图的构建:群体用户行为数据+属性数据构建以User和Item为主体的异构图,接着通过User-Property-User和Item-Property-Item构建User-Item异构图,属性结点的类型决定了构建的边的类型。
特征使用:双塔结构,可以用多种特征(不存在特征对齐的问题)
采样方法:先采样一些User-Item Pairs(包括负样本)作为mini-batch,然后对这些User和Item分别Node-Wise Sampling同构邻居。Faster Convolutional Network: IntentNet
Vector-wise convolution operation
公式(2)有两个作用,一是以不同的重要性融合自身和邻居信息,二是concat后的各维度间的特征交叉,作者认为自身Embedding和邻居Embedding之间的特征交叉没有意义,内部的特征交叉才是有意义的
公式(3)对公式(2)进行了简化(时间复杂度和模型参数量都有所降低),在vector-wise的层次以不同重要性融合自身和邻居信息,并且通过多组融合操作得到不同角度的信息(类似多个不同的卷积核),最终再进行一次加权融合。
IntentNet:再经过一个多层MLP进行特征交叉 Heterogeneous relationships:将Vector-wise convolution operation推广到了存在多种类型关系的情形,对不同类型关系对应的邻居分别聚合然后对得到的邻域表征再加权融合
Dual Graph Convolution in HIN:对于User-User和Item-Item分别应用上述模型(双塔结构),最终得到User和Item Embedding做点积,使用Pair-Wise Margin Loss训练。
3.4 A Dual Heterogeneous Graph Attention Network to Improve Long-Tail Performance for Shop Search in E-Commerce[44] [DHGAT],KDD 2020,阿里
问题背景:shop name和query的语义存在gap,很多时候shop name并不能表明含义;shop search场景的行为数据比较稀疏,特别是对于长尾的Query和Shop效果不佳
业务场景:shop搜索召回阶段
图的构建:长期群体用户行为数据构建的shop-query-item异构图
Homogeneous Neighbors
对于Query,某个用户同一个Session内的Query之间构成邻居;引导点击同一个Shop的Query之间构成邻居
对于Shop,同一个Query下点击的Shop之间构成邻居
Heterogeneous Neighbors
Query下点击的Shop,它们之间构成邻居(但是这种关系是非常稀疏的)
某个shop提供的item在某个query下被成交过,则该shop和query构成邻居(本质上是二阶邻居,该关系相对丰富)
shop提供的item,query下点击的item,它们之间构成邻居
特征使用:
DHGAT部分用的是Query、Shop、Item的ID特征
TKPS部分用的是Query、Shop、Item的Term特征
采样方法:Node-Wise Sampling,对于Shop和Query,分别采样N个Homogeneous和Heterogeneous邻居,即2N个邻居(防止热门shop或query的影响)。
Dual Heterogeneous Graph Attention Network:
先对同构邻居和异构邻居分别Attention Pooling,然后再对不同类型的邻域Embedding加权融合,最后再与自身Embedding进行concat融合
在对异构邻居进行聚合时使用heterogeneous neighbor transformation matrix建模异构性
这里item不作为target node,最终需要的是query和shop的embedding
Transferring Knowledge from Product Search:利用行为数据相对丰富的product search场景的数据促进对shop search场景的学习
这里使用的是query,item和shop的terms mean pooling特征
由于quey和shop name语义的模糊性,聚合时不适合用Attention pooling,而是直接使用mean pooling
最后同样融合自身表征
Incorporating User Features:用户自身的特点也会影响偏好,预测用户在某query下是否会点击某shop需要考虑该信息 Two-tower Architecture:对shop和query embedding的学习可以并行进行,线下训练时可以存下user,query和shop embedding,其中shop embedding存的是最后一层的输出(线上不可能再将所有的shop过一遍右塔),线上打分时获取到user和query embedding,然后需要经过左侧的塔得到一个融合的embedding(这个过程只需要进行一次,其线上开销是可以接受的),接着通过LSH等方法召回相关的shop
Objective and Model Training
使用交叉熵损失训练CTR预估任务,不过值得注意的是召回阶段负样本的选择,不能是曝光未点击的作为负样本
CTR Loss可能会导致不能充分学习到图的拓扑信息,这里又进一步加了graph loss,从loss角度促进同构邻居更相似
3.5 M2GRL: A Multi-task Multi-view Graph Representation Learning Framework for Web-scale Recommender Systems[52] [M2GRL],KDD 2020,阿里
问题背景:单个向量表达Multi-View(多种特征空间)信息可能会存在两点问题,容量不足以及分布不同
业务场景:商品推荐召回阶段
图的构建:文中没有具体谈到,应该是群体行为数据构建的多个Single-View同构图。但是值得注意的是,本文具体实现时并没有用图结构,而是类似Item2Vec的方法直接对行为序列用skip-gram建模。本文构建了三个Single-View图,基于Item本身构建的图,基于Item Shop构建的图,基于Item-Category构建的图
Node sequence sampling:用于下文的Skip-Gram方法,通过Session划分尽量保持滑动窗口内Item的同构性
Data Clean:去掉停留时间比较短的Item,用户可能是误点并不感兴趣
Session split and merge:用户打开和关闭淘宝的时间段作为一个Session,对于时间较长的Session(几个小时,可能是后台运行)进一步拆分,对于时间较短(小于30分钟)的两个连续的Session进行合并 Intra-view Representation Learning:随机采样上文划分后的Session序列,然后使用Skip-Gram方法训练。
Inter-view Alignment:不同View的信息存在关联,例如,某个Item属于某类Category或者某个Shop,这里进一步学习该关联使得相关的Item-Category或者Item-Shop的Embedding更加接近,使用了一个变换矩阵期望将不同View的Embedding映射到同一个特征空间。
Learning Task Weights with HomoscedasticUncertainty:考虑到许多任务联合训练,人工设置加权Loss不太现实,这里利用homoscedastic uncertainty来自动学习不同任务的重要性,最终不确定性越大(可学习的参数)的任务权重越低。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。