论文浅尝 | 打通推荐系统与知识图谱: 第一个公开的大规模链接数据集合

本文转载自:RUC智能情报站,知乎专栏链接:https://zhuanlan.zhihu.com/RucAIBox



640?wx_fmt=jpeg

前言:近年来,知识图谱(KB)被广泛应用于推荐系统(RS),但尚未有公开将推荐系统物品链接到知识图谱实体的数据集。本文结合SIGIR2018论文《Improving Sequential Recommendation with Knowledge-Enhanced Memory Networks》所用数据集 [1],公布了相关链接数据集 [2],希望能对大家有所帮助。


一、动机/引介


近年来,学术界和工业界都致力于利用结构化的知识信息和相关领域的已知事实来提升各项应用。在众多数据形式中,知识图谱高度结构化,能够有效组织和关联相关实体,被广泛运用到各个领域。推荐任务中利用知识图谱提升推荐的质量和可解释性,相关的推荐系统被称为knowledge-aware recommender systems。

为了适应推荐系统和知识图谱相关研究需求,本工作启发式地将推荐数据中的物品链接到大型知识图谱中的实体,为推荐系统的物品提供蕴含丰富语义的结构化知识信息。本工作将其整理,发布为公开的推荐系统-知识图谱链接数据集KB4Rec v1.0。


二、数据集概况


KB4Rec v1.0数据集,构建了推荐系统数据集物品(RS item)到知识图谱实体(KB entity)的链接。在推荐系统方面,选取了三个得到广泛使用的数据集:MovieLens 20M [3]、LFM-1b [4]、Amazon book [5],分别对应电影、音乐和书籍三个领域;在知识图谱方面,选取了研究者常用的Freebase [6]。

KB4Rec v1.0数据集由链接的ID对组成,包括推荐系统的物品ID和Freebase中的实体ID。链接文件片段(电影数据集合MovieLens 20M)如下所示:


     25991	m.09pglcq25993	m.0cjwhb25994	m.0k44325995	m.0b7kj8


通过此链接,能够找到部分推荐系统中物品在知识图谱内对应的实体,并通过读取与该实体相关的三元组,获取相应的属性。举个例子,电影“阿凡达”通过链接找到相应实体,读出与之相关的三元组能够在知识图谱中找到相应的演员、导演等属性。

链接数据集(三个领域)的数据统计见下表:

640?wx_fmt=jpeg


三、链接分析


可以看到不是所有推荐系统中的物品都能够在Freebase中找到对应的实体。对于各领域链接比例(linkage ratio),本工作参照各推荐领域内物品流行度做了相关分析,其中物品流行度由推荐数据中与物品有交互记录的用户数代表。首先,将推荐系统中的物品按流行度升序排序,等分到5个桶(bin)中,展示相应部分链接比例。如下图,可以发现:流行度高的物品更倾向于被Freebase所包含。


640?wx_fmt=jpeg


针对MovieLens 20M数据集,还对电影的发布时间与链接比例做了分析。对所有电影按发布时间升序排序,等分到10桶(bin)中,展示相应链接比例。如下图所示,可以发现:越早发布的电影越倾向于被Freebase所包含。


640?wx_fmt=jpeg

四、数据获取


本工作将相关项目部署在github上,数据的获取和使用需遵照相关证书(license)。更多链接和数据集构建的细节请参照我们的相关论文 [2]。


五、相关论文


[1] Jin Huang, Wayne Xin Zhao, Hong-Jian Dou, Ji-Rong Wen, Edward Y. Chang : Improving Sequential Recommendation with Knowledge-Enhanced Memory Networks. SIGIR 2018: 505-514

[2]  Wayne Xin Zhao, Gaole He, Hongjian Dou, Jin Huang, Siqi Ouyang and Ji-Rong Wen : KB4Rec: A Dataset for Linking Knowledge Bases with Recommender Systems. Arxiv 1807.11141.

[3] F. Maxwell Harper, Joseph A. Konstan : The MovieLens Datasets: History and Context. TiiS 5(4): 19:1-19:19 (2016)

[4] Markus Schedl : The LFM-1b Dataset for Music Retrieval and Recommendation. ICMR 2016: 103-110

[5] Ruining He, Julian McAuley : Ups and Downs: Modeling the Visual Evolution of Fashion Trends with One-Class Collaborative Filtering. WWW 2016: 507-517

