Collaborative Knowledge Base Embedding for Recommender Systems学习心得
本文翻译自<<Collaborative Knowledge Base Embedding for Recommender Systems>> 这篇论文。
为了表述通畅,文章采用第一人称视角。
一、Abstract
协同过滤方法由于user-item矩阵的稀疏性,效果受限。可以使用辅助信息解决这个问题。 在本文中,微软探索了如何利用知识库中的各种不同的信息去提升推荐系统的performance。 首先,为了使用知识库,我们设计了三个组件分别从物品的结构化内容,文本内容和视觉内容中提取语义特征。更确切的说,网络TransR提取物品的结构化信息(同时考虑nodes和relationships)。stacked denoising auto-encoders提取文本表达。stacked convolutional auto-encoders 提取物品视觉表达。最后我们提出整合的框架:Collaborative Knowledge Base Embedding(CKE)来联合学习协同过滤的隐式向量以及物品的基于知识库的语义表达。
1、Introduction
本文的贡献点:
目前为止(2016年的paper),第一次使用知识库中的结构化内容,文本的内容,视觉的内容进行推荐的方法。
使用了embedding方法自动提取语义representation。这些学习到的representation可以用在除了推荐以外的其他方面。
CKE能用同时提取feature representation和捕捉item 与 user之间的隐式关系。(隐式关系,我觉得就是item embedding)。
基于两个real-word数据集。我们进行了大量的实验。结果显示:我们的方法比baseline提升了很多。
2、Preliminary
2.1 隐式反馈
本文目标针对隐式反馈,所以user-item交互矩阵表示成如下:
![](/assets/blank.gif)
有交互为1,没有交互或不知道是否有交互为0。
2.2知识库
将推荐系统中的item映射到知识库中,举个例子:一个电影通常被映射成一个entity描述这个电影。这些entities用术语“item entities”表示。
知识库中的信息可以分成三部分:结构化知识,文本知识,视觉知识。
①:结构化知识 表现为知识库中的实体以及实体的联系。比如:对于一个电影来说,实体就表示为电影和他的属性:科幻电影,演员等。关系就表示实体之间的联系:出演,评分等 ②:文本知识 通常给出book or movie的topic ③:视觉知识 视觉信息很多,本文通常使用书的封面或一个电影的海报作为视觉知识。
问题的明确表达: 本文的推荐问题是:给定有结构化知识,文本知识,视觉知识的知识库以及user的隐式反馈,用我们的方法产生一个用户感兴趣的ranked list。
![](/assets/blank.gif)
3、Overview
CKE的两个步骤: 1) knowledge base embedding 2) collaborative joint learning.
在知识库embedding阶段。使用Bayesian TransR提取结构化知识。使用Bayesian stacked denoising auto-encoder (Bayesian SDAE)提取文本知识。使用 Bayesian stacked convolutional autoencoder (Bayesian SCAE)提取视觉知识。
在协同联合学习阶段,物品的隐含向量最终表示为:item offset vector和第一阶段的三个embedding的融合。然后通过优化pair-wise ranking学习user,item向量。最终使用user,item的latent vector产生推荐。
4、KNOWLEDGE BASE EMBEDDING 阶段
4.1 Structural Embedding
结构化信息表现为一个network,因为一个实体有很多实体与之相连。那么把这个网络给映射到一个连续的向量空间就是我们需要做的事情。首先介绍TransR这个模型(他是一个state of the art的 network embedding方法,AAAI2015)。
TransR表示实体和关系在不同的语义空间下,并通过relation-specific 矩阵桥接。如下图:
![](/assets/blank.gif)
4.2 Textual Embedding
这部分显示介绍SDAE,然后再介绍 Bayesian SDAE。
![](/assets/blank.gif)
然后Bayesian SDAE就是让权重,偏置,输出层符合特定的正态分布。
![](/assets/blank.gif)
4.3 Visual Embedding
类似于4.2节的Bayesian SDAE的引入方法。 首先是SCAE
![](/assets/blank.gif)
Bayesian SCAE也是让参数符合特定的正态分布。
![](/assets/blank.gif)
5、COLLABORATIVE JOINT LEARNING阶段
这一部分主要是为了把从知识库中提取的item embedding融合到collabrative filtering 中去。
![](/assets/blank.gif)
其中η代表协同过滤中的物品的隐含向量。其他的三个分别代表从知识库中提取出来的特征。
然后使用pair-wise的形式:
![](/assets/blank.gif)
这个式子的意思是,对于用户i来说,相比j'来说,更喜欢j物品。θ表示模型参数。
6、EXPERIMENTS
分别使用书和电影这两个领域进行试验。 数据集: MovieLens-1M : consists of 1M ratings with 6,040 users and 3,706 movies. 去除掉评分数少于3的用户。
IntentBooks:由 Microsoft’s Bing search engine and Microsoft’s Satori knowledge base收集得到。这个数据集中,用户对书的兴趣由点击或查询操作产生。
** Satori knowledge base** :从这个知识库中提取structural knowledge, textual knowledge and visual knowledge为上面的两个数据集。
最后得到的数据集信息如下:
![](/assets/blank.gif)
说明:sk代表结构化知识,tk代表文本知识,vk代表视觉知识。
然后开始做大量的实验,实验指标是MAP@K(mean average precision)和Recall@K。 数据集划分70:30划分。关于实验部分具体详情请参阅原论文。
下面说一下为什么使用Recall和MAP这两个指标吧:
对一个二分类问题,实际取值只有正、负两例,而实际预测出来的结果也只会有0,1两种取值。如果一个实例是正类,且被预测为正类,就是真正类(True Positive),如果是负类,被预测为正类,为假正类(False Positive),如果是负类被预测成负类。称为真负类(True Negative),正类被预测为负类称为假负类(False Negative)。
信息检索中,我们经常会关系“检索出的信息有多少比例是用户感兴趣的”以及“用户感兴趣的信息中有多少被检索出来了”。即查准和查全。这时候传统的错误率就不能体现出来了。
mAP的本质其实是多类检测中各类别最大召回率(recall)的一个平均值
计算mAP之前我们先要了解Precision和Recall也就是精确率和召回率。
精确率主要衡量模型做出预测的精准度,也就是TP在TP与FP和中的占比率
召回率主要用来衡量模型对positives的检测程度,也就是TP在TP与FN中的占比率
![](/assets/blank.gif)
一般来说,我们希望上述两个指标都是越高越好,然而没有这么好的事情,准确率和召回率是一对矛盾的度量,一个高时另一个就会偏低,当然如果两个都低,那肯定时哪点除了问题。
![](/assets/blank.gif)
实际多类别分类任务中,我们通常需要知道从top-1到top-N(N是所有测试样本个数)对应的precision和recall。显然随着我们选定的样本越来也多,recall一定会越来越高,而precision整体上会呈下降趋势。把recall当成横坐标,precision当成纵坐标,即可得到常用的precision-recall曲线。一个真实的P-R曲线如下:
![](/assets/blank.gif)
计算AP: 首先设定一组阈值,[0, 0.1, 0.2, …, 1]。然后对于recall大于每一个阈值(比如recall>0.3),我们都会得到一个对应的最大precision。这样,我们就计算出了11个precision。AP即为这11个precision的平均值。这种方法英文叫做11-point interpolated average precision。
AP衡量的是学出来的模型在给定类别上的好坏,而mAP衡量的是学出的模型在所有类别上的好坏,得到AP后mAP的计算就变得很简单了,就是取所有AP的平均值。
实验总结: CKE(S)、CKE(T)、CKE(V)分别表示只用Structure,Textual或Visual的CKE模型。
①:CKE(S)、CKE(T)、CKE(V)都能beat掉baseline
![](/assets/blank.gif)
![](/assets/blank.gif)
②:相较CKE(S),CKE(T)、CKE(V)提升的效果没有CKE(S)好,不过也是可以beat掉baseline。
③:CKE(STV)效果最好。
paper总结: 2016年的文章,十分新颖的将side information融合到矩阵分解的协同过滤模型中,同时对于不同domain的特征使用不同的网络去提取特征。
Collaborative Knowledge Base Embedding for Recommender Systems学习心得相关推荐
- Collaborative Knowledge Base Embedding for Recommender Systems(译)
原文地址 http://www.kdd.org/kdd2016/subtopic/view/collaborative-knowledge-base-embedding-for-recommender ...
- Coursera 机器学习 第9章(下) Recommender Systems 学习笔记
9.5 Predicting Movie Ratings 9.5.1 Problem Formulation 推荐系统. 推荐系统的问题表述:电影推荐.根据用户对已看过电影的打分来推测用户对其未打分的 ...
- [论文阅读笔记17]A Survey on Knowledge Graph-Based Recommender Systems
一,题目 TKDE 2020 A Survey on Knowledge Graph-Based Recommender Systems 综述:基于知识图谱的推荐系统 In IEEE Transact ...
- RKGE Recurrent Knowledge Graph Embedding for Effective Recommendation 论文
Paper-RKGE [ Recurrent Knowledge Graph Embedding for Effective Recommendation ] Abstract 关于KG应用于推荐,现 ...
- RKGE:Recurrent Knowledge Graph Embedding for Effective Recommendation 论文
emm-图片复制过来显示不了(因为我太懒了0.0),要看图的话可以去我的博客瞅瞅,嘿嘿嘿 对了,有些英文短句假如翻译成中文,阅读的时候就太搞脑子了,所以我干脆就不翻译了 这篇论文的模型跟我上一篇发布的 ...
- 论文解读:Improving Multi-hop Question Answering over Knowledge Graphs using Knowledge Base Embeddings
论文解读:Improving Multi-hop Question Answering over Knowledge Graphs using Knowledge Base Embeddings ...
- 图学习推荐系统综述| Graph Learning Approaches to Recommender Systems
原创 张小磊 机器学习与推荐算法 目录 0 前言 1 摘要 2 特色 3 主要内容 4 未来方向 5 参考 0 前言 还记得在知乎上回答过两个关于图的相关问题: 问题1:有必要学 ...
- 【论文阅读笔记】Multi-modal Knowledge Graphs for Recommender Systems
Multi-modal Knowledge Graphs for Recommender Systems 1.背景 现有的推荐系统主要分为两种方法,基于内容和协同过滤. 基于内容的方法是针对user- ...
- 知识图谱论文阅读(十五)【arxiv】A Survey on Knowledge Graph-Based Recommender Systems
论文题目: A Survey on Knowledge Graph-Based Recommender Systems 论文链接: 论文代码: 想法 出现Refine就是用某些方法更好的优化特征表示 ...
最新文章
- tinyxml 读取文本节点_【C++】【TinyXml】xml文件的读写功能使用——写xml文件
- 生产管理车间提高劳动利用率
- smarty模板基本语法
- unity3d 不规则外发光描边_饰品,就是女人身上的星星,能让你在夏天里闪闪发光...
- 容器生态系统 (续) - 每天5分钟玩转容器技术(3)
- STM32开发 -- 进制与字符串间的转换
- bufferedreader读取中文乱码_python之pandas模块关于csv文件乱码问题解决
- git stash 缓存 简介
- 学计算机好轻松,猎证全国计算机等级考试学习系统
- 【python基础知识】python输出时出错,UnicodeEncodeError: 'gbk' codec can't encode character '\ue4bf.....
- ios 相册 同时选择多张图片
- php tp5 model 文件,tp5model的新增
- Js中的window.parent ,window.top,window.self详解
- C++ QT学习之路----VS2017+QT环境搭建
- linux dos2unix用法,Linux命令之dos2unix
- idea mvn命令
- Frequent values ——RMQ
- 编写解析绝对定向程序matlab,相对定向和绝对定向解析过程(全面).ppt
- 【云原生 | Kubernetes 实战】01、K8s-v1.25集群搭建和部署基于网页的 K8s 用户界面 Dashboard
- javascript中this指向问题(es5)
热门文章
- 蓝桥杯 基础练习 报时助手(c++)
- 浅谈如何防治ARP病毒
- PostgreSQL巧用ctid等价改写SQL
- oracle中create table as和insert into select语句
- android网页打印,安卓网页打印,h5页面打印,浏览器打印,js打印工具
- 公积金贷款与商业贷款的区别
- 0052管理系统中计算机应用教程,管理系统中计算机应用实践习题集.doc
- (NO.00004)iOS实现打砖块游戏(十一):quot;一闪一闪亮晶晶,我们都是小星星quot;
- 消息聊天系统MySQL表设计_聊天系统-数据库设计
- VC++:SetWindowPos