论文笔记 | AAAI19(Oral) | DeepCF: A Unified Framework of Representation Learning and Matching Functio...

deepcf-title.jpg

论文地址:https://arxiv.org/abs/1901.04704

官方代码:https://github.com/familyld/DeepCF

一 为什么读这篇

来新东家这边做推荐召回层的相关工作,刘总提的召回层的粗排也希望能用模型的方式,同时提到了关键词Representation Learning和Matching Function Learning,google了一翻,找到这篇,还比较新,从题目上看,不仅照顾了表示学习,还考虑了匹配函数学习,而且是把两者统一到同一个框架中去,所以值得研究下作者是怎么做的。

二 截止阅读时这篇论文的引用次数

2019.6.12 0次。对于今年1月份才出的文章,就不苛求什么了。。

三 相关背景介绍

中了AAAI19,而且还是Oral。一作Zhi-Hong Deng(邓智鸿)貌似是中山大学的本科生,这个碉堡了。。怪不得搜不到什么信息。二作Ling Huang是个PHD妹子,也是中山大学的,产量挺高,有20多篇paper。三作Chang-Dong Wang(王昌栋)是中山大学的副教授,应该是他们老板了。最后一个作者从机构看感觉很突兀,因为前4个作者都是中山大学的,怎么最后突然冒出一个伊利诺伊大学芝加哥分校兼清华的了。仔细一查彻底碉堡,Philip S. Yu(俞士纶),清华数据科学研究院院长,拥有超过300项美国专利,在谷歌学术上的H-index高达138,跟Michael I. Jordan伯仲之间,是名列全球计算机科学领域高引作者前十的华人。。。也是《Top 10 algorithms in data mining》这篇引用高达4000多次的神文作者之一,得,有这样一个超级大牛肯为本科生的paper挂名,又有官方开源代码,质量应该有保证了。

四 关键词

DeepCF

Representation Learning

Matching Function Learning

五 论文的主要贡献

1 联合表示学习和匹配函数函数学习到同一个架构

六 详细解读

0 摘要

由于用户和item之间存在巨大的语义鸿沟,几乎不可能直接在它们初始的表示空间来匹配用户和item。为了解决这个问题,通常可分为基于表示学习的CF方法及基于匹配函数学习的CF方法。基于表示的CF方法试图将用户和item映射到一个共同的表示空间,该情况下,用户和item在空间中越相似则意味着越匹配。另一方面,基于匹配函数学习的CF方法试图直接学习复杂的匹配函数来映射user-item对的匹配分数。这两个方法分别有两个本质缺陷,例如,点积的表达能力有限,以及捕获user-item低秩关系的能力有限。本文提出的DeepCF(Deep Collaborative Filtering)就是用来克服上述两个缺陷的。

1 介绍

MF方法学习用户和item的低维密集表示,然后采用点积作为匹配函数来计算匹配分数。然而,原始MF假设初始表示空间和隐式空间之间的映射是线性的,这一点很难得到保证。为了更好地学习这两个空间之间复杂的映射,Xue等人提出的DMF(Deep Matrix Factorization)使用双路网络架构来代替在原始MF中使用的线性Embedding操作,然而匹配函数仍然用的是点积。

因为万能极限定理,DNN很适合学习复杂的匹配函数。例如He等人提出的NeuMF(Neural Collaborative Filtering)将用户Embedding和item Embedding作为MLP的输入来进行预测,该情况下,MLP用来替代点积,然而,如Beutel等人指出,MLP在捕获低秩关系时是非常低效的。

本文首先使用基于表示学习的和基于匹配函数学习的这两种CF方法来获取user-item对的不同表示。因为这两种类型的方法具有不同的优点并且能从不同的角度学习表示,因此可以通过连接它们学习到的表示来获取user-item对的更强和更健壮的联合表示。为了计算匹配分数,之后将此联合表示传给全连接层,以使得模型能够在特征上分配不同的权重。本文聚焦于隐式反馈数据。

本文主要贡献有3点

1 本文指出了基于表示学习和基于匹配函数学习合并后的协同过滤方法的重要性,并提出了DeepCF。该框架舍弃了传统的Deep+Shallow模式,仅采用深度模型来实现具有隐式反馈的协同过滤。

2 本文提出全新的模型命名为协同过滤网络(Collaborative Filtering Network) (CFNet),它是在DeepCF框架下基于原始MLP的,可以极大的扩展学习复杂匹配函数同时有效率的学习用户和item之间的低秩关系。

3 本文对4个现实世界的数据集进行了大量实验,以证明DeepCF的有效性和合理性。

2 相关工作

2.1 隐式数据的协同过滤

早期的模型有ALS和SVD++。后面的模型有BPR,VBPR。

2.2 基于表示学习的协同过滤

从06年的Funk-SVD开始,后续提出了各种基于MF的模型。尽管这些工作是通过引入时间,社交信息,文本描述等方法来提升MF,其本质仍然是将用户和item映射到同一空间。其后的DL模型有AutoRec,CDAE。DeepMF用双路径网络架构来分解评分矩阵并学习表示。

