知识图谱手段增强的推荐系统

经典协同过滤

假设行为相似的用户有着相似的偏好,根据大量用户user的行为反馈识别用户群体的感兴趣的内容item并推荐,通常使用用户内容矩阵(User-Item Interaction Matrix)来表示。

显式反馈(打分)

能够明确反应出用户对内容的喜好程度,但数据获取难度高,数据量小。

隐式反馈(点击)

数据获取难度低,但点击不意味用户一定喜欢,需要大量数据支撑。

算法思想

  1. 根据已有的用户历史行为数据,计算U4与其他用户的相似度simu4
  2. 预测U4对i1的喜欢程度,是将U4与其他用户的相似度simu4作为权重,计算其它用户对i1的喜欢程度的加权平均;

存在的问题

image

  1. 矩阵稀疏:用非常少的数据预测,非常容易过拟合;
  2. 冷启动:因为新用户或新内容没有历史数据,故无法针对新用户或新产品进行推荐;

知识图谱辅助的推荐系统

王鸿伟 博士后 斯坦福大学
主页:https://hongweiw.net
源码:https://github.com/hwwang55

针对协同过滤因为单纯依靠用户历史数据而存在的问题,需要考虑引入领域知识增强推荐系统+领域知识举例:

  1. 关系网络:如用户的社交网络;
  2. 属性信息:用户、产品的属性;
  3. 多模态:比如文本、图片、音视频等;
  4. 上下文:比如用户点击时的时间、地点、网络等状态;

知识图谱模型

知识图谱是一种有向异构图,其三元组结构(head、relation、tail)组成的实体及其关系,可以提供辅助信息。

上面的三元组例子中,Forrest Gump是要推荐的内容,其它信息都是知识图谱中查到的这条内容的辅助信息。

Q1:知识图谱能做什么?

案例一:根据知识图谱关联的同staff信息推荐相似电影

案例二:根据关键词关联关系推荐相似新闻

知识图谱可以帮助推荐系统引入某领域内的知识,根据领域知识联想相关信息,将这些信息重组,检索得到类似的新闻。

Q2:如何构建知识图谱?

图向量模型

图向量模型又称为图嵌入模型(Knowledge Graph Embedding),其目标是学习得到每个实体和关系的低维表征向量(类似词嵌入模型)。

Translational Distance Model

将关系视为从Head到Tail的翻译过程。

  • TransE:将关系视为从ht的翻译过程,即 h+rt 的距离:fr(h,t)=h+rt22 应该足够小。
  • TransH:将ht 投影到 r 得到 ht 后计算距离
  • TransR:将ht 映射到特定的关系空间得到 hrtr 后计算距离

问题定义

我们有:

  1. 用户
  2. 内容
  3. 用户与内容存在关联(点击、订阅等)
  4. 领域知识图谱

目标:实现一个能够预测用户u对内容v的点击概率y^uv,要求结合用户行为与领域知识。

解决方法

Embedding-based Method

用图向量的方法处理知识图谱,然后将4种向量经过某种模型实现融合。

Deep Knowledge-aware Networks

H.Wang 于 2018 发表在WWW,用于新闻推荐。

知识蒸馏

知识蒸馏(knowledge distillation),大致步骤如下:

  1. 从新闻语料提取实体;
  2. 从知识图谱中提取出这些实体相关的子图;
  3. 计算子图的图向量,从而得到实体的向量表达;
上下文向量

将实体向外扩展一跳的邻居实体嵌入求平均得到上下文。

Kim CNN

计算一句话的向量

Knowledge-Aware CNN

将Kim CNN扩展的输入矩阵扩展为“3通道”:

  1. 词向量(word embedding)
  2. 实体向量(entity embedding):如果某个词对应知识图谱的一个实体,就能够获取该实体对应的向量,否则用0补充;
  3. 上下文向量(context embedding):如果某个词对应知识图谱的一个实体,就能够获取该实体的上下文向量,否则用0补充;

给一段文字描述,通过Knowledge-aware CNN模型就可以学到新闻标题的embedding。

Attention-Based User Interest Extraction

任务:给定用户历史上点击过的内容(以下称历史内容)以及一条新的待推荐内容(以下称候选内容),判断用户是否对这条候选内容感兴趣;

计算流程如下:

  • 计算每条内容的embedding

  • 用Attention Network计算历史内容与候选内容的重要程度

    • 拼接候选内容与历史内容
    • 通过一个DNN计算得到权重系数
  • 用权重系数对每条历史内容加权得到用户的向量表达(user embedding)

  • 拼接候选内容与用户的向量表达

  • 通过另一个DNN得到用户想看该候选内容的概率

