Personal Recommendation Using Deep Recurrent Neural Networks in NetEase读书笔记
一、文章综述
1、研究目的:实现网易考拉电商平台的商品高效实时个性化推荐。缩短用户与目标商品的距离,让用户点击最少的页面就可以得到想要的商品
2、研究背景:基于用户和基于物品的协同过滤(Collaborative Filtering,CF)是目前的个性化推荐主流算法,但CF是基于用户历史浏览记录生成个性化推荐,使用的是旧的数据,它无法实现依据当前浏览记录进行实时推荐。因而急需一种能够依据当前浏览记录实时生成个性化的推荐的解决方案。
3、实现方法:将前馈神经网络(FNN)与深度循环神经网络(DRNN)相结合,综合用户的历史浏览记录和当前浏览记录给用户推荐商品,并且用户每浏览一个页面都更新一次推荐。其中FNN模仿CF算法处理依据历史浏览记录给用户个性化推荐商品;DRNN处理当前用户的历史浏览记录给用户个性化推荐商品,且因DRNN处理的序列有限,当超过这个序列时将过去的状态总结为一个虚拟的历史状态,这个虚拟的历史状态将与当前的浏览记录一起作为输入用于给用户个性化推荐商品。
4、研究结果:在真实数据集上的实验结果表明:DRNN与FNN结合的方法优于CF的方法。
二、算法学习
1、Collaborative Filitering(CF,协同过滤算法)
1)基于用户的协同过滤算法:给用户推荐和他兴趣相投的其他用户喜欢的物品。
a、找到与目标用户兴趣相似的用户集合:
N(u) 为用户 u 喜欢的物品集合,N(v) 为用户 v 喜欢的物品集合,wuv为用户u和v之间的相似度.
b、 找到这个集合中用户喜欢的,且目标用户没有听说过的物品推荐给目标用户:
rvi 表示用户 v 对 i 的喜欢程度,集合 S(u, K) 表示与目标用户 u 最相似的 K 个用户的集合,p(u ,i )表示用户 u 对候选物品i感兴趣的程度。
2)基于物品的协同过滤算法:物品A和物品B具有很大相似度是因为喜欢A的用户大都也喜欢B
a、找到与目标物品相似的物品集合:
|N(i)|是喜欢物品i的用户数,wji表示物品j和物品i的相似度
b、根据物品的相似度和用户的历史行为给用户生成推荐列表:
Puj表示用户u对物品j的兴趣,N(u)表示用户喜欢的物品集合(i是该用户喜欢的某一个物品),S(i,K)表示和物品i最相似的K个物品集合(j是这个集合中的某一个物品),rui表示用户u对物品i的兴趣。
2、Recurrent Neural Network
1)RNN处理序列数据(sequential data). 序列数据的特点是序列数据前后之间是有很强的关联性的,前面出现的数据(比如词汇)对后面的数据有重大影响的, 甚至后面的数据对前的数据也是有重要影响的(双向循环神经网络)。
2)普通的神经网络
有一组预测数据:Data 0、1、2、3,使用同一个NN,预测Result 0基于Data0, 预测Result 1基于Data1……
因而普通的神经网络并不能了解数据间的关联
要怎么样才能让NN对数据间的关系进行分析呢?想想人类是如何处理的?最基本的方式就是记住之前的发生的事情
在分析Data0的时候,把分析结果存入记忆,当分析Data1的时候会产生新的记忆,但是新的记忆和老的记忆并没有关联,这时可以把老的记忆调用过来一起分析。如果继续分析更多的数据,NN就会把之前的记忆累积起来一起分析。
现在重复上述的过程,不过把NN换成RNN,每次RNN运算完以后都会产生当前状态的描述,用S来表示。
RNN先对X在 t 时刻进行分析,产生S(t)和Y(t),然后RNN对X在t+1时刻进行分析,产生S(t+1),不过此时Y(t+1)基于S(t)和S(t+1)产生。
所以通常看的RNN可以表达成右边这个样子。
RNN的形式不单单只有这样一种,它的结构多样
比如用于图片描述,只需要一个X来代替输入,用几句话描述图片的内容
如果用于分类的问题,比如说一个人说了一句话,这句话带有的感情色彩是积极的还是消极的,只需要最后一个时间点输出。
如果RNN中有多个隐藏层,就形成了深度循环神经网络(deep RNN)
Personal Recommendation Using Deep Recurrent Neural Networks in NetEase读书笔记的更多相关文章
- Hyperspectral Image Classification Using Similarity Measurements-Based Deep Recurrent Neural Networks
用RNN来做像素分类,输入是一系列相近的像素,长度人为指定为l,相近是利用像素相似度或是范围相似度得到的,计算个欧氏距离或是SAM. 数据是两个高光谱数据 1.Pavia University,Ref ...
- 循环神经网络(RNN, Recurrent Neural Networks)介绍(转载)
循环神经网络(RNN, Recurrent Neural Networks)介绍 这篇文章很多内容是参考:http://www.wildml.com/2015/09/recurrent-neur ...
- 循环神经网络(Recurrent Neural Networks, RNN)介绍
目录 1 什么是RNNs 2 RNNs能干什么 2.1 语言模型与文本生成Language Modeling and Generating Text 2.2 机器翻译Machine Translati ...
- 循环神经网络(RNN, Recurrent Neural Networks)介绍
原文地址: http://blog.csdn.net/heyongluoyao8/article/details/48636251# 循环神经网络(RNN, Recurrent Neural Netw ...
- 论文翻译:2020_Lightweight Online Noise Reduction on Embedded Devices using Hierarchical Recurrent Neural Networks
论文地址:基于分层递归神经网络的嵌入式设备轻量化在线降噪 引用格式:Schröter H, Rosenkranz T, Zobel P, et al. Lightweight Online Noise ...
- Paper Reading - Deep Captioning with Multimodal Recurrent Neural Networks ( m-RNN ) ( ICLR 2015 ) ★
Link of the Paper: https://arxiv.org/pdf/1412.6632.pdf Main Points: The authors propose a multimodal ...
- The Unreasonable Effectiveness of Recurrent Neural Networks (RNN)
http://karpathy.github.io/2015/05/21/rnn-effectiveness/ There’s something magical about Recurrent Ne ...
- Attention and Augmented Recurrent Neural Networks
Attention and Augmented Recurrent Neural Networks CHRIS OLAHGoogle Brain SHAN CARTERGoogle Brain Sep ...
- Pixel Recurrent Neural Networks翻译
Pixel Recurrent Neural Networks 目前主要在用的文档存放: https://www.yuque.com/lart/papers/prnn github存档: https: ...
随机推荐
- 转 Oracle最新PSU大搜罗
Quick Reference to Patch Numbers for Database/GI PSU, SPU(CPU), Bundle Patches and Patchsets (文档 ID ...
- 宏 函数 内联函数inline
带参宏有时候可以代替函数作用:优点直接替代,省去函数调用过程的开销:但缺点也是很明显:容易出错,系统不做检查非常容易出错. 改进方案:内联函数:既有带参宏的直接替代(拷贝)的优点,又有系统检查的优点. ...
- azkaban web ui界面出现异常诡异“丑”界面的问题解决(图文详解)
前期博客 启动azkaban时出现User xml file conf/azkaban-users.xml doesn't exist问题解决(图文详解) 问题详情 [hadoop@master co ...
- jmeter压测--从文本中读取参数
由于之前从数据库获取查询结果作为请求的入参(使用场景:测试一个接口并发处理数据的能力,并且每次请求传入的参数都要不同.),会一定程度上造成对数据库的压测,在没有完全搞清楚多线程之间参数的传递之前,我们 ...
- WPF学习12:基于MVVM Light 制作图形编辑工具(3)
本文是WPF学习11:基于MVVM Light 制作图形编辑工具(2)的后续 这一次的目标是完成 两个任务. 本节完成后的效果: 本文分为三个部分: 1.对之前代码不合理的地方重新设计. 2.图形可选 ...
- String的用法——构造方法
package cn.itcast_01; /* 字符串:就是多个字符组成的一串数据,也可以看成一个字符数组 *通过API,我们得知: A: 字符串字面值,如abc,也可以看做一个对象 B:字符串是常 ...
- 【opencv】imread CV_LOAD_IMAGE_GRAYSCALE
转灰度图的操作很多,但是opencv中的CV_LOAD_IMAGE_GRAYSCALE的具体操作为: gray = 0.299 * r + 0.587 * g + 0.114 * b 然后,小数点部分 ...
- (转)Spring+JDBC组合开发
http://blog.csdn.net/yerenyuan_pku/article/details/52882435 搭建和配置Spring与JDBC整合的环境 使用Spring+JDBC集成步骤如 ...
- (转)Spring的三种实例化Bean的方式
http://blog.csdn.net/yerenyuan_pku/article/details/52832793 Spring提供了三种实例化Bean的方式. 使用类构造器实例化. <be ...
- nvidia 的一些命令
直接在命令行使用 NVIDIA-smi会有问题 首先要确保电脑下了cuda. 然后打开cmd,使用cd命令进入: C:\Program Files\NVIDIA Corporation\NVSMI 然 ...