NewBeeNLP原创出品

公众号专栏作者@上杉翔二

悠闲会 · 信息检索

本篇文章继续整理『推荐系统+知识图谱』这个lineup的后续,主要是2020年SIGIR,CIKM,RecSys的相关文章。

关于以前博主整理过的知识图谱文章传送门:

MVIN

  • 论文:MVIN:Learning Multiview Items for Recommendation

  • 地址:https://arxiv.org/abs/2005.12516

  • 代码:https://github.com/johnnyjana730/MVIN/

来自SIGIR2020的文章。现在有很多文章都在推荐系统中引入外部的知识来提升推荐系统的效果,但没有人考虑过多方面的item特性,所以不能非常精确的学习商品表示。

这个意思就是说某一些用户对同一作者的书籍感兴趣,而其他用户则对某一本书题材感兴趣。即在现实世界中,每个用户对给定的项目都有不同的看法视图(views),而在实体视图中,项目表示由KG中连接到它的实体来定义的。这也对应了想要解决多视图的两大问题:

  • 用户视图Graph如何丰富?

  • 实体视图Graph如何细化?

所以作者相应提出multi-view item network (MVIN) ,从user和item来学习多个视角下的商品表示,进而进行商品推荐。具体对应以上两点的解决方案为:

  • 为了丰富「用户-实体交互」。具体是提出一个用户导向模块去描述每个实体之间关系的重要性。如上面模型图的左边user-entity interaction,论文里面的公式比较复杂,大致就是做以user为中心的多跳GNN聚合(如图中坐下的小蓝框),可以得到:

  • 为了细化「实体-实体交互」。具体提出一个混合层,以进一步改进GCN聚合的实体的嵌入,并允许MVIN从各种分层邻域特征中捕获混合GCN信息。如上面模型图的右边entity-entity interaction,简单来看就是将分层的GCN进行信息对比,以从KG中的内部实体-实体交互中获得全面的特征:

最后再计算分数:




























KERL

  • 论文:KERL: A Knowledge-Guided Reinforcement Learning Model for Sequential Recommendation

  • 地址:https://dl.acm.org/doi/abs/10.1145/3397271.3401134

来自SIGIR2020,如题,这篇论文将KG做到用强化学习控制序列推荐的任务中。加入KG的目的,同样是为了融合知识的信息来加强状态向量的表达能力。

作者认为在序列推荐中,用户偏好的动态变化在强化学习探索过程中更不稳定,仅仅用历史序列的知识是不能充分的指导强化学习的探索过程。

强化学习不做科普,传送门[3]。这里重要的改动为把state变成了三部分,即时序信息ht,历史知识ct,未来知识f,分别对应上图的GRU得到时序,外部知识用KG的TransE得到,未来知识用一个推断网络建模历史知识与未来知识的关联性,























,最后拼接三者



































另一部分的改动是融合知识与序列的复合奖励函数,Reward有两部分组成一是序列(物品级),二是KG(知识属性级)。

  • 序列。受机器翻译评估工作的启发,作者通过 BLEU 指标,评估预测序列 和真实序列 之间单个商品,以及子序列片断的相似性

  • KG。直接用余弦函数测量 预测序列和 真实序列之间知识的语义相似性即可。

CKAN

  • 论文:CKAN: Collaborative Knowledge-aware Attentive Network for Recommender Systems

  • 地址:https://dl.acm.org/doi/abs/10.1145/3397271.3401141

  • 代码:https://github.com/weberrr/CKAN

同样来自SIGIR2020,这篇文章的论点在于现有的基于知识属性的推荐方法大多关注于如何有效地对知识属性关联进行编码,而没有突出隐藏在用户-物品交互中的关键协同信号。所以提出CKAN来编码协同信号。模型架构如上图,可以分为4个部分:

  • Collaboration Propagation。可以看到user的表示是很多个item set,item的表示是通过user得到的item表示,这一点和RippleNet是一致的。

  • Knowledge Graph Propagation。在KG中沿着链路传播,从而得到扩展的实体集,这里也和RippleNet差不多。

  • Knowledge-aware Attentive Embedding。提出了一种基于知识感知的动态嵌入方法,通过Attention去区分不同的头部实体和关系时尾部实体所具有的不同意义,这里直接做个attention就好。

  • Prediction。聚合方式有3种,加和,池化和拼接。

