论文笔记:DeepCF
Abstract
推荐系统可以看作用户和物品的匹配问题,不过user以及item两者的语义空间差异太大,直接匹配不太符合实际。主流的改进CF的方法有两类:基于表示学习的CF方法以及基于函数学习的表示方法。基于表示学习的CF模型将user和item转换到一个共通的语义空间来匹配。基于函数学习的CF尝试直接学习一个复杂的函数来对user和item进行匹配。
Introduction
DMF(Deep Matrix Factorization)用两个神经网络结构来替代线性的朴素MF中的embedding过程将user和item映射到一个共同的较低的语义空间。然而再评分预测问题上,MF方法依旧需要使用点积操作把latent factor线性的组合起来,对模型的表达是一种限制。NeuMF建立于(NCF模型)将user以及item的embedding作为MLP的输入,使用MLP来替代传统CF中的点积操作。MLP is very inefficient in catching low-rank relations,如果单纯的使用MLP来对评分进行预测,网络的学习会变得困难,这也是为什么NeuCF模型需要CF的结构来结合MLP学习。NeuCF的结构图如下所示:

GMF部分是MF的扩展,用一层网络结构来学习user以及item的线性关系,MLP部分学习的是user以及item的非线性关系部分,两者结合能够有一个更好的效果。
DeeCF将基于表示的CF以及基于函数学习的CF结合起来。DeepCF主要的贡献如下:
(1)提出了一个结合表示学习和函数学习的DeepCF框架
(2)在DeepCF的框架下提出了基于朴素MLP的CFNet
(3)通过在实际生活中的大量实验验证了CFNet的有效性
Related Work
(1)隐式反馈数据集上的CF模型。基本假设,用户对其产生过行为我物品偏好值大于没有产生过行为的物品。
(2)基于表示学习的CF模型。这些模型的主要想法仍然是将用户和项目映射到一个可以直接比较的公共表示空间。基于表示的学习可以融合不同的数据源(比如一些辅助的文本信息,视频数据),但是基于表示的学习避免不了在评分预测问题上的点积操作。
(3)基于匹配函数的CF模型。NeuCF是一个代表,NeuCF使用MF来弥补MLP表示低纬联系的能力(简单理解为线性的表示)。基于匹配函数的CF模型需要关注的是the ability to learn low-rank relations
Preliminaries
(1)问题描述:我们用$Y\in \Re^{m{\times}n}$表示user-item的交互矩阵,当$y_{ui}=1$的时候表示用户$u$对物品$i$有过行为;当$y_{ui}=0$的时候表示用户$u$对物品$i$没有有过行为。隐式反馈主要的问题在于当$y_{ui}=1$我们不知道用户对该物品有多喜欢,当$y_{ui}=0$我们也不确定用户喜欢该物品且$y_{ui}=0$的情况巨多。论文采用负采样技术从未观测数据($y_{ui}=0$)中获取负样本。对于显性反馈上的推荐我们可以转换为计算交互矩阵的缺失值问题可以转换为评分预测问题。隐性数据的离散化以及二值性使得其不能使用直接效仿显性反馈上的推荐问题解决方法。为了解决这个问题,文章假设$y_{ui}$服从伯努利分布:

$p_{ui}$表示$y_{ui}$等于1的概率。这样处理交互矩阵Y,我们边可以将隐性数据的推荐问题转化为概率预测问题。
(2)模型的学习:根据(1)中的问题假设,用$\hat{y}_{ui}$来替换$p_{ui}$,则Y对应的似然函数如下:

其中$y^+$对应有观测的数据,$y^-$对应未观测数据。MLE处理之后得到的损失函数如下所示:

The Proposed Framework
基于表示学习的CF以及匹配函数学习的方法概念图如下所示:

表示学习部分:DeepCF使用MLP作为表示函数,流程如下:

$W_x,b_x,a_x$对应的是矩阵权重,偏置向量以及第x层网络的激活值(激活函数为ReLU)。上述部分成为CFNet-rl
匹配函数学习:基于匹配函数学习的CF模型希望item以及user的特征向量是低维的特征向量,高维度的向量对于不易于匹配函数的学习,这也是这类方法采用linear embedding layer获取latent representations的主要原因。文章使用MLP来学习特征匹配函数。流程如下所示:

这里$P,Q$是linear embedding layers的参数矩阵。上述部分成为CFNet-ml
Fusion and Learning
DeepCF主要结构如下所示:

后记:补充一下两种评估方法:NDCG,Hit Ratio(HR)
Hit Ratio(HR)
在top-K推荐中,HR是一种常用的衡量召回率的指标,其计算公式如下:

