黄若孜作者

深度协同过滤:用神经网络取代内积建模

本期推荐的论文笔记来自 PaperWeekly 社区用户 @spider。尽管现在很多工作已经把深度学习运用到了推荐的任务当中,但大多只是利用深度学习给一些辅助信息建模,在表示 user 与item 之间的交互时,仍是使用矩阵分解等用内积来建模

本文是新加坡国立大学发表于 WWW '17 的工作,作者提出用多层神经网络给 user 和 item 进行交互建模,并提出了一种基于神经网络协同过滤通用框架 NCF

关于作者:黄若孜,复旦大学软件学院硕士生,研究方向为推荐系统

■ 论文 | Neural Collaborative Filtering

■ 链接 | https://www.paperweekly.site/papers/635

■ 源码 | http://t.cn/ROuhFZP

论文动机

许多利用深度学习来做推荐的工作 focus 在辅助信息的提取上,而对协同过滤最关键的元素——user 和 item 之间的交互作用,这些工作仍然利用的是矩阵分解模型,利用 latent feature 的内积进行推荐,而内积的描述能力是有限的。

Neural Collaborative Ffiltering(NCF)是一种用神经网络取代这个内积部分的技术,以学到 latent feature 之间任意的函数关系。

模型

MF 利用特征向量 pu、qi 的内积评估 u 对 i 的偏好:

由于将 user 和 item 映射到了同样的特征空间,然后使用内积也就是两个向量的 cosine 来衡量相似性;同样的,我们也可以用内积来衡量两个用户的相似性。

使用 jaccard 系数(集合 A 与 B 的交集与并集的比值作为集合的相似度)来作为用户之间真实的相似程度,那么下面评分矩阵用户 123 之间 S23>S12>S13,在 latent space 中的几何关系如右图所示,加入用户 4 时,S41>S43>S42,于是我们让用户 4 的特征靠近 1,然而无论怎么放,都无法使用户 3 比用户 2 更接近用户 4。

这就是使用内积描述相似度的局限性,我们可以增大 K 来解决这个问题,但是存在过拟合的风险。

下图是 NCF 的框架,user 和 item 的 id 先经过 embedding 层得到一个特征,然后输入到 MLP 中得到打分结果,用 pointwise 的目标函数进行训练:

其中 user 和 item 的 embedding 结果可以通过逐元素乘积的形式结合,然后作为 MLP 的输入,称为 GMF 模型。

这种情况下 NCF 可以包含 MF(即使用 identity 的激活函数,同时将隐藏层全部置为 1,可起到内积的效果),如果使用非线性的激活函数,那么比起线性 MF,这个设置使模型具有更强的表达能力。

此外一个常规的思路就是讲两个 vector 拼接起来作为 MLP 的输入,称为 MLP 模型。本文也提出了一个将这两种方法融合起来的模型,称为 NeuMF

由于本模型使用的是隐式反馈(1/0),如果使用平方误差函数:

那么实际上相当于认为预测的 yui 是以 f(u,i|θ) 为均值的高斯分布,而这样的假设显然是不适合二值的隐式反馈。所以我们可以将待遇测的值看做是一个分类问题,即用户和项目是否有交互。

使用逻辑回归进行训练,得到一个二元交叉熵损失,其中 Y- 可以是全部或者部分的负样本(也会就是负采样方法):

实验

本文在 MovieLens,Pinterest 两个数据集上进行了验证,使用了 HR@10,NDCG@10 作为指标,使用了 itempop,itemknn,bpr,eALS 作为 baseline:

评价

在 MF 出来之后,一大批用各种方法融合属性、上下文的基于 MF 的方法冒了出来,这篇 NCF 的方法提出来之后,在最近比较火的 cross domain 等 task 上,已经出了一批基于 NCF 的方法,可以说在深度学习浪潮下,NCF 是一代新的基础模型(之一)了。

PaperWeekly
PaperWeekly

推荐、解读、讨论和报道人工智能前沿论文成果的学术平台。

入门激活函数目标函数协同过滤深度神经网络深度学习
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

逻辑回归技术

逻辑回归(英语:Logistic regression 或logit regression),即逻辑模型(英语:Logit model,也译作“评定模型”、“分类评定模型”)是离散选择法模型之一,属于多重变量分析范畴,是社会学、生物统计学、临床、数量心理学、计量经济学、市场营销等统计实证分析的常用方法。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

交叉熵技术

交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小

高斯分布技术

正态分布是一个非常常见的连续概率分布。由于中心极限定理(Central Limit Theorem)的广泛应用,正态分布在统计学上非常重要。中心极限定理表明,由一组独立同分布,并且具有有限的数学期望和方差的随机变量X1,X2,X3,...Xn构成的平均随机变量Y近似的服从正态分布当n趋近于无穷。另外众多物理计量是由许多独立随机过程的和构成,因而往往也具有正态分布。

协同过滤技术

协同过滤(英语:Collaborative Filtering),简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。协同过滤又可分为评比(rating)或者群体过滤(social filtering)。其后成为电子商务当中很重要的一环,即根据某顾客以往的购买行为以及从具有相似购买行为的顾客群的购买行为去推荐这个顾客其“可能喜欢的品项”,也就是借由社区的喜好提供个人化的信息、商品等的推荐服务。除了推荐之外,近年来也发展出数学运算让系统自动计算喜好的强弱进而去芜存菁使得过滤的内容更有依据,也许不是百分之百完全准确,但由于加入了强弱的评比让这个概念的应用更为广泛,除了电子商务之外尚有信息检索领域、网络个人影音柜、个人书架等的应用等。

推荐系统技术

推荐系统(RS)主要是指应用协同智能(collaborative intelligence)做推荐的技术。推荐系统的两大主流类型是基于内容的推荐系统和协同过滤(Collaborative Filtering)。另外还有基于知识的推荐系统(包括基于本体和基于案例的推荐系统)是一类特殊的推荐系统,这类系统更加注重知识表征和推理。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

目标函数技术

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

推荐文章
暂无评论
暂无评论~