• 如何在推荐系统中玩转知识图谱


    微信公众号“圆圆的算法笔记”,持续更新NLP、CV、搜推广干货笔记和业内前沿工作解读~ 后台回复“交流”加入“圆圆的算法笔记”交流群;回复“时间序列“、”多模态“、”迁移学习“、”NLP“、”图学习“、”表示学习“、”元学习“等获取各个领域干货算法笔记~

    CSDN无法上传图片,更好阅读体验请到公众号查看~

    推荐系统领域近几年的工作中,知识图谱被越来越多的应用进来。在推荐系统中引入知识图谱被验证会给user-item的预测效果带来比较明显的提升,一个主要原因在于通过知识图谱,可以挖掘到很多user-item历史交互行为中看不到的信息。知识图谱如何应用到推荐系统中呢?今天就给大家带来4篇顶会中典型的知识图谱应用到推荐系统的工作。

    1. KDD’19-KGAT

    论文题目:KGAT: Knowledge Graph Attention Network for Recommendation(KDD 2019)

    下载地址:https://arxiv.org/pdf/1905.07854.pdf

    大多数CTR预估模型中都将每个样本视为单独的个体,没有建立样本之间的联系。例如下图的例子中,基于协同过滤的方法更关注与user1具有相同历史行为(即看过i1)的user;而一些基于深度学习的预估模型更关注和i1有相同属性的item。这两种类型的信息可以结合到一起进而泛化出更多的信息,即根据具有相同属性的e1泛化得到和u2、u3的关系。

    本文通过将item的属性信息引入到user-item的图中,挖掘更高阶的交互信息,补充user-item二部图的信息缺失,建立更广阔的的联系。具体的实现方法主要包括构图、Embedding Layer、Information Propogation和Information Aggregation四个部分。

    首先在构图上,根据user和item的交互行为构建user-item二部图,user和item如果有交互则建立边.。在此基础上,引入知识图谱,即将item的属性信息entity引入二部图中。

    接下来,在Embedding Layer中,本文采用TransR将知识图谱中的关系relation和实体entity映射成一个向量。TransR是构建知识图谱embedding的一种常见方法(Trans系列方法),其核心目标是让头实体embedding加上关系embedding等于尾实体embedding,感兴趣的同学可以进一步深入了解。本文TransR的目的是生成知识图谱中实体和关系比较好的embedding,作为后续输入。

    在得到实体和关系的embedding后,下一步是Information Propogation,即如何将图中的信息进行传播,以此获得更好的item或user embedding。本文采用的是类似graph attention network的思路,主要区别在于计算attention score时会将两个节点之间的关系embedding也加入,这样可以引入更多的信息,公式如下,对graph attention network不了解的同学可以参考之前的文章

    最后是Information Aggregation,融合节点原来的表示和上面propogation的表示,包括相加+非线性全连接、拼接+非线性全连接,本文额外提出一种从多个角度融合的方式,直接度量两个表示的距离关系:

    在最终的预测上,使用上面过程生成的user embedding和item embedding做内积,计算user和item之间是否会进行交互。

    2. WWW‘19 KTUP

    论文题目:Unifying Knowledge Graph Learning and Recommendation: Towards a Better Understanding of User Preferences(WWW 2019)

    下载地址:https://arxiv.org/pdf/1902.06236.pdf

    本文主要针对的是当知识图谱不完整时,如何将其应用到推荐系统,核心是采用推荐任务+知识图谱补全任务联合学习。现实中的知识图谱一般都是不完整的,这会影响知识图谱在推荐系统中使用的效果。比如有个电影和导员的关系在知识图谱中没有,就会导致即使一个用户点击了很多这个导员的电影,KG也无法推荐这个关系缺失的电影。同时,推荐系统中user和item之间的交互行为,对于补全知识图谱也是有好处的。因此本文希望让两个任务互相促进,最终提升推荐系统中的预测效果

    首先,作者定义了一组隐式的preference,每个preference都是一个向量,用来描述用户的某个兴趣。所有用户共享相同的preference向量。接下来,借鉴Trans系列方法中头实体+关系=尾实体的思路,在推荐系统中对应的是user embedding + preference embedding = item embedding。用这种方式训练user、item、preference的embedding,文中采用的是TransH方法,相比TransE会将每种不同的关系生成一个独立的超平面,即每个entity在不同的关系下会有不同的embedding。

    上面的方法还没有引入知识图谱信息,为了将知识图谱信息引入,作者在知识图谱中也用Trans方法训练关系和实体的embedding,并加到推荐系统中训练的embedding上,同时进行link prediction和推荐系统两个任务。这样推荐系统任务也会更新知识图谱的embedding,帮助link prediction任务;同时知识图谱的信息会为推荐系统任务提供额外信息。

    3. SIGIR'20 ATBRG

    在推荐系统中引入知识图谱的方法主要分为meta-path based和GCN based两种类型。前者人工指定meta-path,每个path单独进行编码,会导致部分信息的缺失,无法充分挖掘整个KG的信息;后者通过汇聚中心节点的邻居生成表示,但是没有考虑user的历史行为,即item会跟和它相似的item汇聚,没有根据user历史行为进行表示生成。并且在邻居节点的sample过程中,可能丢失比较重要的信息。

    本文提出的ATBRG主要为了解决以前方法存在的问题,核心目标是挖掘用户历史行为的item和目标item之间的关系。首先,ATBRG会根据当前user的历史行为以及target item动态构造一个图(adaptive relational graph),这个图可以涵盖当前user的历史行为和target item的大部分信息。通过在KG中寻找链接用户所有历史行为的item与target item的边,并且裁剪到不连接不同item的entity(如果一个entity只连接了一个item,就直接裁减掉)。

    在上面图的基础上,本文提出Relation-aware Extractor Layer进行信息汇聚,考虑了不同类型边的区别,将边(关系)的embedding也引入进来进行信息汇聚,类似于Trans系列中头实体-关系-尾实体的建模思路,公式如下:

    通过上面方法可以得到user历史行为每个item的embedding,以及目标item的embedding。最后会根据当前目标item,采用类似于DIN的思路对user历史行为item学习一个attention权重进行融合,得到user的最终表示。user的表示和item的表示会与其他特征一起,输入到后续全连接网络中进行ctr预测。

    4. CIKM'20 MTBRN

    论文标题:MTBRN: Multiplex Target-Behavior Relation Enhanced Network for Click-Through Rate Prediction(CIKM 2020)

    下载地址:https://arxiv.org/pdf/2008.05673.pdf

    这篇文章和ATBRG类似,也是为了挖掘用户历史行为item和当前待推荐item之间的关系。现有的方法忽略了用户点击一个商品更深层次的原因,需要引入知识图谱来获得这些信息之间的关系。例如下图中,用户历史行为购买或点击了很多漫威角色的玩偶,当目标item是钢铁侠T恤时,就需要有知识图谱中的多种知识,才能推断出user行为背后的原因。

    为了建模这种关系,本文提出了MTBRN模型。首先构造了item-item相似度图(根据user-item点击关系计算相似度),并引入了外部知识图谱。接下来,在item-item相似度图和知识图谱中,分别找到用户历史行为item与目标item的所有路径,每个历史行为item到目标item的路径取最短的一个,一个例子如下图。

    这些路径描述了目标item和历史行为item之间的关系,接下来本文采用了Bi-LSTM对对所有路径进行编码,得到各个路径的表示,并利用attention学习各个路径的权重进行融合,得到最终的embedding,用于后续预测。

    5. 总结

    本文介绍了4篇顶会中知识图谱在推荐系统中的应用,这些方法的核心都是利用知识图谱在item侧扩展实体信息,利用丰富的外部知识为推荐模型提供更多的线索,寻找潜藏在用户点击或购买行为背后的内在原因,进而提升预测效果,在实际工作中值得一试。

    ‍微信公众号“圆圆的算法笔记”,持续更新NLP、CV、搜推广干货笔记和业内前沿工作解读~ 后台回复“交流”加入“圆圆的算法笔记”交流群;回复“时间序列“、”多模态“、”迁移学习“、”NLP“、”图学习“、”表示学习“、”元学习“等获取各个领域干货算法笔记~

    后台留言”交流“,加入圆圆算法交流群~

    后台留言”论文“,获取各个方向顶会论文汇总~

    【历史干货算法笔记】

    12篇顶会论文,深度学习时间序列预测经典方案汇总

    如何搭建适合时间序列预测的Transformer模型?

    Spatial-Temporal时间序列预测建模方法汇总

    最新NLP Prompt代表工作梳理!ACL 2022 Prompt方向论文解析

    图表示学习经典工作梳理——基础篇

    一网打尽:14种预训练语言模型大汇总

    Vision-Language多模态建模方法脉络梳理

    花式Finetune方法大汇总

    从ViT到Swin,10篇顶会论文看Transformer在CV领域的发展历程

  • 相关阅读:
    传统算法与神经网络算法,神经网络是谁提出的
    AI写作文案的技巧:Wordhero AI写作SOP
    【计网】第六章 应用层
    JavaScript -- 09. 内置对象的介绍
    图床项目架构与设计
    [ 常用工具篇 ] 安装 kali 并设置 root 密码
    英国伦敦交易所股票清单列表数据API接口
    快速找到需要包含函数的头文件
    python+java+SSM+vue勤工助学管理系统#计算机毕业设计
    虚拟化概述与虚拟化应用场景
  • 原文地址:https://blog.csdn.net/fareise/article/details/126218302