终其一生,我们只不过在寻找自己

0%

知识图谱与推荐系统综述

最近有调研几篇知识图谱在推荐系统的应用的论文,在组内进行了分享。在这里写成文字版,给大家普及一下知识图谱的背景以及在推荐上的应用。如有错误,望指正。

1
2
3
4
5
6
背景介绍(2012-2020)
推荐场景发展
1. Collaborative knowledge base embedding for recommender systems KDD, 2016, Microsoft
2. Deep knowledge-aware network (DKN) 2018, ShanghaiJiaoTongU
3. RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems, 2018, ShanghaiJiaoTongU
总 结

背景介绍

image.png
知识图谱在数学里可以抽象成异构信息网络(Heterogeneous Information Network)。
区别于同构信息网络的点在于,同构信息网络内,所有的节点都是同一种类型,边的关系也是同一种类型,比如:社交网络的节点是“人”,边是“认识”;论文相互引用关系的网络中,节点是“论文“,边是有向的”引用“关系。
而再异构信息网络中(也就是我们提到的知识图谱),节点的类型可以是多种,比如“歌曲” “歌手” “歌单” “创作公司” 等,关系也可以是多种 “歌手-歌手” : “相似,恋人,合作过”、“歌手-歌曲”:“原创,翻唱,作词,作曲”等。
可以理解为,知识图谱可以填充所有现实世界错综复杂的关系。
愿景是,如果我们可以结构化的梳理出这些数据,并且把显示的信息用于我们的推荐、搜索等领域,定能使得我们的系统更加智能,可解释。可以使得我们的内容理解更加充分。

知识图谱的常见应用

最常见的图谱的应用是搜索引擎,比如说我们搜索“腾讯的CEO是谁”,这个搜索的问句中,“腾讯”就是一个实体,“的CEO”是一种关系,而最后的关系指向了另一个节点。
再比如,在“天眼查”这个网站中,主要的节点是人和企业。之间就有从属,合作等关系。

image.png

互联网大佬的布局

其实各个互联网公司也都开始做相关的研究,国内阿里和美团据称已经应用到推荐领域了。
image.png

知识图谱的构建方式

想构建一个完整的知识图谱并不容易。从结构化的数据中提取关系较为简单,但是高质量的结构话关系数据往往数据量小且难以得到。当我们去提取半结构化数据(XML和JSON)和非结构化数据(文本,图片)中提取关系就相对复杂很多。涉及到实体识别(Named Entity Recognition, NER),实习分类,关系识别等数据提取的工作。以及之后的数据清洗,知识表示和推理。整体来说,想要一个“大而全”的知识图谱目前来说较为复杂,也是目前的一个瓶颈。
image.png

论文串讲

对于图谱,最直接的使用就是对于每一个节点,边都进行表征学习,最后输出Embedding来支持后面的其他业务。所以,如何进行图表征就是研究的重点。

0. 背景知识:知识图谱特征学习(Knowledge Graph Embedding)

回顾一下word2vec中的“平行四边形”关系,我们可以发现“dring->drinking” 和 “swam -> swaming” 之间的向量是平行的。但是在word2vec并没有直接的去学习这个“->”边的向量。
image.png
在图谱中,边也是需要进行向量化表征的。在研究中,已经诞生了很多表征的基本方法,如TransE, TransH , TransR , TransD , TransA , TransG , TranSparse等,他们都是对于向量表征的关系定义,感兴趣的同学可以详细了解。举两个具体的例子(如下图)。
image.png
在左边的TransE中,h 和 t都是节点,r是关系。而所有的向量都在同一个空间,h+r可以近似的表示t。
在左边的TransH中,h 和 t都是节点,h’d’是关系。节点向量的投影可以在平面上表示出关系。
在右边的TranR中,h 和 t都通过一个映射关系M,映射到关系空间内,可以恰好和关系r进行计算。
除此之外,还有一些其他的表示方法,都大同小异。

1. Collaborative knowledge base embedding for recommender systems KDD, 2016, Microsoft

微软在2016年首次把知识图谱带入到了推荐系统中,也就是对于协同过滤引入了side-information。
物品的属性是一种结构化的数据,用简单的MLP并不能学习到它们之间的关联,从而无法全面的刻画一个物品。本文提出基于知识图谱的embedding来刻画物品的显式信息,这种是从图结构中学到的关联,能够比较充分地学习到物品的表达。本文关于物品的表达有三个部分,另外两个分别是文本信息和图片信息。
image.png
如下图所示,知识图谱其实只是side-information中的一种,而其中结构化embedding使用刚刚介绍的TransR来求得,即将两个存在于实体空间的实体向量通过映射在关系空间的关系向量连接。
image.png
在引用了外部信息之后,当模型表现会优于现在的其他模型。
image.png