KRED

  • 论文:KRED: Knowledge-Aware Document Representation for News Recommendations

  • 地址:https://arxiv.org/abs/1910.11494

  • 代码:https://github.com/weberrr/CKAN

来自RecSys2020,将KG扩展填充到新闻推荐中,技术上比较像 KG Transformer。一般来说新闻文章通常包含名人或组织等知识实体,用KG来增强任意文档表示是非常合适的,但是现有方法1BERT这种大规模不考虑实体;2DKN只纳入标题,扩展全文效率低;3实体在文章中出现的位置,频率,类别等对理解新闻很重要。模型架构如上图,首先是用KGAT来表示每个实体,然后:

  • Context Embedding Layer。加入实体Position Encoding(实体的位置),Frequency Encoding(实体出现频率),Category Encoding(实体的类别)。

  • Information Distillation Layer。实体的最终重要性不仅由它自己的消息决定,还受文章中同时出现的其他实体和文章的主题的影响。所以这里用Transformer来优化表征。

  • Multi-Task Learning。最后做一个多任务:包括个性化推荐,项目到项目推荐、新闻流行预测、新类别预测和本地新闻检测等等。

GAEAT

  • 论文:GAEAT: Graph Auto-Encoder Attention Networks for Knowledge Graph Completion

  • 地址:https://dl.acm.org/doi/10.1145/3340531.3412148

  • 代码:https://github.com/TomersHan/GAEAT

来自CIKM2020的小短文,虽然比较短感觉还可以。motivation是一般学习kg只能学到三元组知识,却不能学到内在的关系(即不能推理和其他三元组内的复杂关系)。所以作者想表达实体和关系特征,同时挖掘实体-关系的交互作用。具体来说,GAEAT模型就是简单的attention的GAE学其内在关系。

模型图如上,第一个部分直接学三元组的Embeddin

然后接一个GAE[4],即图自编码器,分为两块:

  • 编码器:使用图注意网络得到实体和关系特征,这里用的也是实体多跳。

  • 解码器:利用这些已经提取到的三元组内的潜在特征,DistMult算分数



























一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定要备注信息才能通过)

本文参考资料

[1]

知识图谱用于推荐系统问题(CKE,RippleNet): https://blog.csdn.net/qq_39388410/article/details/106430685

[2]

知识图谱用于推荐系统问题(MKR,KTUP,KGAT): https://nakaizura.blog.csdn.net/article/details/106428258

[3]

传送门: https://nakaizura.blog.csdn.net/article/details/88795124

[4]

GAE: https://nakaizura.blog.csdn.net/article/details/107895198

END -

对 比 学 习 小 综 述

2021-05-12

FLOATER:更加灵活的Transformer位置编码!

2021-05-07

腾讯 WXG  | 技术研究-NLP算法三面复盘

2021-04-29

通俗易懂 | 图神经网络入门笔记

2021-04-26

