首页 > 其他分享 >知识图谱手段增强的推荐系统

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

时间:2023-03-04 18:57:09浏览次数:40  
标签:增强 mathbf 图谱 知识 用户 mathcal 向量

经典协同过滤

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

显式反馈(打分)

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

隐式反馈(点击)

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

算法思想

  1. 根据已有的用户历史行为数据,计算U4与其他用户的相似度\(\mathbf{sim_{u4}}\);
  2. 预测U4对i1的喜欢程度,是将U4与其他用户的相似度\(\mathbf{sim_{u4}}\)作为权重,计算其它用户对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:将关系视为从\(\mathbf h\)到\(\mathbf t\)的翻译过程,即 \(\mathbf h + \mathbf r\) 与 \(\mathbf t\) 的距离:\(f_r(h,t)=\left\| \mathbf h + \mathbf r - \mathbf t \right\|_2^2\) 应该足够小。
  • TransH:将\(\mathbf h\) 和 \(\mathbf t\) 投影到 \(\mathbf r\) 得到 \(\mathbf h_\perp\) 和 \(\mathbf t_\perp\) 后计算距离
  • TransR:将\(\mathbf h\) 和 \(\mathbf t\) 映射到特定的关系空间得到 \(\mathbf h_r\) 和 \(\mathbf t_r\) 后计算距离

问题定义

我们有:

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

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

\[max\ P(\Theta | \mathcal {G,M}) \]

贝叶斯定理

\[P(\Theta | \mathcal{G}, \mathcal{M}) = \frac{P(\Theta, \mathcal{G}, \mathcal{M})}{P(\mathcal{G}, \mathcal{M})} \propto P(\Theta) P(\mathcal G | \Theta) P(\mathcal M | \mathcal G, \Theta) \]

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

\[P(\Theta) = \mathcal N (\mathbf 0, \lambda_1^{-1}\mathbf I) \]

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

\[P(\mathcal G | \Theta) = \prod_{h,r,t \in \mathcal E \times \mathcal R \times \mathcal E} P\left( (h,r,t) | \Theta \right) \\ = \prod_{(h,r,t \in \mathcal E \times \mathcal R \times \mathcal E)} \mathcal N \left( I_{h,r,t} -\mathbf h^ \mathsf{T} \mathbf {Rt}, \lambda_2^{-1} \right) \]

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

\[P(\mathcal G | \Theta) P(\mathcal M | \mathcal G, \Theta) = \prod_{(u,v) \in \mathcal M} \sigma (u^{\mathsf T}v )^{m_{uv}} \left( 1 - \sigma (u^{\mathsf T}v )^{1-m_{uv}} \right) \]

损失函数:

\[\mathcal L = - \log \left( P(\Theta) P(\mathcal G | \Theta) P(\mathcal M | \mathcal G, \Theta) \right) \]


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
  • 将知识图谱用带权图表示(比如邻接矩阵);
  • 知识图谱中的边没有显式的权重;
  • 引入关系打分函数\(S_u(r)=\mathbf u^\mathsf T \mathbf r\):计算给定用户\(u\)对外关系的重要程度,得到用户\(u\)-关系的邻接矩阵\(\mathcal A_u\);
Lay-wise Forward Propagation

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



\(\mathbf W_l\) 是需要学习的参数矩阵

最后用sigmoid函数归一化,得到\(H_{l+1}\)表示下一层的实体表达矩阵。

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

\[\hat y_{uv} = f(\mathbf u, \mathbf v_u) \]

  • \(\mathbf u\) -- 用户向量;
  • \(\mathbf v_u\) -- 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;

标签:增强,mathbf,图谱,知识,用户,mathcal,向量
From: https://www.cnblogs.com/LexLuc/p/17178729.html

相关文章

  • Prometheus理论知识
    1、Prometheus特性:基于时间序列模型:时间模型是一系列有序的数据,通常等时间间隔采样数据基于K/V的数据模型:键值对,速度快采样数据使用数学公式:完全基于数学运算而不是其......
  • Html基础知识-标签
    一、HTML介绍HTML是一种标记语言,不是编程语言,为了快速上手,其他的可以自己查询,下面是我使用VScode生成的第一个HTML网页。二、HTML标签介绍标签分为单标签和双标签,<br>......
  • drm hwc 的知识点分析/记录
    基本的目录结构.|--Android.bp|--backend||--Backend.cpp||--Backend.h||--BackendClient.cpp||--BackendClient.h||--BackendManager.cpp......
  • 02 网络基础知识
    以下内容来源于B站up主“零檬信息技术”,如有侵权,请联系本人删除!传输层https使用TCP协议 默认端口为443网络层主机IP地址寻址 DNS解析数据链路层 加MAC......
  • js变量提升知识点
    JavaScript的函数定义有个特点,它会先扫描整个函数体的语句,把所有申明的变量“提升”到函数顶部:'usestrict';functionfoo(){varx='Hello,'+y;console......
  • 一文网尽关于大文件(分片)上传你需要知道的所有前置知识点
    分片上传知识点一.XMLHttpRequest.uploadXMLHttpRequest.upload属性返回一个XMLHttpRequestUpload对象,用来表示上传的进度。这个对象是不透明的,但是作为一个XMLHttpRe......
  • SAS 增强型编辑器
    SAS增强型编辑器Windows10LTSC2019X64,SAS9.4M7。SAS9.4M7安装在D盘,GHOST恢复了C盘的系统。SAS能用,但是增强型编辑器不能用。解决方案(需要mscomctl.o......
  • 计算机基础知识
    目录一、路径1、绝对路径2、相对路径二、计算机的本质三、计算机的五大组成部分详细介绍1.控制器2.运算器3.存储设备4.输入设备5.输出设备四、计算机三大核心硬件1.cpu2.......
  • 运放浮动的VI源简图(增强运算放大器的输出电压模式)
    参考《运算放大器电路设计手册》,如下图所示,增强运算放大器的输出电压范围。 前面的博客也讲了一些功率放大电路的设计,现在将功率放大电路加上V/I源的控制环路,如图: ......
  • Java基础——IO基础知识
    字节流可以处理任何类型的数据(图片、MP3、视频等文件),字符流只能处理字符类型(文本文件)的数据。      ......