推荐系统结合知识图谱简单总结

2024-06-21 07:18

本文主要是介绍推荐系统结合知识图谱简单总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

对近几年推荐系统(Recommendation System)领域结合Knowledge Graph Embedding (知识图谱表示学习) 或者 Network Embedding(网络表示)的几篇论文做了极简介绍。 首先对简单介绍推荐系统,之后整理了几篇结合知识表示的论文。

推荐系统简介

一句话来介绍的话,就是通过分析历史数据,来给用户 推荐 可能会喜欢/购买的商品, 这里面的核心就是用户 (User) 和 商品 (Item)。 更进一步,推荐系统的关键有下面三部分:

  • 用户偏好建模:User Preference
  • 商品特征建模: Item Feature
  • 交互: Interaction

在RS中,具体的问题有多种,这篇笔记暂时侧重于Click-Through-Rate(点击预测) 问题,即根据用户历史点击/购买的Item列表,来预测 是否会点击/购买当前item,因此不考虑user的一些属性因素的话,本质就是判断历史item集合与当前新的item的相似度。

因此item的建模比较关键,在推荐系统中,目前不少工作开始融合一些结构信息来提高性能与解释性,至于如何建模结构,个人理解已有工作大概可以分为两种类型:

  • 结合知识图谱(Knowledge Graph)
  • 结合异质信息网络 (Heterogenerous Network)

本篇笔记主要集中在推荐系统结合知识图谱的几篇工作做个非常简单的总结,后续如时间允许,会将这一系列补全。

论文

CKE

Zhang F, Yuan N J, Lian D, et al. Collaborative knowledge base embedding for recommender systems[C]// KDD, 2016: 353-362.

问题:给用户推荐 一个商品列表, 评价指标是使用Map@K: Recall@K 。

总览

使用item各种外部辅助信息来融合到CF中, 包含:

- 结构信息: 异质结构信息(知识图谱),如 (演员-》出演-电影)

- 文本信息: item的文本描述,如电影的文字简介。

- 图片信息: item的图片,如电影海报 其中编码方式: - 结构信息: TransE/R - 文本信息/图片信息: SDAE(堆叠自动编码)

得到关于item的三种Embedding,与CF的latent factor 加起来,得到item最终的embedding 用户:仅仅有CF的latent factor.

得到item和user的Embedding之后, loss则使用pair-wise 的rankinig loss. 此外需要注意的是,CF过程中 user/item的交互是通过评分矩阵来的, 这里仅仅使用了Postive的评分信息(不小于3)。

评价

  • 局限性稍微大,需要大量的知识图谱中的额外信息,在实际的推荐中不易获得。
  • 融合方法略微简略粗暴,直接使用向量相加

DKN

Wang H, Zhang F, Xie X, et al. Dkn: Deep knowledge-aware network for news recommendation[C]//WWW, 2018: 1835-1844.

本篇文章侧重于新闻推荐场景,将KG Embedding结合到CTR中(预训练的方式), 基本结合用户点击的历史新闻纪录,来判断是否会点击新的新闻。 本质上相当与 判断 历史新闻集合与新的新闻的相似度。

动机如下图,通过提取新闻标题中的实体,接着通过知识图谱来传递相关其他新闻,如下图:

下面介绍模型的主要部分。

Multi Channel CNN

类似RGB的3通道: 作为CNN的输入(文本为新闻title)

- word embedding: 词的word embedding

- entity emebdding: KG Embedding得到的 entity embedding. 对于非实体的词,直接补全为0即可.

- entity context embedding: 对于实体词,其在知识图谱中的一阶邻居实体平均embedding作为补充信息 组成三通道作为cnn的输入

User-Candidate News Attention

  • Attention计算:将u点击的新闻与候选新闻embedding进行连接,输入到DNN
    • Query Vector: 候选新闻的标题特征
    • Key/Value:用户点击的所有历史新闻的标题特征
    • 加权求得用户的点击偏好

  • 是否点击二分类:aggreate得到user embedding 与 候选新闻进行 相似度计算,这里还是使用dnn

总结

本篇文章更加侧重于对短文本的建模,三通道CNN那里很有技巧性,可以借鉴到其他领域。此外attention的计算方法(target item 为query,history items 为 key) 应用也比较广泛。

RippleNet

