论文笔记:Neural Collaborative Filtering 以及 Neural Collaborative Ranking

Neural Collaborative Filtering

简介

本论文提出了NCF(Neural Collaborative Filtering),使用神经网络来解决协同过滤的问题。文章论证了传统的矩阵分解(协同过滤的一种常见实现)可以看做是NCF模型的一个特例,并通过实验论证了NCF相对于之前模型的优越性。

关于矩阵分解,推荐阅读文章 推荐算法之矩阵分解

预备知识

一、显式反馈与隐式反馈

显式反馈一般指评分、评论等能直接反映用户对物品兴趣程度的反馈,隐式反馈是指浏览等行为,其无法准确反应用户是否喜欢该item(不过浏览时间的长短可以间接反映兴趣程度)

显式反馈数据中含有正式的负样本(例如差评),而使用隐式反馈数据时,对于没有观察到的交互,并不一定说明该用户对该商品不感兴趣,而可能是用户还没有观察到该物品。

博主注:自然语言的复杂导致评论并不能准确反映用户的兴趣程度,甚至可能连用户是喜欢还是讨厌都无法反映(考虑讽刺语)

二、pointwise loss 与 pairwise loss

假设我们现在有一个需要补全的用户-商品矩阵 Y Y Y,记用户为 u u u,物品为 i i i ,有交互的样本为正样本 y u i + y_{ui}^+ yui+, 负样本为 y u i − y_{ui}^- yui,负样本可以是除了正样本的所有用户-商品对,也可以从其中进行采样,采样时一种较好的做法是根据物品热度来采样(用户很可能已经见过热门的物品,没有交互说明不感兴趣)

pointwise loss 的思路是最小化模型的预测 y ^ u i \hat y_{ui} y^ui 与样本对的真实值 y u i y_{ui} yui 的误差,一般使用平方误差损失或负对数似然损失。本文认为对于0/1型的交互数据,平方误差损失不是很合理,因为其假设标签服从高斯分布,因此本文采用的是负对数似然损失。

pairwise loss 的思路是最大化模型对于正样本的预测 y ^ u i + \hat y_{ui}^+ y^ui+ 和 对负样本的预测 y ^ u i − \hat y_{ui}^- y^ui 的间隔,一般使用基于margin的loss函数

模型

论文笔记:Neural Collaborative Filtering 以及 Neural Collaborative Ranking_第1张图片

这里直接放上完整的模型图,虽然论文是先介绍两个部分的,但是这模型其实很简单,直接一起讲就好。

整个NCF分为GMF和MLP两个部分,分别对应上图的左右2个部分。对于用户和物品的id(one-hot向量),先进行embedding得到隐向量,注意对于2个子模型分别有一套embedding,参数是不共享的,左边的GMF输入是记为 p u G p_u^{G} puG q i G q_i^{G} qiG,右边的MLP输入是记为 p u M p_u^{M} puM q i M q_i^{M} qiM。下面公式的中括号表示拼接,⊙表示逐元素乘法, σ \sigma σ表示sigmoid激活。其他没什么好解释的。

论文笔记:Neural Collaborative Filtering 以及 Neural Collaborative Ranking_第2张图片

Neural Collaborative Ranking

这篇文章同样专注于隐式反馈,即用户-物品矩阵中的存在的交互都是正样本,缺失的交互可能是正样本也可能是负样本。NCF是采样部分没有交互记录的用户-样品对当做负样本,而NCR不同,认为用户对于有记录的物品的兴趣高于无记录的物品,而无记录的物品不一定是“讨厌”的物品。

记用户集合为 U U U,物品集合为 I I I I u + I_u^+ Iu+ 表示用户 u u u 有过交互记录的物品集合,我们可以构造正样本(三元组 ( u , i , j ) (u,i,j) (u,i,j))的集合:

在这里插入图片描述

交换 D S D_S DS 中样本的物品对的次序,就可以得到负样本集合:

在这里插入图片描述

即使用如下标签构造:

在这里插入图片描述

三元组 ( u , i , j ) (u,i,j) (u,i,j) 经过embedding后输入MLP,输出值与标签计算二元交叉熵

论文笔记:Neural Collaborative Filtering 以及 Neural Collaborative Ranking_第3张图片

论文笔记:Neural Collaborative Filtering 以及 Neural Collaborative Ranking_第4张图片

在排序阶段,对每个用户需要扫描 k 遍物品集,类似于冒泡排序,每一遍得到得分第 i 大的物品,具体过程如下:

论文笔记:Neural Collaborative Filtering 以及 Neural Collaborative Ranking_第5张图片

你可能感兴趣的:(Recommender,System,协同过滤,深度学习)