一、文章综述

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读书笔记的更多相关文章

  1. Hyperspectral Image Classification Using Similarity Measurements-Based Deep Recurrent Neural Networks

    用RNN来做像素分类,输入是一系列相近的像素,长度人为指定为l,相近是利用像素相似度或是范围相似度得到的,计算个欧氏距离或是SAM. 数据是两个高光谱数据 1.Pavia University,Ref ...

  2. 循环神经网络(RNN, Recurrent Neural Networks)介绍(转载)

    循环神经网络(RNN, Recurrent Neural Networks)介绍    这篇文章很多内容是参考:http://www.wildml.com/2015/09/recurrent-neur ...

  3. 循环神经网络(Recurrent Neural Networks, RNN)介绍

    目录 1 什么是RNNs 2 RNNs能干什么 2.1 语言模型与文本生成Language Modeling and Generating Text 2.2 机器翻译Machine Translati ...

  4. 循环神经网络(RNN, Recurrent Neural Networks)介绍

    原文地址: http://blog.csdn.net/heyongluoyao8/article/details/48636251# 循环神经网络(RNN, Recurrent Neural Netw ...

  5. 论文翻译: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 ...

  6. 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 ...

  7. The Unreasonable Effectiveness of Recurrent Neural Networks (RNN)

    http://karpathy.github.io/2015/05/21/rnn-effectiveness/ There’s something magical about Recurrent Ne ...

  8. Attention and Augmented Recurrent Neural Networks

    Attention and Augmented Recurrent Neural Networks CHRIS OLAHGoogle Brain SHAN CARTERGoogle Brain Sep ...

  9. Pixel Recurrent Neural Networks翻译

    Pixel Recurrent Neural Networks 目前主要在用的文档存放: https://www.yuque.com/lart/papers/prnn github存档: https: ...

随机推荐

  1. 129 Sum Root to Leaf Numbers 求根叶数字总和

    给定一个只包含 0-9 数字的二叉树,每个根到叶的路径可以代表一个数字.例如,从根到叶路径 1->2->3则代表数字 123.查找所有根到叶数字的总和.例如,    1   / \  2  ...

  2. 128 Longest Consecutive Sequence 一个无序整数数组中找到最长连续序列

    给定一个未排序的整数数组,找出最长连续序列的长度.例如,给出 [100, 4, 200, 1, 3, 2],这个最长的连续序列是 [1, 2, 3, 4].返回所求长度: 4.要求你的算法复杂度为 O ...

  3. (022)[工具软件]图片浏览 JPEGView

    JPEGView是一款小巧绿色快速的图像浏览工具,并且支持全屏或窗口模式.主页地址: https://sourceforge.net/projects/jpegview/JPEGView软件小巧,但功 ...

  4. sql子查询的例子

    1.单行子查询        select ename,deptno,sal        from emp        where deptno=(select deptno from dept ...

  5. 伟景行 citymaker 从入门到精通(2)——工程图层树加载

    工程树是指explorer左边这棵树 本例子实现了图层树加载,点击节点切换可视状态 树控件使用easyui的树 html部分 onCheck:treeProjectTreeOnCheck是指树节点的o ...

  6. http://blog.chinaunix.net/uid-9845710-id-1996675.html snmpd配置

    http://blog.chinaunix.net/uid-9845710-id-1996675.html http://lihuipeng.blog.51cto.com/3064864/643960 ...

  7. linux系统中文件的几种类型

    Linux系统是以文件的形式来进行管理的.Linux文件类型常见的有:普通文件.目录.字符设备文件.块设备文件.符号链接文件等,如果想了解这方面知识的弟兄,就进来了解了解. Linux系统不同于win ...

  8. mongodb多条件查询总结

    根据两字段乘积过滤查询分页数据 db.cron.aggregate([{$project:{_id:,AppID:,result:{$add:["$endlottery",&quo ...

  9. 聊聊JavaScript和Scala的表达式 Expression

    我们先看下面这段简单的JavaScript代码. 我在第10行调用了函数f,其中传入的第二个和第三个参数都是一个逗号表达式. 函数f的实现,会检查这两个参数的类型,如果是函数,则执行函数调用,再打印其 ...

  10. 原创:PHP编译安装配置参数说明

    --prefix=/application/php-5.5.32 \          #指定PHP的安装路径 --with-mysql=/application/mysql/ \          ...