2.3 基于匹配函数学习的协同过滤

NeuMF是最近(2017)提出的用网络协同原始MF学习到的匹配函数来替代点积操作。为了抵消MLP捕获低秩关系的弱点,NeuMF用一个模型统一了MF和MLP。NNCF是NeuMF的变种,它采用用户和item的邻居作为输入。ConvNCF使用外积来替代NeuMF中的连接操作,以使模型更好的学习Embedding维度之间的成对相关性。除了NeuMF,其他许多工作也试图通过完全使用辅助数据来直接学习匹配函数,如Wide&Deep,DeepFM,NFM。

本文聚焦于纯协同过滤方法,而不使用辅助数据(这有可能是坑。。。),在这个条件下,仅拿NeuMF来做比较。

3 前置条件

3.1 如何定义问题

有M个用户,N个item,通过用户隐式反馈构建user-item交互举证\mathbf{Y} \in \mathbb{R}^{M \times N}。相比显式反馈,隐式反馈有两个问题。一是不像评分那样,不能精确地描述用户对item的喜爱程度。二是未观察到的交互并不意味着用户不限换item,很有可能是用户压根没有看到过。

对缺乏实际负反馈的隐式数据执行协同过滤也称为一类协同过滤(OCCF:One-Class Collaborative Filtering)问题。通常有两种处理办法,一种是将所有未观察到的交互视为弱的负实例,还有一种是从未观察到的交互中采样一些作为负实例。本文采用第二种方法。

