基于知识图谱的推荐系统

2023-05-16

基于知识图谱的推荐系统

推荐系统: 核心目标是通过分析用户行为、兴趣、需求等信息, 在海量的数据中挖掘用户感兴趣的信息, 如商品、新闻、POI (point of interest) 和试题 等。

个性化推荐算法是推荐系统的核心, 其主要可以被分为3 类, 即

  1. 基于内容的推荐算法
  2. 基于协同过滤的推荐算法
  3. 混合推荐算法

主要问题:

  1. 用户和物品之间的行为关系数据的稀疏问题
  2. 对新用户或者新物品进行推荐时存在的冷启动问题

将协同过滤推荐算法和其他辅助信息相结合(例如, 用户与物品的属性特征、用户社交网络信息等) 搭建混合推荐系统来解决以上问题

  • 知识图谱作为混合推荐系统中一类有效的辅助信息

知识图谱

知识图谱本质:是一个存储知识实体与实体之间关系的结构化网络, 可以帮助形式化描述、理解现实世界的事物及其相互关系。

知识图谱是一种有向信息异构网络。 其包含节点"实体" 与有向边"关系",

  • 因而蕴含了推荐系统中对于物品的大量背景信息, 以及物品之间的关系。
  • 并且它可以与用户行为数据构成的用户-物品网络集成起来,从而扩展了用户与商品之间存在的隐藏的关联关系, 补充了用户与物品交互数据, 因此可以更进一步地提升推荐效果.
  • 另外,基于知识图谱的推荐方法为构建可解释推荐系统提供了一些新的思路(即不同的路径)

基于知识图谱的推荐系统——方法

两类技术方法:基于嵌入的方法 & 基于路径方法

1 基于嵌入的方法

基于嵌入的应用知识图谱在推荐系统的方法:主要是通过图嵌入的方法对实体和关系进行表征, 进而扩充原有物品和用户表征的语义信息

1.1 基于Trans 系列的图谱嵌入方法

这类方法目的是将实体和关系映射到连续的向量空间中, 获得低维稠密表示。主要包括TransE, TransH, TransR 和TransD

在通过Trans 系列的图谱嵌入方法学习得到实体、关系的表征之后, 就可以用来扩充原有推荐系统中物品、用户的表征

[例]

  • Zhang 等[10] 使用TransR 的方法在知识图谱中学习物品相关实体的结构化知识, 得到物品的结构化语义嵌入表征, 从而对推荐系统中原有基于协同过滤中每个物品V_j 的隐向量e_j 进行扩充
  • Wang 等[2].针对新闻推荐中物品的特殊性, 首先利用TransD 对实体进行表征之后, 再通过对新闻文本先进行实体抽取, 结合实体嵌入表征和原有的词级别嵌入表征对每条新闻进行表征, 从而提升了新闻推荐系统中物品语义的关联性——DKN ⭐

1.2 基于异质信息网络的图嵌入方法

知识图谱因其节点和边具有不同的类别, 又可以被称作一种异质信息网络图, 因此可以使用一些异质信息网络图的嵌入的方法对图上的实体和关系进行表征。

2 基于路径方法

基于路径的应用知识图谱在推荐系统的方法:主要是挖掘基于图谱用户、物品之间多种连接关系

  • 由于知识图谱可以和推荐系统中的用户-物品交互数据构成一个异质信息网络(heterogeneous information networks), 因此可以在推荐系统中引入传统的对异质信息网络进行挖掘的元路径(Meta-path) 的方法。

基于知识图谱的推荐系统——应用

1 传统推荐系统

传统推荐系统是指在给定用户-物品的交互数据以及可能包含用户、物品的属性数据下, 对用户推荐其可能感兴趣的商品

  • 电影

  • 图书

  • 新闻 ⭐

    新闻推荐属于一类特殊的推荐场景, 因为新闻更新十分频繁造成其具有冷启动、交互数据稀疏的问题, 并且新闻中的文本是语义高度浓缩的, 充满实体和常识。为此, 在应用知识图谱到新闻的推荐场景中时, 首先会对它做实体链接[93, 94], 从而将新闻文本中的实体提取出来, 并和图谱中的实体关联, 从而进行后续的推荐算法. 这类任务主要应用的是Bing-News [2] 数据集, 可以使用一些通用类知识图谱如Wikidata [42] 和Microsoft Satori 进行实体关联.

  • 电商商品

  • POI

  • 音乐

  • 药物

2 序列化推荐系统