Wang H, Zhang F, Wang J, et al. Ripplenet: Propagating user preferences on the knowledge graph for recommender systems[C]//CIKM, 2018: 417-426.

RippleNet: 将知识图谱作为额外信息,融入到CTR/Top-K推荐

动机

考虑到水波(Ripple)的传播,以user感兴趣的item为seed,在商品知识图谱上向外一圈一圈的扩散到其他的item,这个过程称之为偏好传播(Preference Propagation).

该模型认为外层的item同样属于用户的潜在偏好, 因此在刻画user时候,需要将其考虑进去,而不能仅仅使用观测到的items去表示user偏好。

KG结合RS两种思路

  • Embedding:item以及属性构建知识图谱,然后利用KG Embedding,计算item 的Embedding.
  • Path-Based: 将user-item以及属性构建异质信息网络(HIN), 然后利用HIN相关的算法建模(Metapath)

一般情况,KG 只能考虑item,而HIN可以考虑user+item. 下面简要介绍下模型部分。

模型介绍

  • 输入: 一个user u 和一个候选的 item i
  • 输出: user会点击item的概率
  • 构建 与 u 先关的 k-hop的 item 集合(知识图谱上以初始的item set向外扩展). [这些item可以作为user的偏好信息)
  • 根据embedding 向量内积,计算候选item i 与 每一层hop上的head item的归一化相似度
  • 根据相似度,对尾实体 items 加权求和,作为这一层hop的输出 (本质上,属于Attention,其中Q=候选item i, K=Head Item, V= Tail Item)
  • 重复上述过程k次
  • 将所有k hop的输出向量相加,作为user的Embedding, 与 item的Embedding 内积计算最终的相似度

总结

这篇文章动机非常直观,因此可解释性非常强,模型的构建也充满技巧,比如采样等,很多地方值的挖掘。


下面简单介绍下结合网络表示或者异质信息网络的的两篇文章。

NERM

Zhao W X, Huang J, Wen J R. Learning distributed representations for recommender systems with a network embedding approach[C]//AIRS, 2016: 224-236.

将推荐的user,item以及属性作为graph中的节点,构造网络。 之后使用network embedding的方法来学习节点特征向量, 利用相似度来做TopK推荐.

构建Graph

user, item ,feature 作为不同类型的节点, 构建网络: - user-item的二分网络,边为user购买或者其它行为item - user-item-tag的三分网络: 将item的tag属性加进来,也作为节点。

学习Embedding

本文完全使用LINE的一阶表示: 即对于a pair nodes (u, v) 如果 二者之间存在边,则二者的向量内积较大

推荐:

直接使用上述计算得到的user-item或者属性的 embedding, 利用内积来计算相似度,根据相似度排序来计算TopK

总览

完全使用Network Embedding的方法来做Top-N推荐,属于尝试性工作, 对比工作也很单薄。

CDNE

Gao L, Yang H, Wu J, et al. Recommendation with multi-source heterogeneous information[J]. IJCAI 2018.

问题与CKE(fzzhang)一致:为user推荐Top N可能感兴趣的item. 利用Network Embedding的方法建模辅助信息,继而结合CF: (Network Embedding 模型基本完全参考:Tri-Party Deep Network Representation)

融合辅助信息

为了更好的建模item, 结合辅助信息: - item的文本内容(word sequence) - item的标签tag(也是word) - item 与 item 的连接结构信息

Deep Walk/Skip Gram 建模辅助信息

  • 模仿skip gram, 中心词预测上下文的词。这里用中心item来预测在文本内容中word,以及用item的tag来预测word
  • 利用deep walk 来学习结构表示(本质上也是skip gram) 这与Tri-Party Deep Network Representation 完全一样。

这样可以学到节点的Embedding, word 的Embedding, tag的Embedding。 其中节点的Embedding用于下面的CF。

结合CF

同CKE, 将上述节点的Embedding 与CF的latent vectors 直接相加,作为item的表示向量, 用户的向量还是CF的latent vectors. 最后利用Min(R-UV) 来优化 (这里区别于CKE的pair wise ranking)

数据: 用的两份CiteULike的数据,其中 item的节点并非使用paper的reference而是根据如果有多于4个相同作者的两篇文章,那么两篇文章之间加一条边。