本文将二分类问题通过概率转换为匹配分数预测问题。假设y_{u i}服从伯努利分布:
P\left(y_{u i}=k | p_{u i}\right)=\left\{\begin{array}{ll}{1-p_{u i},} & {k=0} \\ {p_{u i},} & {k=1}\end{array}\right. \\ =p_{u i}^{k}\left(1-p_{u i}\right)^{1-k}

3.2 如何学习模型

推荐系统中主要用point-wise loss和pair-wise loss这两种目标函数,本文主要用point-wise。

通过用\hat{y}_{u i}替代上式中的p_{u i},定义似然函数为:
\begin{aligned} L(\Theta) &=\prod_{(u, i) \in \mathcal{Y}^{+}\cup \mathcal{Y}^{-}} P\left(y_{u i} | \Theta\right) \\ &=\prod_{(u, i) \in \mathcal{Y}^{+}\cup \mathcal{Y}^{-}} \hat{y}_{u i}^{y_{u i}}\left(1-\hat{y}_{u i}\right)^{1-y_{u i}} \end{aligned}
其中\mathcal{Y}^{+}\mathbf{Y}中所有观察到的交互,\mathcal{Y}^{-}为采样的未观察到的交互。
\ell_{B C E}=-\sum_{(u, i) \in \mathcal{Y}+\cup \mathcal{Y}^{-}} y_{u i} \log \hat{y}_{u i}+\left(1-y_{u i}\right) \log \left(1-\hat{y}_{u i}\right)
本节扯了一大通,其实就是要引出交叉熵。。

4 提出的框架

4.1 常规处理

如图1所示。注意3个函数f, g, h。

deepcf-fig1.jpg

4.2 表示学习

本文仅使用没有辅助数据的隐式数据。用MLP来学习用户和item的隐式表示。与现有基于表示的CF方法不同,匹配函数定义如下:
\hat{y}_{u i}=\sigma\left(\mathbf{W}_{o u t}^{T}\left(\mathbf{p}_{u} \odot \mathbf{q}_{i}\right)\right)
通过用element-wise product和参数化的网络层,来替代点积或余弦相似度,本文模型仍然聚焦于捕获用户和item间的低秩关系,但是更有表现力,因为隐式维度的重要性可以是不同的,且映射可以是非线性的。

本文中通过公式5,6实现的模型称之为CFNet-rl。

4.3 匹配函数学习

本文采用MLP来学习匹配函数。将交互矩阵Y作为输入,而不是IDs(???)。匹配函数定义如下:
\begin{aligned} \mathbf{p}_{u} &=\mathbf{P}^{T} \boldsymbol{y}_{u *} \\ \mathbf{q}_{i} &=\mathbf{Q}^{T} \boldsymbol{y}_{* i} \\ \mathbf{a}_{0}=\left[\begin{array}{c}{\mathbf{p}_{u}} \\ {\mathbf{q}_{i}}\end{array}\right] \\ \mathbf{a}_{1} &=a\left(\mathbf{W}_{1}^{T} \mathbf{a}_{0}+\mathbf{b}_{1}\right) \\ & \ldots \cdots \\ \mathbf{a}_{Y} &=a\left(\mathbf{W}_{Y}^{T} \mathbf{a}_{Y-1}+\mathbf{b}_{Y}\right) \\ \hat{y}_{u i} &=\sigma\left(\mathbf{W}_{o u t}^{T} \mathbf{a}_{Y}\right) \end{aligned}
隐式表示\mathbf{p}_{u}\mathbf{q}_{i}通过简单的拼接操作连接起来。

本文中通过公式7实现的模型称之为CFNet-ml。

4.4 融合和学习

融合

最常见的一种融合策略是拼接学习到的表示来得到联合表示,然后输入全连接层。

对于CFNet-rl,公式6的匹配函数可以分为2步。模型首先计算用户隐因子和item隐因子的element-wise乘积,然后将其用不同权重相加。在第一步中获得的乘积向量在本文中称为预测向量(predictive vector)。

对于CFNet-ml,MLP的最后一层称之为预测向量(predictive vector)。

在这两种情况下,预测向量都可以视为user-item对的表示。因为两种类型的CF方法具有不同的优点并且是从不同的角度去学习预测向量,因此两个预测向量的拼接会得到user-item对的更强且更健壮的联合表示。更重要的是,随后的全连接层使模型能够为联合表示中的特征分配不同的权重。

定义\mathbf{a}_{Y}^{r l}\boldsymbol{a}_{\mathbf{Y}}^{m l}分别为两个预测向量,则融合模型的输出定义为:
\hat{y}_{u i}=\sigma\left(\mathbf{W}_{o u t}^{T}\left[\begin{array}{c}{\mathbf{a}_{\mathrm{Y}}^{r l}} \\ {\mathbf{a}_{\mathrm{Y}}^{m l}}\end{array}\right]\right)
通过上式,合并CFNet-rl和CFNet-ml,得到最终的模型CFNet,架构如图2所示

deepcf-fig2.jpg
学习

adam,batch_size=256,lr=0.001,负样本通过均匀采样得到。

预训练

因为CFNet由两部分组成,所以可以分别预训练CFNet-rl和CFNet-ml,然后用它们来初始化CFNet。

5 实验

5.1 实验设置

数据集
deepcf-table1.jpg
评估指标

用HR(Hit Ratio)和NDCG(Normalized Discounted Cumulative Gain)来评估排序性能。两种方法都截断到10个。HR衡量测试item是否出现在top10,NDCG衡量赋予更高分的top位置排序的排序质量。

5.2 比较结果

ItemPop

非个性化方法,用作baseline,item根据热度排序。

eALS

SOTA MF方法。

DMF

SOTA的基于表示学习的MF方法。

NeuMF

SOTA的基于匹配函数学习的MF方法。与本文提出的方法最相关,不同的是采用了类似wide&deep,DeepFM类似的深浅模式。此外,是将IDs作为输入,而CFNet用交互矩阵作为输入。

deepcf-table2.jpg

根据表2发现,数据越稀疏,提升越明显。通过对DMF和CFNet-rl的对比,用element-wise乘积和参数化网络层代替非参数的余弦相似度有明显的提升。

5.3 预训练的影响

deepcf-table3.jpg

5.4 超参数敏感度分析

负采样率
deepcf-fig3.jpg

采样一两个是不够的,采样越多越有帮助,最优采样比率在3-7之间,但是采样更多的负实例不仅需要更多的训练时间也降低了性能。

预测因子的数量

\boldsymbol{a}_{\mathbf{Y}}^{r l}\mathbf{a}_{\mathrm{Y}}^{m l}的维度。通常来说维度越高,效果越好。

deepcf-table4.jpg

6 总结及展望

未来还能干的事:

1 用辅助数据

2 除了element-wise乘积和拼接,也可以探索其他聚集方法

3 除了point-wise损失,也可以用pair-wise损失

七 小结

本文提的想法很直接,将表示学习和匹配函数学习结合起来,可能也有许多人想到过,但是不会或者没能做出来?另外整个行文风格感觉学生气还是很重,许多地方很啰嗦,一些基础概念反复讲,一些观点重复好多遍。还有就是在开头的介绍部分在无意义的地方疯狂的引用自己团队的paper啊。。有点疑问的是文中一直强调的基于匹配函数学习的方法捕获低秩关系的能力不行,但,这个真的很重要吗?仔细看网络图,无非就是因为多层MLP后初始的关系丢了,补救方法就是图2中直接用两个向量表示做predictive vector。本文提出的网络光看图感觉很常规,但结合论文内容仔细一看,发现这个网络的输入还是不太一样滴,还得改成User/Item rating这种。最后有个问题是图2左右两部分的latent factor到底是不是共用同一个,猜测应该不是,如果共用的话,该网络就更普通了。

素质四连

要解决什么问题

如何分别克服表示学习,匹配函数学习的缺点。

用了什么方法解决

将两者结合起来,共同使用。关键词是element-wise乘积,predictive vector。

效果如何

在4个不是很大的数据集上得到了比NeuMF还好的效果。

还存在什么问题

最大的质疑,没有用辅助数据,只用了行为数据来做方法的PK。还有就是速度上作者没提,这点也存疑。

算法背后的模式和原理

其实还是组合的思想。A和B各有自己的优缺点,那能不能组合起来进行互补。

八 补充

当协同过滤(Collaborative Filtering)遇上深度学习

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352

推荐阅读更多精彩内容