【数据产品案例】如何将知识图谱特征学习应用到推荐系统?

2024-09-06 04:18

本文主要是介绍【数据产品案例】如何将知识图谱特征学习应用到推荐系统?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

案例来源:@AI科技大本营
案例地址: https://mp.weixin.qq.com/s/_LuF4d0X_oHKuweo7Bt1Wg

1. 知识图谱应用到推荐系统中的三种方式
1)依次学习:先训练知识图谱模型,得到实体和实体关系的向量表示;再将该向量作为推荐模型的输入
2)联合学习:将知识图谱和推荐系统的目标函数结合,使用端到端的方式训练
3)交替学习:将知识图谱和推荐系统的训练放在一起,使用多任务学习的框架进行训练

2. 依次学习 - Deep Knowledge-Aware Network (DKN)
1)引入知识图谱特征:
a. 实体连接:将文中发现的词汇与实体进行匹配
b. 知识图谱构建:根据匹配的实体,从知识图谱中抽取出子图
c. 知识图谱特征学习:使用知识图谱特征学习算法(如TransE)学习实体的向量表示
d. 实体的上下文实体特征:一个实体e的上下文是实体的一跳近邻,e的上下文表示就是一跳近邻特征的平均值
2)构建推荐模型
a. 基于卷积神经网络的文本特征提取:新闻标题词向量、实体向量、实体上下文向量作为多通道,在CNN框架下进行融合
b. 基于注意力机制的用户历史兴趣融合:在判断用户对当前新闻的兴趣时,使用注意力网络给用户历史记录分配不同的权重
3)依次学习的优势在于将知识图谱训练与推荐系统训练分离,前者更新少、训练开销大。但缺点也来源于此,无法端到端训练,知识图谱的训练并不是为了推荐目标而来,不一定适应特定的推荐任务

3. 联合学习 - Collaborative Knowledge base Embedding (CKE)
1)对于结构数据(如导演、电影名):采用TransR进行学习,可以得到实体的特征表示
2)对于文本数据:采用去燥自编码器抽取向量化特征
3)对于图像数据:采用卷积-反卷积自编码器抽取向量化特征
4)将以上三种知识学习的目标函数与协同过滤的目标函数结合,得到以下联合损失函数
5)使用梯度下降法训练

4. 联合学习 - Ripple Network
1)基本思想:用户的兴趣以历史记录中的实体为中心,向外扩散并逐渐衰弱
2)过程【看不懂】:

5. 交替学习 - Multi-task Learning for KG enhanced Recommendation (MKR)
1)出发点:推荐算法中的物品和知识图谱中的实体存在重合,两者的学习存在相关性,两者信息可以互补
2)框架如图:
a. 左侧推荐任务的输入是用户和物品,输出是点击概率
b. 右侧知识图谱学习的任务输入是三元组和关系表示,输出是特征表示
c. 中间设计了交叉特征共享单元:

3)优势:知识图谱特征学习模块在下一次训练中可以继续使用,不用像联合学习一样从头开始学习

这篇关于【数据产品案例】如何将知识图谱特征学习应用到推荐系统?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1140976

相关文章

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Redis 中的热点键和数据倾斜示例详解

《Redis中的热点键和数据倾斜示例详解》热点键是指在Redis中被频繁访问的特定键,这些键由于其高访问频率,可能导致Redis服务器的性能问题,尤其是在高并发场景下,本文给大家介绍Redis中的热... 目录Redis 中的热点键和数据倾斜热点键(Hot Key)定义特点应对策略示例数据倾斜(Data S

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Python实现将MySQL中所有表的数据都导出为CSV文件并压缩

《Python实现将MySQL中所有表的数据都导出为CSV文件并压缩》这篇文章主要为大家详细介绍了如何使用Python将MySQL数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到... python将mysql数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到另一个

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使