<<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交互矩阵表示成如下:
5679451-2e05b4be407a756d
image

有交互为1,没有交互或不知道是否有交互为0。

2.2知识库

将推荐系统中的item映射到知识库中,举个例子:一个电影通常被映射成一个entity描述这个电影。这些entities用术语“item entities”表示。

知识库中的信息可以分成三部分:结构化知识,文本知识,视觉知识。

①:结构化知识 表现为知识库中的实体以及实体的联系。比如:对于一个电影来说,实体就表示为电影和他的属性:科幻电影,演员等。关系就表示实体之间的联系:出演,评分等 ②:文本知识 通常给出book or movie的topic ③:视觉知识 视觉信息很多,本文通常使用书的封面或一个电影的海报作为视觉知识。

问题的明确表达: 本文的推荐问题是:给定有结构化知识,文本知识,视觉知识的知识库以及user的隐式反馈,用我们的方法产生一个用户感兴趣的ranked list。

5679451-464dd3d4fefeb447
image

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 矩阵桥接。如下图:
5679451-89dd87080a93db86
image

4.2 Textual Embedding

这部分显示介绍SDAE,然后再介绍 Bayesian SDAE。
5679451-84fd54743a9b7273
image

然后Bayesian SDAE就是让权重,偏置,输出层符合特定的正态分布。
5679451-634f608d8f92d35c
image

4.3 Visual Embedding

类似于4.2节的Bayesian SDAE的引入方法。 首先是SCAE
5679451-3d4a7feb1c5daaaf
image

Bayesian SCAE也是让参数符合特定的正态分布。
5679451-9e5ca1b5ee88a9f0
image

5、COLLABORATIVE JOINT LEARNING阶段

这一部分主要是为了把从知识库中提取的item embedding融合到collabrative filtering 中去。
5679451-2e8a16041e355094
image

其中η代表协同过滤中的物品的隐含向量。其他的三个分别代表从知识库中提取出来的特征。

然后使用pair-wise的形式:
5679451-0ead085028acfcad
image

这个式子的意思是,对于用户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为上面的两个数据集。

最后得到的数据集信息如下:

5679451-9c697dbaeead2b63
image

说明: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中的占比率

5679451-470c388444d13a44
image

一般来说,我们希望上述两个指标都是越高越好,然而没有这么好的事情,准确率和召回率是一对矛盾的度量,一个高时另一个就会偏低,当然如果两个都低,那肯定时哪点除了问题。

5679451-db3ecb911ea27608
image

实际多类别分类任务中,我们通常需要知道从top-1到top-N(N是所有测试样本个数)对应的precision和recall。显然随着我们选定的样本越来也多,recall一定会越来越高,而precision整体上会呈下降趋势。把recall当成横坐标,precision当成纵坐标,即可得到常用的precision-recall曲线。一个真实的P-R曲线如下:

5679451-a01c300b3cc063c7
image

计算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
5679451-9991f5f6a04ef9ef
image
5679451-87779f034588b398
image

②:相较CKE(S),CKE(T)、CKE(V)提升的效果没有CKE(S)好,不过也是可以beat掉baseline。

③:CKE(STV)效果最好。

paper总结: 2016年的文章,十分新颖的将side information融合到矩阵分解的协同过滤模型中,同时对于不同domain的特征使用不同的网络去提取特征。

相关推荐
程序员的必经之路! 【限时优惠】 现在下单,还享四重好礼: 1、教学课件免费下载 2、课程案例代码免费下载 3、专属VIP学员群免费答疑 4、下单还送800元编程大礼包 【超实用课程内容】  根据《2019-2020年中国开发者调查报告》显示,超83%的开发者都在使用MySQL数据库。使用量大同时,掌握MySQL早已是运维、DBA的必备技能,甚至部分IT开发岗位也要求对数据库使用和原理有深入的了解和掌握。 学习编程,你可能会犹豫选择 C++ 还是 Java;入门数据科学,你可能会纠结于选择 Python 还是 R;但无论如何, MySQL 都是 IT 从业人员不可或缺的技能!   套餐中一共包含2门MySQL数据库必学的核心课程(共98课时)   课程1:《MySQL数据库从入门到实战应用》   课程2:《高性能MySQL实战课》   【哪些人适合学习这门课程?】  1)平时只接触了语言基础,并未学习任何数据库知识的人;  2)对MySQL掌握程度薄弱的人,课程可以让你更好发挥MySQL最佳性能; 3)想修炼更好的MySQL内功,工作中遇到高并发场景可以游刃有余; 4)被面试官打破沙锅问到底的问题问到怀疑人生的应聘者。 【课程主要讲哪些内容?】 课程一:《MySQL数据库从入门到实战应用》 主要从基础篇,SQL语言篇、MySQL进阶篇三个角度展开讲解,帮助大家更加高效的管理MySQL数据库。 课程二:《高性能MySQL实战课》主要从高可用篇、MySQL8.0新特性篇,性能优化篇,面试篇四个角度展开讲解,帮助大家发挥MySQL的最佳性能的优化方法,掌握如何处理海量业务数据和高并发请求 【你能收获到什么?】  1.基础再提高,针对MySQL核心知识点学透,用对; 2.能力再提高,日常工作中的代码换新貌,不怕问题; 3.面试再加分,巴不得面试官打破沙锅问到底,竞争力MAX。 【课程如何观看?】  1、登录CSDN学院 APP 在我的课程中进行学习; 2、移动端:CSDN 学院APP(注意不是CSDN APP哦)  本课程为录播课,课程永久有效观看时长 【资料开放】 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化。  下载方式:电脑登录课程观看页面,点击右侧课件,可进行课程资料的打包下载。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页