深度融合 | 当推荐系统遇见知识图谱(三)相关推荐

  1. 当推荐系统遇见知识图谱会发生什么?

    作者 | 上杉翔二   责编 | 张文 头图 | CSDN 下载自视觉中国 今天来看看『推荐系统 + 知识图谱』,又会有哪些有趣的玩意儿呢. Knowledge Graph 知识图谱是一种语义图,其结 ...

  2. 知识图谱论文阅读(八)【转】推荐系统遇上深度学习(二十六)--知识图谱与推荐系统结合之DKN模型原理及实现

    学习的博客: 推荐系统遇上深度学习(二十六)–知识图谱与推荐系统结合之DKN模型原理及实现 知识图谱特征学习的模型分类汇总 知识图谱嵌入(KGE):方法和应用的综述 论文: Knowledge Gra ...

  3. 论文浅尝 | 打通推荐系统与知识图谱: 第一个公开的大规模链接数据集合

    本文转载自:RUC智能情报站,知乎专栏链接:https://zhuanlan.zhihu.com/RucAIBox 前言:近年来,知识图谱(KB)被广泛应用于推荐系统(RS),但尚未有公开将推荐系统物 ...

  4. 推荐系统与知识图谱(2)

    推荐系统与知识图谱(2) Ref:如何将知识图谱特征学习应用到推荐系统? 将知识图谱作为辅助信息引入到推荐系统中可以有效地解决传统推荐系统存在的稀疏性和冷启动问题,近几年有很多研究人员在做相关的工作. ...

  5. 知识图谱论文阅读(九)【转】推荐系统遇到知识图谱之MKR模型

    文哥的学习笔记: https://www.jianshu.com/p/af5226c7fbbb 知识图谱特征学习在推荐系统中的应用步骤大致有以下三种方式: 依次训练的方法主要有:Deep knowle ...

  6. 图谱实战 | 徐美兰:深度应用驱动的医学知识图谱构建

    转载公众号 | DataFunSummit 分享嘉宾:徐美兰 浙江数字医疗卫生技术研究院 数字医学知识中心主任 编辑整理:李杰 京东 出品平台:DataFunTalk 导读:数研院这些年在知识图谱建设 ...

  7. 图谱实战 | 深度应用驱动的医学知识图谱构建

    分享嘉宾:徐美兰 浙江数字医疗卫生技术研究院 数字医学知识中心主任 编辑整理:李杰 京东 出品平台:DataFunTalk 导读:数研院这些年在知识图谱建设上取得了丰硕成果,今天我们将图谱构建过程中的 ...

  8. 推荐系统遇上深度学习(二十六)--知识图谱与推荐系统结合之DKN模型原理及实现

    作者:石晓文 Python爱好者社区专栏作者个人公众号:小小挖掘机 添加微信sxw2251,可以拉你进入小小挖掘机技术交流群哟!博客专栏:wenwen 在本系列的上一篇中,我们大致介绍了一下知识图谱在 ...

  9. 【十】推荐系统遇到知识图谱RippleNet

    RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems 代码: https://g ...

最新文章

  1. MnasNet:迈向移动端机器学习模型设计的自动化之路
  2. Linq To select
  3. 成为更优秀的开发人员:第一步-“制造”粉丝
  4. 【机器视觉】 dev_map_par算子
  5. 幕后常驻嘉宾配音小姐姐的2021年度总结
  6. 微软说它深爱着Linux,现在它用行动证明了
  7. 牛客练习赛50-记录
  8. CentOS操作系统(LAMP)安装教程
  9. Query Layer介绍
  10. NGenerics算法库是学习的好代码
  11. 【报告分享】2019区块链赋能新型智慧城市白皮书.pdf(附204页电子书下载链接)
  12. 【JSOI2014】【BZOJ5039】序列维护(线段树模板)
  13. linux内存分段管理,Linux內存管理之分段機制
  14. ResultSet用法集锦
  15. 李白打酒java_蓝桥杯-李白打酒-java
  16. Python批量识别图片中的文字并保存到txt文档中
  17. 大唐豪侠 -架构开发纪实
  18. 金蝶K3案例教程应收账款前台操作
  19. 一起来看新浪的NBA图文直播摆乌龙
  20. 算法-关于地点名词提取(C/C++/JAVA/C#)-build20220403

热门文章

  1. 为什么中小企业选择 SAP Business One?
  2. 智慧城市、智慧园区、智慧交通、行业经营看板、运行管理大屏、图表模板、公司经营看板、大屏可视化、BI可视化模板、智慧工厂、办公、能源、餐饮、校园、人力资源、行政、汽车、房地产、保险、医院、axure原型
  3. Pandas高级操作
  4. mysql事务、视图
  5. 转发:一个复杂系统的拆分改造实践
  6. NOIP 贪心 国王游戏
  7. 牛客练习赛15A-吉姆的运算式(Python正则表达式瞎搞)
  8. Swif基本语法以及与OC比较三
  9. 2011年计算机二级c++笔记:类的转换
  10. JS之Window对象