序列化推荐系统的目的在于捕捉用户兴趣的变化模式, 从而基于用户历史的交互信息预测当前的兴趣点。

目前经典的建模方法包括:

  • 基于马尔科夫(Markov) 的模型
  • 循环神经网络recurrent neural network (RNN) 的模型

主流建模序列化推荐系统的方法:基于循环神经网络的方法

3 可解释推荐系统

可解释推荐系统的目的是:在推荐物品给用户的同时给出推荐的原因, 从而提升推荐系统的可靠性

目前研究者设计的知识图谱下的可解释推荐系统主要是基于路径推荐的方法, 如图所示, 通过知识图谱中实体关联的数据将物品进行关联,并通过后续不同建模的方式进行可解释性的分析.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GqpO6fSm-1603109174089)(F:\Notebook\Project\基于知识图谱的推荐系统\image-20201018180245052-1603015457816.png)]

参考

[2] Wang H, Zhang F, Xie X, et al. DKN: deep knowledge-aware network for news recommendation. In: Proceedings of the 2018 World Wide Web Conference, 2018. 1835–1844

[10] Zhang F, Yuan N J, Lian D, et al. Collaborative knowledge base embedding for recommender systems. In: Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 2016. 353–362

[42] 42 Vrandeˇci´c D, Kr¨otzsch M. Wikidata: a free collaborative knowledge base. Commun ACM, 2014, 57: 78–85

