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: ...
随机推荐
- php中三元运算符用法
代码如下: <?php $handle=fopen("../good/html/1.txt", "r"); while(!feof($handle)) / ...
- Linux常用命令——tac、bc
1.从文件尾到文件头一页一页的显示内容 tac xxx.log |more //tac命令与cat命令相反,从文件尾开始读文件 2.shell下科学计算工具bc echo "scale=5; ...
- P3717 [AHOI2017初中组]cover
题目背景 以下为不影响题意的简化版题目. 题目描述 一个n*n的网格图上有m个探测器,每个探测器有个探测半径r,问这n*n个点中有多少个点能被探测到. 输入输出格式 输入格式: 第一行3个整数n,m, ...
- c#内存管理,垃圾回收和资源释放
<1>关于虚拟内存的概念 Windows使用一个虚拟寻址系统,该系统把程序可用的内存地址映射到硬件内存中的实际地址上去,这些任务完全由windows后台管理,其实际结果是32位处理机上的每 ...
- intellij idea 调试 lua程序, 突然崩溃或者xmx不够的情况
将内存各方面的数值都改大一点.都什么时代了,默认数值还这么低... -server-Xms256m-Xmx1024m-XX:ReservedCodeCacheSize=240m-XX:+UseConc ...
- 成为Android高手必须掌握的8项基本要求
[1] Android操作系统概述 1. Android系统架构. 2. Android利用设计理念. 3. Android 开源知识. 4. Android 参考网站与权威信息.[2] Androi ...
- 程序员必须知道FTP命令
程序员必须知道FTP命令 文件传输软件的使用格式为:FTP<FTP地址>,若连 接成功,系统将提示用户输入 ...
- qt5.5.1+vs2010发送邮件
最近用到了这个功能,用于验证登陆~为此在网上找了好久,发现这方面的问答并不多!唯独这篇的解答实在.原文传送 1.首先选定自己的发送方的邮箱,无论是163还是qq邮箱等,首先都得开通SMTP服务:以16 ...
- react基础语法(三)组件的创建和复合组件
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 移动端超级好用的reset.css(只做参考哦具体以你们实际项目需求为准)
html { color: #333; /*规定主色调,依据业务场景(非必须)*/ background: #F6F6F6; /*规定主背景,依据业务场景(非必须)*/ overflow-y: aut ...