Normalized Discounted Cummulative Gain(NDCG)



NDCG解释来源于:http://sofasofa.io/forum_main_post.php?postid=1002561
论文笔记:DeepCF的更多相关文章
- Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)
Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文, ...
- 论文笔记之:Visual Tracking with Fully Convolutional Networks
论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015 CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...
- Deep Learning论文笔记之(八)Deep Learning最新综述
Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...
- Twitter 新一代流处理利器——Heron 论文笔记之Heron架构
Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...
- Deep Learning论文笔记之(六)Multi-Stage多级架构分析
Deep Learning论文笔记之(六)Multi-Stage多级架构分析 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些 ...
- Multimodal —— 看图说话(Image Caption)任务的论文笔记(一)评价指标和NIC模型
看图说话(Image Caption)任务是结合CV和NLP两个领域的一种比较综合的任务,Image Caption模型的输入是一幅图像,输出是对该幅图像进行描述的一段文字.这项任务要求模型可以识别图 ...
- 论文笔记(1):Deep Learning.
论文笔记1:Deep Learning 2015年,深度学习三位大牛(Yann LeCun,Yoshua Bengio & Geoffrey Hinton),合作在Nature ...
- 论文笔记(2):A fast learning algorithm for deep belief nets.
论文笔记(2):A fast learning algorithm for deep belief nets. 这几天继续学习一篇论文,Hinton的A Fast Learning Algorithm ...
- 论文笔记:Towards Diverse and Natural Image Descriptions via a Conditional GAN
论文笔记:Towards Diverse and Natural Image Descriptions via a Conditional GAN ICCV 2017 Paper: http://op ...
- 【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior
[论文笔记]Malware Detection with Deep Neural Network Using Process Behavior 论文基本信息 会议: IEEE(2016 IEEE 40 ...
随机推荐
- Python运行语法错误:IndentationError: unindent does not match any outer indentation level
python脚本没有对齐.新的Python语法,是不支持的代码对齐中,混用TAB和空格的.
- zabbix监控ESXI主机
ESXI6.0默认SSH关闭的,打开SSH的方法如下图: SSH打开后,主机会有警报,关闭警报的方法如下图 esxcli system snmp set --communities publi ...
- oracle 使用length()函数需要注意的坑!
1.情景展示 筛选出指定字段字符长度既不等于18也不等于15的数据. 2.原因分析 第一步:按字符串度进行分组统计: 第二步:筛选数据. 你会发现,只将length=17统计了出来,长度不存在的数 ...
- Android开发:文本控件详解——TextView(二)文字跑马灯效果实现
一.需要使用的属性: 1.android:ellipsize 作用:若文字过长,控制该控件如何显示. 对于同样的文字“Android开发:文本控件详解——TextView(二)文字跑马灯效果实现”,不 ...
- 二叉树 排序二叉树-可以通过中序遍历得到排序的数据 二叉排序树时间复杂度O(logn),
二叉树是一种非常重要的数据结构,它同时具有数组和链表各自的特点:它可以像数组一样快速查找,也可以像链表一样快速添加.但是他也有自己的缺点:删除操作复杂. 虽然二叉排序树的最坏效率是O(n),但它支持动 ...
- [BUAA软工]Beta阶段测试报告
Beta阶段测试报告 Bug发现与报告 BUG 出现原因 解决方案 将shell加上编辑器UI以后,两边显示的文件不同步 两边的根目录不一致 修改编辑器获取根目录的函数,使其与shell的/home目 ...
- jetty demo实例启动
Jetty是一个提供HHTP服务器.HTTP客户端和javax.servlet容器的开源项目.Jetty和tomcat相比,是轻量级服务器,支持热拔插,可扩展性大tomcat集成了很多功能,个性化瘦身 ...
- 面试突击(七)——JVM如何加载Java字节码信息的?
声明:本文图片均来自网络,我只是进行了选择,利用一图胜千言的力量来帮助自己快速的回忆相关的知识点 1:先看一下Java类文件的转换过程,如下所示,Java字节码文件是通过类加载子系统来放入JVM的内存 ...
- systemctl start docker失败,提示start request repeated too quickly for docker.service
情景说明 本来服务器docker服务运行的很好,但客户重启了服务器-于是服务有些问题,遂进入到服务器再次启动docker及服务.不料提示上面的错误-- 解决办法 尝试1 Google了一圈,发现说法很 ...
- invalid argument (errno: 22)
socket通信示例中,当accept客户端时,经常报这个错误. 并且是第一次没有问题,第二次或后面几次都会出现如下问题, 错误码为22, 错误描述为invalid argument. 问题解决如下: ...