[6] Google : 2016. Freebase Data Dumps. developers.google.com/f data.


本文作者:何高乐,2018级研究生,目前研究方向为网络表示学习、深度学习,来自中国人民大学大数据管理与分析方法研究北京市重点实验室。


RUC 智能情报站由中国人民大学信息学院的赵鑫副教授 (微博 @赵鑫RUC) 所带领的研究小组维护。关注的领域是数据挖掘、社会计算和机器学习。该专栏会定期会分享相关学术内容,欢迎各位来邮件进行交流,也欢迎大家向该专栏投稿精品文章。知乎账号联系人为 窦洪健,负责资讯、投稿、宣传以及一切账号相关问题,邮箱为43404873@qq.com;企业和转载合作需求请致谢赵鑫老师,邮箱为 batmanfly@qq.com。赵鑫老师个人情况详见个人主页 http://playbigdata.com/batmanfly 和 http://info.ruc.edu.cn/academic_professor.php?teacher_id=55 。




OpenKG.CN


中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

640?wx_fmt=jpeg

点击阅读原文,进入 OpenKG 博客。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480519.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构--链表--判断一个字符串是否为回文串(单向链表,双向链表)

回文串为首尾对称的字符串: 如a,aba,abba等 单链表思路 1.将字符读入链表 2.找到链表中点 3.将链表从中点断开成2条,将后半条反转 4.比较两条链表是否相等(比较次数以少的为准(长度为奇数时&#xff…

丁香园在语义匹配任务上的探索与实践

前言语义匹配是NLP领域的基础任务之一,直接目标就是判断两句话是否表达了相同或相似意思。其模型框架十分简洁,通常包含文本表示和匹配策略两个模块,因而很容易扩展到相关应用场景,如搜索、推荐、QA系统等。此类模型通常依赖数据驱…

19本高并发编程书籍推荐

Java并发编程实战 (java并发的圣经) 多处理器编程的艺术 (并发编程的各种算法,java实现,有点难度) 并发的艺术 (多核处理器的共享内存模型中的各种算法) Java虚拟机并发编程 &#x…

Wasserstein metric的通俗解释

Wasserstein metric的通俗解释​关注他166 人赞同了该文章本文收录在无痛的机器学习第二季目录。Wasserstein GAN可以算是GAN界的一大突破了,有关它的介绍和使用心得的文章也已经满天飞了,感兴趣的童鞋随便一搜就能好多,今天就不说太多大家说…

肖仰华 | 领域知识图谱落地实践中的问题与对策

本文转载自公众号:知识工场。肖仰华教授2万字长文为您深度剖析领域知识图谱,对领域知识图谱技术与落地应用中的一系列关键问题做了系统的梳理与解答。肖仰华博士,复旦大学计算机科学与技术学院教授,博士生导师,知识工场…

数据结构--链表--约瑟夫环问题(单向循环链表)

问题:一群人站成一个圆圈,从一个人开始报数,1, 2 ,。。。m,报到m的拉出去砍了,求被砍的顺序和最后一个活下来的。 利用单向循环链表实现 C代码如下:(参考书籍&#xff…

献给新一代人工智能后浪——《后丹》

一只小狐狸带你解锁炼丹术&NLP秘籍视频来源:AIZOO《后丹》那些口口声声,掉包调参侠的人,应该看着你们像我一样,我看着你们,满怀羡慕。人类积攒了几十年的科技,所有的模型、数据、框架和显卡&#xff0c…

神经网络算法学习---mini-batch++++mini-batch和batch的区别

Batch_Size(批尺寸)是机器学习中一个重要参数,涉及诸多矛盾,下面逐一展开。 首先,为什么需要有 Batch_Size 这个参数? Batch 的选择,首先决定的是下降的方向。如果数据集比较小,完全…

进阶阿里架构师:算法、编程语言、数据库、架构设计!书单推荐!

阿里架构师必读书单 数据结构与算法:算法、算法导论等。 编程语言:java编程思想、java核心技术等 模式与设计:设计模式、代码重构、深入理解java虚拟机 数据库:mysql优化、oracle、redis实战、mongodb权威指南等。 架构设计&a…

刘知远 | 语义表示学习

本文转载自公众号:人工智能图灵。刘知远,清华大学计算机系副教授、博士生导师。主要研究方向为表示学习、知识图谱和社会计算。2011年获得清华大学博士学位,已在ACL、IJCAI、AAAI等人工智能领域的著名国际期刊和会议发表相关论文60余篇&#…

数据结构--链表--LRU缓存

LRU&#xff08;Least Recently Used&#xff09;缓存策略&#xff1a; 通俗的讲就是&#xff0c;最近使用的放在最前面&#xff0c;不经常使用的放后面&#xff0c;满了就删除 C代码实现 //用单链表实现LRU策略 2019.3.17 #include <iostream> #include <string…

透过现象看机器学习:奥卡姆剃刀,没有免费的午餐,丑小鸭定理等

一只小狐狸带你解锁炼丹术&NLP 秘籍本文对PAC学习理论、没有免费的午餐定理、丑小鸭定理、奥卡姆剃刀原理等机器学习中有名的理论或定理进行了详细的梳理。在机器学习中&#xff0c;有一些非常有名的理论或定理&#xff0c;这些理论不仅有助于我们从本质理解机器学习特性&a…

NAACL 2019最佳论文:量子概率驱动的神经网络

今天要介绍的文章与当前大火的 BERT 同获最佳论文&#xff0c;摘得 NAACL 2019 最佳可解释NLP论文&#xff08;Best Explainable NLP Paper&#xff09;。NAACL 与 ACL 和 EMNLP 并称之为 NLP 三大顶会&#xff0c;去年 ELMO 获得 outstanding paper&#xff0c;今年一共有五篇…

互联网优秀架构师必读书单V2.0

一篇文章搞懂高级程序员、架构师、技术经理、技术总监、CTO&#xff0c;从薪资到技能要领的区别&#xff0c;我提到了架构师的准确定义和所需工作年限&#xff0c;以及最重要的架构师的职责等。 从程序员进阶到架构师&#xff0c;6大核心技能详解&#xff0c;提到了从程序员进…

领域应用 | NLP 和知识图谱:金融科技领域的“双子星”

本文转载自公众号&#xff1a;恒生技术之眼。自然语言处理&#xff08;Natural Language Processing, NLP&#xff0c;语义计算&#xff09;和知识图谱&#xff08;Knowledge Graph, KG&#xff0c;知识计算&#xff09;作为认知智能的关键技术&#xff0c;正成为智能金融浪潮中…

数据结构--单链表single linked list(无表头哨兵)重写

针对上次写的单链表中不足的地方进行修改&#xff1a; 1.构造函数需要让用户输入&#xff08;bad&#xff09; 2.函数功能不单一&#xff0c;既操作链表&#xff0c;还打印输出&#xff08;bad&#xff09; 代码链接&#xff08;包含无头\有头单链表、循环单链表、双链表、循…

别再蒸馏3层BERT了!变矮又能变瘦的DynaBERT了解一下

一只小狐狸带你解锁炼丹术&NLP秘籍神经网络模型除了部署在远程服务器之外&#xff0c;也会部署在手机、音响等智能硬件上。比如在自动驾驶的场景下&#xff0c;大部分模型都得放在车上的终端里&#xff0c;不然荒山野岭没有网的时候就尴尬了。对于BERT这类大模型来说&#…

LS-GAN:把GAN建立在Lipschitz密度上

最近很多关心深度学习最新进展&#xff0c;特别是生成对抗网络的朋友可能注意到了一种新的GAN-- Wasserstein GAN。其实在WGAN推出的同时&#xff0c;一种新的LS-GAN (Loss Sensitive GAN&#xff0c;损失敏感GAN)也发表在预印本 [1701.06264] Loss-Sensitive Generative Adver…

java程序员必看经典书单,以及各个阶段学习建议

最近&#xff0c;部分读者一直希望我给大家推荐java程序员必读书籍&#xff0c;以及java程序员每个阶段的学习建议。 今天&#xff0c;先给大家推荐1.0版本&#xff0c;后面再不断完善程序员必读书籍2.0版本。 希望&#xff0c;你早日成为牛逼的程序员。 程序员进阶之路 上图是…

数据结构--链表--单链表归并排序mergesort

思路&#xff1a; 1.将链表的中点找到&#xff0c;对其切分成2条 2.继续步骤1&#xff0c;切成4条&#xff0c;8条。。。,直至每段链表只有1个元素 3.归并操作&#xff0c;对两两链表进行合并排序&#xff0c;并返回回并后的链表的头结点&#xff0c;依次向上递归回去 C代码…