论文笔记: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 ...
随机推荐
- nginx rewrite规则说明
格式:rewrite regex replacement [flag] * rewrite配置可以在server.location以及if配置段内生效 * regex是用于匹配URI的正则表达式,其不 ...
- linux 系统添加jdk环境变量
export JAVA_HOME=/usr/local/jdk1..0_79 export JAVA_BIN=$JAVA_HOME/bin export PATH=$PATH:$JAVA_BIN ex ...
- Linux常用命令简述--dirname与basename
dirname 获取父目录 basename 显示最后的目录名或文件名 .dirname [root@liang ~]# dirname /etc/httpd/ /etc [root@liang ~] ...
- sysmain服务怎么启动 & Win7 SuperFetch无法启动
在控制面板/管理工具/服务中,只需找到Superfetch这个服务,双击,然后将其启动类型改为自动,并点击启动按钮并确定即可. Superfetch无法启动,系统找不到指定档案 ms-windows ...
- JS 将数字字符串数组转为 数字数组 (互换)
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(String); //结果: ['1', '2', '3', '4', '5', '6', '7', '8 ...
- R语言中的管道操作符 %>% %T>% %$% %<>%
magrittr 包的官网 https://magrittr.tidyverse.org/ magrittr 包的 github 主页 https://github.com/tidyverse/mag ...
- DICOM worklist工作原理
一.关于Worklist 在RIS与PACS的系统集成中.Wordlist的连接为其主要工作之一.Wordlist成像设备工作列表,它是DICOM协议中众多服务类别中的一个.它的功能是实现设备操作台与 ...
- Spring Cloud Ribbon 源码分析---负载均衡算法
上一篇分析了Ribbon如何发送出去一个自带负载均衡效果的HTTP请求,本节就重点分析各个算法都是如何实现. 负载均衡整体是从IRule进去的: public interface IRule{ /* ...
- The Snowflake Elastic Data Warehouse
开篇说的是,Shared-nothing当前已经是主流的架构,需要用自身的local disks来存储数据,Tables被水平划分到各个partitions上 这种架构,比较适合star-schema ...
- <c:forEach>, <c:forTokens> 标签
这些标签封装了Java中的for,while,do-while循环. 相比而言,<c:forEach>标签是更加通用的标签,因为它迭代一个集合中的对象. <c:forTokens&g ...