数据集:Bing News

平均每个标题中得到的实体个数有3.7个,质量算比较高的。

Multi-Task Feature Learning for KG-Enhanced RS

H. Wang 于2019年发表在WWW

模型框架

  • 左边用来预测用户点击某条内容的概率
  • 右边是知识图谱的向量表达
  • 两边存在某种关系,比如待推荐的内容可能就是知识图谱的某个实体
  • 因此这里用cross&compress units建立内容与实体的关联
Cross&Compress Unit

Structure-based Method

整合图结构信息

RippleNet: Propagating User Preference in KGs

H. Wang 于2018发表在CIKM

假设:用户对某条内容感兴趣,同时也对该内容在周围的实体感兴趣。

模型框架

输入:用户和内容

输出:用户对内容感兴趣的概率

计算过程:

  1. 获取一个用户点击过的内容节点Vu(对应上图知识图谱发亮的两个节点)作为起点;
  2. 从内容节点出发,沿着知识图谱的关系向外传播,计算某个内容节点与其1阶邻居节点的相关概率pi
  3. 对周边节点加权平均,计算用户对其1阶邻居节点的兴趣向量;
  4. 重复2、3步,得到用户对所有内容的兴趣向量;
  5. 将兴趣向量求和作为用户兴趣向量u
  6. 对用户兴趣向量u和候选内容v求内积,得到用户对候选内容的点击概率;
    优化目标:给定知识图谱G和用户-内容矩阵M,优化推荐模型参数Θ

max P(Θ|G,M)

贝叶斯定理

P(Θ|G,M)=P(Θ,G,M)P(G,M)P(Θ)P(G|Θ)P(M|G,Θ)

其中,设定先验为高斯分布:

P(Θ)=N(0,λ11I)

似然:给定参数Θ,知识图谱G中每个三元组似然概率(高斯分布)的乘积:

P(G|Θ)=h,r,tE×R×EP((h,r,t)|Θ)=(h,r,tE×R×E)N(Ih,r,thTRt,λ21)

似然:给定参数Θ、知识图谱G,计算用户-内容矩阵M的似然概率(伯努利分布):

P(G|Θ)P(M|G,Θ)=(u,v)Mσ(uTv)muv(1σ(uTv)1muv)

损失函数:

L=log(P(Θ)P(G|Θ)P(M|G,Θ))


Knowledge Graph Convolutional Networks

"Knowledge Graph Convolutional Networks for Recommender Systems" H. Wang 于2019年发表在WWW

"Knowldge-aware Graph Neural Networks with Label Smoothness regularization for Recommender syustems" H. Wang 于2019年发表在KDD

Relation Scoring Function
  • 将知识图谱用带权图表示(比如邻接矩阵);
  • 知识图谱中的边没有显式的权重;
  • 引入关系打分函数Su(r)=uTr:计算给定用户u对外关系的重要程度,得到用户u-关系的邻接矩阵Au
Lay-wise Forward Propagation

使用GCN计算每个实体的表征:



Wl 是需要学习的参数矩阵

最后用sigmoid函数归一化,得到Hl+1表示下一层的实体表达矩阵。

预测用户u喜欢内容v的概率:

y^uv=f(u,vu)

  • u -- 用户向量;
  • vu -- KGNN最后一层的实体向量;
  • f -- MLP, 内积等等。

方法对比

性能

KGCN (2019.08) > MKR (2019.05) > RippleNet (2018.10) > DKN (2018.04)
实际性能取决于不同的数据集;

可扩展性

Embedding-based Method > Structure-based Method: KG一般变动比较小,其 embedding 是可复用的,但如果要新增某些节点或关系,图对结构的改动就要重新进行端到端的训练。

可解释性

Structure-based Method > Embedding-based Method
显然图结构比向量更加直观。

总结

  • 知识图谱可作为推荐系统新的辅助信息(new type of side information)
    • 用于解决数据稀疏以及冷启动问题;
    • 提升准确性多样性以及可解释性
  • Embedding-based methods
    • DKN:用于新闻推荐;
    • MKR:融合RS与KGE的多任务学习;
  • Structure-based Methods
    • RippleNet:在KG上传播用户的喜好;
    • KGCN:在KG上使用GCN传播相邻实体信息;
  • 与阿里 DIN 的比较:DIN使用了attention-based method,而这里引入了KG;
posted @   LexLuc  阅读(298)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示