星标/置顶小屋,带你解锁
最萌最前沿的NLP、搜索与推荐技术
文 | 江城
编 | 夕小瑶
今天分享一篇淘宝发表在 SIGIR2020 上的关于知识图谱应用于大规模推荐的论文《ATBRG: Adaptive Target-Behavior Relational Graph Network for Effective Recommendation》,成功应用于线上淘宝APP且有明显效果提升,推荐一读。
论文链接:
https://arxiv.org/abs/2005.12002
公众号「夕小瑶的卖萌屋」后台回复关键词【0715】下载论文PDF
摘要
近年来,知识图谱KG由于其丰富的连接信息在推荐上的应用越来越引起大家的兴趣。现有的方法要么在KG上去探索user-item对独立的子路径;要么是在整个KG上使用GNN来产生user或者item的表示。虽说都有一定的效果,但是前者没有充分捕获user-item在KG上的结构信息;后者在产生embedding表示的过程中则忽略了user和item相互的影响。本文提出了一种新框架ATBRG,用来有效捕捉目标user-item对在KG上的结构关系。具体来说,为了在KG上关联给定目标item和用户行为,本文提出了graph connect和graph prune方法来构建自适应的target-behavior关系图。为了充分提取结构信息,本文详细介绍了ATBRG的模型结构,主要是relation-aware抽取层和表示激活层。ATBRG成功应用到淘宝APP场景并且获得5.1%的CTR提升。
背景
粗略来说,当前基于KG的推荐方法可以分为两类:基于Path和基于GNN的方法。基于Path的方法通过探索目标user-item对在KG上的多个meta-path来预测用户偏好。这是一种典型需要domain knowledge的方法,而且忽略了KG中丰富的结构信息,因此不能充分刻画给定user和item的内在关系。如下图左所示,这种方法由于针对各自的path单独建模,忽略了Blouse和Dress之间的强联系。
与此同时,基于GNN的方法针对KG中的高阶连接显示建模。然而有如下的限制:
它们主要使用GNN来聚合目标user和item各自在KG中的邻居来丰富学习各自的表示,因此不能捕捉他们之间的相互影响。如下图中所示,当前基于GNN的方法聚合KG中邻居时由于不考虑用户兴趣,容易在学习目标item的embedding时引入无效的信息,例如Cup;
在工业界场景下KG是超大规模的,也就是说一个实体可能会连接到数以百万的item。在获取邻居时使用random sampling有可能丢失异常关键的信息,如下图中所示的Shirt;
它们忽略了用户行为在KG上的丰富联系;
为了解决上述的局限性,更好地提取KG中原始的信息以便更有效地进行推荐,必须满足如下的几个关键方面:
目标item-用户行为:一个有效的基于KG的推荐应该能够针对每一个user-item对产生语义上的子图,捕捉它们的相互作用;
自适应性:区别于在整个KG上进行random sampling,与自适应创建语义子图一样,需要自适应地针对用户行为与目标item在KG上保存有效信息;
联系性:模型设计时需要考虑在KG上用户行为和目标item之间的联系;
本文结合上述的思想,主要贡献如下:
为了有效刻画给定目标user和item的结构联系,本文提出graph connect和graph prune策略来构建自适应的target-behavior关系子图更好地建模用户行为和目标item在KG上的联系;
本文提出了一个创新性框架ATBRG,基于提取的关系子图来使用GNN学习用户行为和目标item的表示;
在Yelp和Tabao工业集数据集上进行了实验,同时成功应用到淘宝APP的场景上,验证了ATBRG的明显提升;
模型框架
ATBRG框架如下图所示,主要包含两部分:图构建部分和模型部分。
图构建部分
为了建模给定user-item在KG上的联系,之前方法要么是通过random walk,要么是依赖目标item在KG上的邻居来提取不同的path。前者忽略了KG中的结构性信息;后者则是忽略了用户行为和目标item的相互作用,因此无论哪种方式都只是得到了推荐上的局部最优效果。
直观来说,用户是否点击目标item与用户的历史行为有非常强的关系,本文提出构建自适应的针对用户行为和目标item的关系图,图构建的具体步骤如下Agorithm 1所示。具体来说,给定一个目标user-item对<u, i>,
首先针对用户行为B_ui和目标item i在KG上穷举搜索多层实体邻居;
然后将连接实体和item的路径恢复成图G_ui,这样通过多个重合的实体将用户行为和目标item连接起来了;
然后针对G_ui中的实体,如果没有连接不同的item的话则进行剪枝;
最后,便得到了针对用户u和目标item i的关系图G_ui,可以描述<u, i>在KG上的结构联系。
模型结构
从KG中得到自适应的target-behavior关系图后,本文研究了应该如何为目标user-item对产生embedding表示。如上图右所示,ATBRG的模型架构主要由如下的四层组成:
Embedding层,将高维稀疏特征转换为低维稠密表示;
Relation-aware抽取层,通过聚合在自适应关系图上的结构关系信息为用户行为和目标item产生knowledge-aware的Embedding表示;
表示激活层,针对目标item激活相对关系性的用户行为表示;
特征交互层,结合更多其他特征;
Relation-aware抽取层是为了有效、全面地提取关系子图中的结构联系性信息。在电商场景中,用户可能点击或者购买同样的item i,显然不同的行为象征着用户对于item i不同的偏好。基于上述讨论以及受[2]启发,本文构建relation-aware的抽取层来学习实体之间不同的关系在KG中的丰富的结构性信息。具体来说,对于每一个目标item(用户行为中item_b或者目标item i),本文将其视为中心节点,并且使用relation-aware聚合器聚合其在关系子图G_ui中的邻居信息。
表示激活层就是使用attention学习用户历史行为在目标item上的激活权重。直观来说,用户的不同行为对于最终的预测打分会有不同的贡献。举例来说,如果目标item是shirt C,那么行为shirt A会比行为show B更有信息量一些。
实验结果
效果对比
本文在Taobao和Yelp两个工业级基准数据集上进行了实验。在Taobao数据集上,除了用户历史行为,本文为其构建了item knowledge(譬如分类、父类以及风格等)。在Yelp数据集上,KG则主要是本地商业信息(譬如位置和分类)。
本文将ATBRG和三种类型的表示学习型baseline进行了对比。基于特征的方法,譬如YoutubeNet和DeepFM;基于用户行为的方法,譬如DIN和DIEN等;基于KG的方法,譬如RippleNet和KGAT等。详细实验结果对比数据如下表所示,从实验数据我们可以得到如下分析结论:
基于特征的方法在两个数据集上的表现较差,也就是说手工的特征工程已经不足以建模user和item之间的复杂联系;
基于用户行为的方法证实了引入历史行为对于学习用户偏好是非常重要的;
总的来说,基于KG的方法效果要好于基于用户历史行为的方法,也从侧面证实了引入KG可以捕捉user和item的内在交互。
ATBRG超参调整
本文在这部分进行了多种实验,仔细调研了ATBRG的模型架构调整和关键参数设定的影响。
首先是分别去除relation-aware机制和表示激活层的实验效果对比,说明KG中的不同关系应该被区分出来,而且用户行为在KG中的语义关系也应该同时被考虑进来。
其次是邻居深度的效果影响。邻居深度从0提升到2过程中效果更好,但是从2到3过程中效果反而变得更差。一种可能的解释是KG中太长的联系可能包含了一定的噪声,譬如Shirt - Women Clothing - Clothing - Men Clothing - Shoe。
然后是Aggregator类型的影响。如下图所示,分别对比了concat、sum,self-attention以及nonlinear transformation的效果。总的来说,复杂的aggregator相对有更好的效果表现。
线上A/B实验
如下图是ATBRG应用在淘宝APP的系统架构图。相对于线上DIN的基线,ATBRG相对提升了6.8%的点击数量以及5.1%的CTR提升,同时在线预测时间增长了8ms。
喜欢本文的小伙伴,强烈建议加入卖萌屋的推荐系统垂类讨论群,不仅可以认识众多志同道合的优秀小伙伴,而且还有若干卖萌屋美丽小姐姐(划掉)、顶会审稿人、大厂研究员、知乎大V等你来撩哦。
如果提示已满或过期,或希望加入领域大群(自然语言处理、搜索技术、推荐系统、算法岗求职等)或其他垂类讨论群,请在后台回复关键词【入群】获取入口哦。
记得扫描下方二维码关注并星标置顶,我才能来到你面前哦。
参考文献
[1] ATBRG: Adaptive Target-Behavior Relational Graph Network for Effective Recommendation
[2] Exploiting edge features for graph neural networks