[93] Milne D, Witten I H. Learning to link with wikipedia. In: Proceedings of the 17th ACM Conference on Information and Knowledge Management, 2008. 509–518
[94] Sil A, Yates A. Re-ranking for joint named-entity recognition and linking. In: Proceedings of the 22nd ACM International Conference on Information & Knowledge Management, 2013. 2369–2374

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于知识图谱的推荐系统 的相关文章

  • cmake find_package opencv 找不到

    目录 cmakelist设置方法ok 环境变量设置方法ok linux写法 cmakelists txt完整示例 find opencv lib find package OpenCV REQUIRED NO MODULE should b
  • liveplayer

    npm i 64 liveqing liveplayer S lt template gt lt div class 61 34 live player 34 gt lt div style 61 34 width 640px height
  • DLT algorithm needs at least 6 points for pose estimation from 3D-2D point correspondences. (expecte

    DLT algorithm needs at least 6 points for pose estimation from 3D 2D point correspondences expected 39 count gt 61 6 39
  • 关于OSD

    OSD的主要实现方法和类型 目前有两种主要的OSD实现方法 xff1a 外部OSD发生器与视频处理器间的叠加合成 xff1b 视频处理器内部 支持OSD xff0c 直接在视频缓存内部叠加OSD信息 外部OSD发生器与视频处理器间的叠加合成
  • RTK使用笔记-千寻CORS模式

    一 千寻CORS模式 与基站 43 接收机1对1相比 xff0c 优点为携带方便 xff0c 也不用考虑10公里移动基站问题 xff1b 缺点为第一千寻CORS模式有自己基站涵盖范围 xff0c 所以需要提前确定好范围 xff08 下文有介
  • c/c++语言实现登陆界面

    C C 43 43 语言实现登陆界面 整体功能介绍 实现一个登陆界面 1 输出一个登陆界面 2 用户名能够实现邮箱验证 xff0c regex库 xff0c 密码要不可见 3 进度条的模拟实现 4 音乐播放 分步实现 1 输出一个登陆界面
  • _getch()函数的介绍

    getch 函数的介绍及实例演示 我们一般所使用的 getchar 函数在读入一个字符时必须按一下 Enter 键 xff0c 该代码才会继续运行 但是 getch 函数读入一个字符时 不用 enter 代码会继续跑 xff1b 最简单使用
  • 嵌入式常见面试题

    嵌入式LINUX常见面试问题总结 声明 xff1a 本文是将常见的面试问题进行汇总 xff0c 但大多数问题也是开发中较为常见的技术盲区 xff01 在此进行了汇总 xff0c 以便后续进行参考 xff01 所有的答案部分是自己编写 xff
  • LINUX基础试题大全(1)

    说明 xff1a 此文章由于题数庞大 xff0c 为方便阅读本人将其分为四篇文章为大家分享 xff01 答案会今后不断进行更新 xff01 LINUX基础试题大全 xff08 1 xff09 填空题题 LINUX基础试题大全 xff08 2
  • C语言 | 深入学习数组

    说明 xff1a 本文主要讨论一维数组 xff0c 适宜程度 xff1a 对C语言初步认识及想深入学习者 1 从编译器角度理解数组 从编译器角度理解来讲 xff0c 数组也是一个变量 xff0c 和普通的变量没有本质的区别 变量的本质指的是
  • C语言 结构体 联合体 | 嵌套使用

    一 简单的实例分析 题目 xff1a 获取0x12345678各个字节 答案 xff1a span class token comment 方法一 span span class token macro property span clas
  • Linux 网络编程笔记3 | 内存 系统调用

    七 内存 1 虚拟内存 物理内存 半导体内存和换页文件 虚拟内存 xff1a 地址空间 xff0c 虚拟的存储区域 xff0c 应用程序所访问的都是虚拟内存 物理内存 xff1a 存储空间 xff0c 实际的存储区域 xff0c 只有系统内
  • 树莓派替代品

    51单片机 转载于 https www cnblogs com wanghuaqiang p 11481958 html
  • C++ 笔记10 | 多态(polymorphic)

    span class token variable eg 实现图形库 xff0c 用于显示各种图形 span span class token variable 图形基类 span span class token punctuation
  • QT 笔记3 | Qt设计师使用 Qt创造器使用

    六 Qt设计师使用 designer 案例1 xff1a 使用设计师重构加法计算器 1 创建工程目录 mkdir Calculator2 2 进入工程目录 xff0c 执行 designer 启动设计师 1 xff09 在新建窗体界面 xf
  • QT 笔记5 |Qt多线程(QThread)

    一 Qt多线程 QThread 1 创建线程方法1 xff1a QObject moveToThread class Myclass public QObject Q OBJECT public slots void func void 耗
  • QT 笔记6 | Qt网络编程

    回顾 xff1a 1 Qt多线程 QThread 1 xff09 创建线程 方法1 xff1a moveToThread 方法2 xff1a 继承QThread xff0c 重写run函数 2 xff09 线程同步 互斥锁 xff1a QM
  • QT 笔记7 | UDP编程

    回顾 xff1a 1 xff09 控件类 QT 43 61 widgets QApplication Qt的gui应用程序 QWidget 控件基类 QLabel 标签 QPushButton 按钮 QDialog 对话框 QMainWin
  • 学习c语言

    今天学习了if语句和 xff45 xff4c xff53 xff45 运用 xff43 语言更加顺手 xff0c 之前一些都能实施 xff0c 真是太开心了 include lt stdio h gt int main 初始化 int pr
  • 求符合给定条件的整数集(做题)

    题目如上 xff1b 首先我们先想思路 xff1a 先来一个输入 xff0c 读入这个数 xff0c 然后我们需要三个变量来储存这三个数 xff1b 然后我们遍历所有的组合 xff0c 这个依靠循环 接下来是代码 xff1a include

随机推荐

  • 水仙花数(做题)

    代码如下 xff1a include lt stdio h gt int main int a scanf 34 d 34 amp a float t t 61 0 1 while a gt 0 t 61 t 10 a 判断几位数 int
  • 一分钟了解动态内存分配

    谈到这 xff0c 必然离不开malloc函数 在上面可以看出此函数需要一个头文件 include lt stdilb h gt 而且返回类型是void 传进去的是空间大小 xff0c 此函数申请的空间是字节为单位的 这其中的就分配了100
  • 动态内存分配深究

    接下来我们将探究以下三个问题 xff1a 1 相邻两次malloc得到的空间是否是连续的呢 xff1f 2 你得到的空间的实际大小是否就是你要求的大小呢 xff1f 3 如果你malloc零长度会得到什么结果呢 xff1f 第一个问题 xf
  • 同一个页面不打开两次

    lt script language 61 34 javascript 34 gt function popwin3 path window open path 34 cart 34 34 height 61 520 width 61 52
  • 超易懂!二分查找 详析

    二分算法的 本质 是 xff1a 假如我们可以找到事物的 某种性质 xff0c 这种性质 可以将区间一分为二 xff0c 一半满足 xff0c 一半不满足 我们就可以二分 另外 xff0c 有 连续性 必可以 二分 二分模板一共有两个 xf
  • 手摸手 Spring Cloud Gateway + JWT 实现登录认证

    你好 xff0c 我是悟空 前言 上篇我已经讲解了 Spring Cloud 的原理和实战 xff0c 这次就要结合 JWT 来实现登录认证的功能了 本文已收录至 深入剖析 Spring Cloud 底层架构原理 xff0c 已更新 18
  • 百行代码实现VLC简易视频播放器【VLC环境配置过程+可执行源码注释完整】

    文章目录 什么是VLC x1f680 VLC 库的集成 VLC环境配置演示 win10系统 43 vs2017 43 win64 x1f34e VLC 库的基本使用 x1f382 视频播放器实现 自定义函数Unicode2Utf8讲解 x1
  • HttpWebRequest 使用NetworkCredential 进行域认证下载时不成功 的解决方案

    最近在项目中使用pWebRequest 使用NetworkCredential 进行域认证下载时老不成功 xff0c 最后Google了解决方案 xff0c 发现几乎所有讨论的方案都不成功 xff0c 只好埋头自己解决 xff0c 最后总算
  • Firefox 的用户脚本管理器 greasemonkey 的使用一例

    一 什么是greasemonkey Firefox 的用户脚本管理器 greasemonkey 使你可以向任何网页添加DHTML语句 用户脚本 来改变它们的显示方式 就像CSS可以让你接管网页的样式 xff0c 而用户脚本 User Scr
  • Apache Http 服务器安装教程

    我在学习网络开发的时候需要从服务器上获得json数据 xff0c 所以在自己的电脑上安装了一个本地服务器 xff0c 其中遇到的一些问题 xff0c 在这里都写出来 首先 xff0c 我们需要访问apache http服务器的下载网页 xf
  • STM32的UART奇偶校验注意

    STM32的UART奇偶校验注意 STM32的UART在初始化时 xff0c 我们通常用到最多的就是无校验位 xff0c 1停止位 但是我在项目中也遇到某些芯片通信用的需要奇校验或者偶校验 xff0c 这里需要特别注意的是STM32中开启奇
  • Realtek RTL8762C/Realtek RTL8762D学习记录

    本人基于日常工作整理编写的8762C FAQ文档 xff0c 记录RTL8762C 8762D系列软件开发常见问题以及解决方案 希望它能发挥更多作用 帮到有需要的朋友 关键字 xff1a 8762CMF 8762CK 8762CJ 8762
  • 蓝牙BLE---DA14683的SPI主机通信讲解

    DA14683的SPI主机通信例程 Date 2018 12 19 Create Jim 导入例程 首先导入ble peripheral例程或者pxp reporter例程 再到以下位置打开硬件SPI的宏定义 xff1a 获取SPI例程源码
  • 06.5 Code

    06 5 Code 推力 force 推力的应用旋翼的气动阻力空气阻力矩滚转力矩电机的转速 推力 force span class token comment force 61 电机的转速 xff5c 电机的转速 xff5c xff08 带
  • C、C++ 对于char*和char[]的理解

    1 char 和char 的共同点 都是指针 xff0c 指向第一个字符所在的地址 2 char 的用法 char a 61 34 aaa 34 char p1 61 a char 是常量指针 xff08 常量的指针 xff09 xff0c
  • 重新抛出(rethrow)

    有可能单个catch不能完全处理一个异常 在进行了一些校正行动之后 xff0c catch可能确定该异常必须由函数调用链中更上层的函数来处理 xff0c catch可以通过重新抛出 rethrow 将异常传递给函数调用链中更上层的函数 重新
  • 4-2 图像聚类算法

    4 2 图像聚类算法 目录1 分类与聚类1 1 分类1 2 聚类1 3 聚类样本间的属性1 4 聚类的常见算法 2 K Means聚类2 1 概念2 2 步骤2 3 例子2 4 K Means聚类与图像处理2 5 K Means聚类优缺点优
  • JavaWeb-03 统一字符集编码、JSP的页面元素、JSP九大内置对象-request

    1 使用Eclipse开发Web项目 JSP项目 tomacat 2 在Eclipse中创建的Web项目 xff1a 浏览器可以直接访问WebContent中的文件例如 http 127 0 0 1 8888 MyJspProject in
  • 9-1 从零开始训练网络

    9 1 从零开始训练网络 目录1 搭建网络基本架构要完成的功能 2 构建训练网络1 实现网络训练功能2 获取训练数据及预处理 3 启动训练网络并测试数据 目录 搭建网络基本架构构建训练网络启动训练网络并测试数据 1 搭建网络基本架构 要完成
  • 基于知识图谱的推荐系统

    基于知识图谱的推荐系统 推荐系统 xff1a 核心目标是通过分析用户行为 兴趣 需求等信息 在海量的数据中挖掘用户感兴趣的信息 如商品 新闻 POI point of interest 和试题 等 个性化推荐算法是推荐系统的核心 其主要可以