论文笔记: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 ...
随机推荐
- 年轻人的第一个自定义 Spring Boot Starter!
陆陆续续,零零散散,栈长已经写了几十篇 Spring Boot 系列文章了,其中有介绍到 Spring Boot Starters 启动器,使用的.介绍的都是第三方的 Starters ,那如何开发一 ...
- 记住:永远不要在 MySQL 中使用 UTF-8
阅读本文大概需要 3.6 分钟. 译文:http://suo.im/4zBuvs 来自:http://ju.outofmemory.cn 最近我遇到了一个bug,我试着通过Rails在以“utf8”编 ...
- [Beta阶段]第十次Scrum Meeting
Scrum Meeting博客目录 [Beta阶段]第十次Scrum Meeting 基本信息 名称 时间 地点 时长 第十次Scrum Meeting 19/05/16 大运村寝室6楼 30min ...
- 【技术博客】Pytorch代码生成
开发组在开发过程中,都不可避免地遇到了一些困难或问题,但都最终想出办法克服了.我们认为这样的经验是有必要记录下来的,因此就有了[技术博客]. Pytorch代码生成经验文档 关于模型代码的生成,主要思 ...
- [Beta]Scrum Meeting#2
github 本次会议项目由PM召开,时间为5月7日晚上10点30分 时长20分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客整理文档 撰写博客 swoip 模块松耦合,文件结构调整为改进界 ...
- 咏南跨平台中间件REST API
主旨 1)为了中间件支持跨操作系统部署,客户端支持跨操作系统.跨设备.跨开发语言,特制订本REST API规约. 2)所有接口均支持HTTP GET\POST调用. 3)调用示例为DELPHI代码,其 ...
- mysql 导出查询结果
show variables like '%secure%'; 看看导出位置 SELECT * FROM tb WHERE sn = '1' LIMIT 1,10into outfile '/var/ ...
- Android外接USB扫码枪
公司的设备以前接入的都是串口的扫码头,优点是直接通过串口读取流里面的数据就OK了,缺点是你需要知道每一款扫码器的型号以获取波特率及Android设备的串口地址.因为现在usb扫码器越来越方便且即插即用 ...
- macOS 10.15 Catalina xxx.app已损坏,无法打开,你应该将它移到废纸篓解决方法
原文连接:https://www.macwk.com/article/mac-catalina-1015-file-damage 更新macOS 10.15 Catalina后,很多在10.14上可以 ...
- java8学习
1.Function函数 public static void main(String[] args) { TestController t = new TestController(); new T ...