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

fareise fareise     2022-11-30     533

关键词:

微信公众号“圆圆的算法笔记”,持续更新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领域的发展历程

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

...掘到很多user-item历史交互行为中看不到的信息。知识图谱如何应用到推荐系统中呢?今天就给大家带来4篇顶会中典型的知识图谱应用到推荐系统的工作。1.KDD’19-KGAT论文题目:KGAT:KnowledgeGraphAttentionNetworkforRecommendation࿰... 查看详情

知识图谱在推荐系统中的应用全面调研

...sedRecommenderSystems》的简单总结,文章对近几年知识图谱在推荐系统中的应用做了较为详细的总结和讨论,希望可以给想要入坑的各位一点点启发。Introduction近几年,结合知识图谱和推荐系统的方向是一大热,知识图谱(KG)是一个... 查看详情

推荐系统---知识图谱+个性化推荐

...术之一,现已被广泛应用于智能搜索、智能问答、个性化推荐、内容分发等领域。定义:知识图谱 查看详情

基于知识图谱的电影推荐问答系统实战

基于知识图谱的电影推荐问答系统实战知识图谱电影推荐系统Demo环境数据集文件结构运行过程声明数据集介绍数据集预处理导入数据库连接数据库驱动清空数据库创建电影实体创建用户实体与评分关系创建电影类型实体加载关... 查看详情

深度学习推荐系统知识图谱结合推荐系统

https://flashgene.com/archives/91357.html  知识赋能的智能推荐将成为未来推荐的主流。智能推荐表现在多个方面,包括场景化推荐、任务型推荐、跨领域推荐、知识型推荐。1)场景化推荐  比如用户在淘宝上搜“沙滩裤&rdqu... 查看详情

附源码基于知识图谱的智能推荐系统-sylvie小兔

...础,使之能在相关界面里获取电影/书籍/音乐/朋友/动态推荐详情。同时,该系统还具备利用关键字进行跨领域搜索的功能。此外,系统管理员能对所有的实体和关系进行操作,并能查看整个知识图谱的可视化信息,反演推荐过... 查看详情

在nodejs中玩转protocolbuffer

ProtocolBuffer入门教程ProtocolBuffer是个什么鬼NodeJS开发者为何要跟ProtocolBuffer打交道在NodeJS中实践ProtocolBuffer协议选择支持protobuf的NodeJS第三方模块一个栗子书写proto文件编译proto文件编写Writer编写Reader运行结果再举一个栗子编写proto... 查看详情

在windows中玩转dockertoolbox

最近在研究虚拟化,容器和大数据,所以从Docker入手,下面介绍一下在Windows下怎么玩转Docker。Docker本身在Windows下有两个软件,一个就是Docker,另一个是DockerToolbox。这里我选择的是DockerToolbox,为什么呢?参见官方文档:https://blo... 查看详情

在windows中玩转dockertoolbox转载

最近在研究虚拟化,容器和大数据,所以从Docker入手,下面介绍一下在Windows下怎么玩转Docker。Docker本身在Windows下有两个软件,一个就是Docker,另一个是DockerToolbox。这里我选择的是DockerToolbox,为什么呢?参见官方文档:https://blo... 查看详情

b.特定领域知识图谱知识推理方案[一]:基于表示学习的知识感知推理算法[对抗负采样logicrule,链接预测任务]在关系预测推荐场景下应用

推荐文章:推荐参考文章:A.特定领域知识图谱知识推理方案:知识图谱推理算法综述[一](基于距离的翻译模型:TransE、TransH、TransR、TransH、TransA、RotatE)A.特定领域知识图谱知识推理方案:知识图谱推理算法综述[二](DTransE/Pair... 查看详情

在windows中玩转dockertoolbox(镜像加速)(代码片段)

...个Kitematic,这是GUI管理Docker的工具,没有发布正式版,不推荐使用,另外还有就是我们在命令行下用到的docker-machine和docker命令了。基本使用安装完成Toolbox后会有一个DockerQuickstartTerminal的快捷方式,双击运行如果报错,那可能是... 查看详情

知识图谱业务落地技术推荐之国内知识图谱平台汇总(竞品)[阿里腾讯华为等

各位可以参考国内知识图谱平台产品进行对技术链路搭建和产品参考提供借鉴。 查看详情

这是一份通俗易懂的知识图谱技术与应用指南

...器人、大数据风控、证券投资、智能医疗、自适应教育、推荐系统,无一不跟知识图谱相关。它在技术领域的热度也在逐年上升。本文以通俗易懂的方式来讲解知识图谱相关的知识、尤其对从零开始搭建知识图谱过程当中需要经... 查看详情

神奇的content-type——在json中玩转xxe攻击

大家都知道,许多WEB和移动应用都依赖于Client-Server的WEB通信交互服务。而在如SOAP、RESTful这样的WEB服务中,最常见的数据格式要数XML和JSON。当WEB服务使用XML或者JSON中的一种进行传输时,服务器可能会接收开发人员并未预料到的... 查看详情

知识图谱研究进展

...化的表格和网页以及生产系统的结构化数据中。为了阐述如何构建知识图谱,本文给出了构建知识图谱的技术地图,该技术地图如图1所示。??整个技术图主要分为三个部分,第一个部分是知识获取,主要阐述如何从非结构化、半... 查看详情

知识图谱--概念与技术

...:★★★★★里面讲解了很多关于"知识"原理性的概念和如何使用技术实践的书籍,比较有一定学术性,可以作为本科生、硕士研究生或博士的教材。草草看了一遍,记不太多。其中包括知识图谱的基本概念;自动化构建技术、... 查看详情

机器不学习:基于知识图谱推理的关系推演

...基于知识图谱数据结构的应用。知识图谱的构建主要关注如何整合结构化、非结构化的数据,实现用统一的语义数据结构如三元组RDF形式的数据存储。基于知识图谱的应用主要关注如何从这种语义数据结构中挖掘、发现、推演出... 查看详情

知识图谱可以用python构建吗?

...识图谱可以用python构建吗?答案当然是可以的!!!那么如何使用python构建什么是知识图谱从Google搜索,到聊天机器人、金融风控、物联网场景、智能医疗、自适应教育、推荐系统,无一不跟知识图谱相关。它在技术领域的热度... 查看详情