结合知识图谱实现基于电影的推荐系统
知识图谱(Knowledge Graph,KG)可以理解成一个知识库,用来存储实体与实体之间的关系。知
识图谱可以为机器学习算法提供更多的信息,帮助模型更好地完成任务。
在推荐算法中融入电影的知识图谱,能够将没有任何历史数据的新电影精准地推荐给目标用户。
实例描述
现有一个电影评分数据集和一个电影相关的知识图谱。电影评分数据集里包含用户、电影及评分;
电影相关的知识图谱中包含电影的类型、导演等属性。
要求:从知识图谱中找出电影间的潜在特征,并借助该特征及电影评分数据集,实现基于电影的推
荐系统。
本实例使用了一个多任务学习的端到端框架MKR。该框架能够将两个不同任务的低层特征抽取出
来,并融合在一起实现联合训练,从而达到最优的结果。有关MKR的更多介绍可以参考以下链接:
https://arxiv.org/pdf/1901.08907.pdf
一、准备数据集
在1901.08907.pdf的相关代码链接中有3个数据集:图书数据集、电影数据集和音乐数据集。本例使
用电影数据集,具体链接如下:
https://github.com/hwwang55/MKR/tree/master/data/movie
该数据集中一共有3个文件。
• item_index2entity_id.txt:电影的ID与序号。具体内容如图1所示,第1列是电影ID,第2列是序
号。
• kg.txt:电影的知识图谱。图2中显示了知识图谱的SPO三元组(Subject-Predicate-Object),
第1列是电影ID,第2列是关系,第3列是目标实体。
• ratings.dat:用户的评分数据集。具体内容如图3所示,列与列之间用“::”符号进行分割,第1列
是用户ID,第2列是电影ID,第3列是电影评分,第4列是评分时间(可以忽略)。
二、预处理数据
数据预处理主要是对原始数据集中的有用数据进行提取、转化。该过程会生成两个文件。
• kg_final.txt:转化后的知识图谱文件。将文件kg.txt中的字符串类型数据转成序列索引类型数
据,如图4所示。
• ratings_final.txt:转化后的用户评分数据集。第1列将ratings.dat中的用户ID变成序列索引。第
2列没有变化。第3列将ratings.dat中的评分按照阈值5进行转化,如果评分大于等于5,则标注
为1,表明用户对该电影感兴趣。否则标注为0,表明用户对该电影不感兴趣。具体内容如图5
所示。
评论0
最新资源