简要

  • 方法与动机基本类似与CKE, 不过并没有对比CKE。
  • 相当于CKE + Tri-DNR的结合

这篇关于推荐系统结合知识图谱简单总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1080552

相关文章

关于C++中的虚拟继承的一些总结(虚拟继承,覆盖,派生,隐藏)

1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下: class A class B1:public virtual A; class B2:pu

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

十五.各设计模式总结与对比

1.各设计模式总结与对比 1.1.课程目标 1、 简要分析GoF 23种设计模式和设计原则,做整体认知。 2、 剖析Spirng的编程思想,启发思维,为之后深入学习Spring做铺垫。 3、 了解各设计模式之间的关联,解决设计模式混淆的问题。 1.2.内容定位 1、 掌握设计模式的"道" ,而不只是"术" 2、 道可道非常道,滴水石穿非一日之功,做好长期修炼的准备。 3、 不要为了

[职场] 公务员的利弊分析 #知识分享#经验分享#其他

公务员的利弊分析     公务员作为一种稳定的职业选择,一直备受人们的关注。然而,就像任何其他职业一样,公务员职位也有其利与弊。本文将对公务员的利弊进行分析,帮助读者更好地了解这一职业的特点。 利: 1. 稳定的职业:公务员职位通常具有较高的稳定性,一旦进入公务员队伍,往往可以享受到稳定的工作环境和薪资待遇。这对于那些追求稳定的人来说,是一个很大的优势。 2. 薪资福利优厚:公务员的薪资和

通信系统网络架构_2.广域网网络架构

1.概述          通俗来讲,广域网是将分布于相比局域网络更广区域的计算机设备联接起来的网络。广域网由通信子网于资源子网组成。通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网构建,将分布在不同地区的局域网或计算机系统互连起来,实现资源子网的共享。 2.网络组成          广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成

Toolbar+DrawerLayout使用详情结合网络各大神

最近也想搞下toolbar+drawerlayout的使用。结合网络上各大神的杰作,我把大部分的内容效果都完成了遍。现在记录下各个功能效果的实现以及一些细节注意点。 这图弹出两个菜单内容都是仿QQ界面的选项。左边一个是drawerlayout的弹窗。右边是toolbar的popup弹窗。 开始实现步骤详情: 1.创建toolbar布局跟drawerlayout布局 <?xml vers

回调的简单理解

之前一直不太明白回调的用法,现在简单的理解下 就按这张slidingmenu来说,主界面为Activity界面,而旁边的菜单为fragment界面。1.现在通过主界面的slidingmenu按钮来点开旁边的菜单功能并且选中”区县“选项(到这里就可以理解为A类调用B类里面的c方法)。2.通过触发“区县”的选项使得主界面跳转到“区县”相关的新闻列表界面中(到这里就可以理解为B类调用A类中的d方法

人工智能机器学习算法总结神经网络算法(前向及反向传播)

1.定义,意义和优缺点 定义: 神经网络算法是一种模仿人类大脑神经元之间连接方式的机器学习算法。通过多层神经元的组合和激活函数的非线性转换,神经网络能够学习数据的特征和模式,实现对复杂数据的建模和预测。(我们可以借助人类的神经元模型来更好的帮助我们理解该算法的本质,不过这里需要说明的是,虽然名字是神经网络,并且结构等等也是借鉴了神经网络,但其原型以及算法本质上还和生物层面的神经网络运行原理存在

移动硬盘盒:便携与交互的完美结合 PD 充电IC

在数字化时代的浪潮中,数据已成为我们生活中不可或缺的一部分。随着数据的不断增长,人们对于数据存储的需求也在不断增加。传统的存储设备如U盘、光盘等,虽然具有一定的便携性,但在容量和稳定性方面往往难以满足现代人的需求。而移动硬盘,以其大容量、高稳定性和可移动性,成为了数据存储的优选方案。然而,单纯的移动硬盘在携带和使用上仍存在诸多不便,于是,移动硬盘盒应运而生,以其独特的便携性和交互性,成为了数据存储

自制的浏览器主页,可以是最简单的桌面应用,可以把它当成备忘录桌面应用

自制的浏览器主页,可以是最简单的桌面应用,可以把它当成备忘录桌面应用。如果你看不懂,请留言。 完整代码: <!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><ti