2. Deep knowledge-aware network (DKN) 2018, ShanghaiJiaoTongU

第二篇是来源于上海交大的文章,针对于新闻推荐场景的。目前的新闻推荐系统有以下几个问题:

  1. 无法建立知识层面的潜在链接
  2. 对用户的个性化推荐无法高时效性地动态适应

本文在其中引入外部知识,提出了基于新闻内容和用户点击率的推荐系统:deep knowledge-aware network (DKN)。 其中有两个核心部分:一个是knowledge-aware convolutional neural network (KCNN),该网络结合了语义信息和知识信息共同对新闻进行表示;另一部分是引入attention机制,根据用户历史点击和当前候选新闻进行用户点击率预测。

method

DKN结构如下:
image.png

知识提取

本文首先将其中包含的实体抽取出来进行实体链接,进而得到该文章知识层面的表示。
image.png
这里分为如下三步:

  1. 从新闻内容提取实体,并进行实体链接
  2. 用文中包含的实体构建出一个子图,再对每一个实体从图谱中提取邻居实体(一跳范围)进行扩充
  3. 对子图做graph embedding, 可用方法有transE,transH等等

由于即使graph embedding已经基本保留了知识图谱的结构信息,但是效果还是不够好,所以这里引入“上下文”信息做辅助。

[公式]

所谓“上下文”指节点的邻居节点集,如下图所示:
image.png
每个节点的embedding就可以用它“上下文”节点embedding的均值来表示:

[公式]

对于每个用户,有历史点击记录 [公式] ,其中 [公式] 表示用户点击的第条新闻的标题, [公式] 是其中包括的词项。每个词项从语义角度都能找到一个word embedding,从知识角度有可能能在知识图谱中找到对应的实体,并得到entity embedding(流程如上节描述)。

结果

image.png

点 评:

  1. 多通道的CNN词表示与实体表示来建模标题序列,能更好的建模词和实体之间的关系 👏
  2. DKN使用attention机制,赋予user历史不同的权重,能更好地刻画用户的兴趣😎( Attention牛逼
  3. 用了实体周围的一阶信息,丰满了Embedding的信息

3. RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems, 2018, ShanghaiJiaoTongU

第三篇同样来源于上海交大,且超越了前一篇。作者考虑到了第二篇中,既然用了一阶紧邻的节点对于中心节点进行表征可行,那也可以进行一个扩大范围。
考虑到水波(Ripple)的传播,以user感兴趣的item为seed,在商品知识图谱上向外一圈一圈的扩散到其他的item,这个过程称之为偏好传播(Preference Propagation)。

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

image.png
模型的结构如下图。不断的向外扩展,来拟合残差。
image.png
最终的结果,超越了目前所有模型,包括DKN。
image.png

点 评:

  1. 通过图的向外层层传播,来构造user Embedding的兴趣,可解释性非常强,很有创意 👏
  2. 在多个Embedding传递的过程中,通过vRh的softmax,实现了类似Attention的功能
  3. 联合学习是端到端的方式,训练开销大,但是比较方便

    总结

  4. 知识图谱,可以有效利用大量存在的先验知识,进而降低模型对于大规模样本的依赖
  5. 知识图谱,有更好的可解释性,通过Attention,可以解释用户对于item的具体哪个属性更喜欢
  6. 知识图谱,可以综合更多的信息,充分利用item的自身以及临阶属性
    但是:
  7. 知识图谱目前仍然属于前沿(发展不成熟),是否真正需要还需调研
  8. 音乐场景下,数据格式较为简单。通过关键词匹配,或者曲库标签,可以只花费20%的成本,实现80%的效果

参考资料:
https://tech.meituan.com/2018/11/22/meituan-brain-nlp-01.html
https://zhuanlan.zhihu.com/p/131455882
http://shomy.top/2019/03/19/kg-ns-recsys/
https://www.jianshu.com/p/ac4988c535ae
https://www.sohu.com/a/337458150_817016
https://zhuanlan.zhihu.com/p/34919142
https://blog.csdn.net/Sunflower_ke/article/details/89642009
https://www.jianshu.com/p/2e3cade31098
https://www.jianshu.com/p/c5ffaf7ed449
https://www.leiphone.com/news/201709/kefvQPk1FMybCleb.html
https://zhuanlan.zhihu.com/p/62914401

-------------    你的留言  是我更新的动力😊    -------------