旧物归档 [gitpage=>csdn]
这是我早期写的论文观后感,观点稚嫩且不准确,权当我瞎说。
Wu S, Ren W, Yu C, et al. Personal recommendation using deep recurrent neural networks in NetEase[C]// IEEE, International Conference on Data Engineering. IEEE, 2016:1218-1229.
主题
传统协同过滤CF(Collaborative Filtering)推荐系统,仅分析用户已购买的商品,从中产生荐购单,且这些推荐受多数用户欢迎(CF的原理所致),故对于单一用户无法做出个性化推荐。
本文通过收集当前会话(指用户进入商场页面到离开的过程)中的浏览历史与用户购买记录建立实时推荐系统。其目的在于,缩短用户
“商场主页->商品详情页1->商品详情页2->……->商品详情页n->付款页”
这一过程(减少浏览页面数量,比如从详情页1到详情页2后,在详情页2中就看到系统给用户推荐的商品是用户想要买的,因此该用户就直接付款,不再继续浏览其他页面),使商品推荐会随页面的改变而改变,进而更有针对性。
a. 创新点
- 针对庞大数据使用levelDB、MongoDB存储。
- 用户行为会实时影响系统的推荐结果。
- 使用前馈网络(FNN)收集用户信息与购买历史,模拟CF算法,以此提高DRNN的预测准确度。
- 模型代码自动生成,使用遗传算法优化模型,自动确定网络参数(节点数、层数、神经元等)。
- 引入a history state,解决传统RNN的输入节点一旦满了后需要删除旧节点而失去历史信息的问题。
核心算法
用户行为被分为:页面请求(对应潜在购买的商品的特征,如请求的页面是男装,则代表用户希望购买男装,因此推荐系统应罗列男装)、购买记录。
页面请求输入DRNN,输出购买位于该页面下会购买商品的概率,其中,页面请求会按时间先后顺序以30分钟时长打包成会话记录(session document),会话记录会按M件为一批分批输入DRNN。
购买记录输入FNN,使用FNN模拟CF模型,网络的激励函数选用ReLU[2]。
综合DRNN与FNN的结果得到每个商品在某页面(state)下的购买可能性,其中f为损失函数softmax。根据该可能性排序,得出推荐列表。
神经网络DRNN、FNN模型优化:
使用随机梯度下降法(Stochastic Gradient Descent,SGD)向后投影(BackProjection)调整权重与偏差。
下面是算法各步的详细说明。
a. 建立DRNN
会话记录输入DRNN,会话记录中的页面请求记录会被向量化,成为向量V。输入层的输入节点接收一系列向量V,即每一个节点接收一个向量,每个节点对应在该时间点下用户访问的页面。输入节点随访问页面的增多而增多(如果将DRNN展开看)。其中,输入节点数量为有限值,不同于传统RNN因节点数量的限制而抛弃历史记录(old states),本文的DRNN使用历史节点(the history state)保存历史记录。
历史节点作为DRNN在过去浏览记录的修正,其具体方法是:将需要剔除的那部分页面请求记录向量Vold按(浏览时长/浏览总时间)之比加权求和。
节点数的选取、网络隐含层层数、每层神经元数使用遗传算法自动生成。
b. 建立FNN模拟CF
FNN的输入量是用户购买商品记录矩阵,该矩阵应为
Item1 | Item2 | … | ItemN |
---|---|---|---|
User1 | |||
User2 | |||
… | |||
UserN |
每个用户对应一个输入节点,输出所有用户购买商品的可能性。
节点数的选取、网络隐含层层数、每层神经元数使用遗传算法自动生成。
c. 遗传算法优化模型
输入神经网络的设置参数(学习率、层数、神经元数等),随后产生种群,分为奇偶两个种群,产生三个随机数以确定在阈值pm、pc下奇偶种群的动作(变异还是交叉繁殖)。
适应度计算式为 fit=accuracy+1/(1+loss)
感悟
这篇论文是网易写的,文中的推荐系统是运用在考拉海购网站上,其实用性不言而喻。
论文阅读难度较上篇更难,涉及的理论更多。由于我并不了解DRNN,所以通过网络查阅了相关资料,或许会影响我对这篇文章的理解。RNN、FNN使用的参数优化的方法是向后反馈,相关资料[1]
有“BackProjection”与“BackPropagation”这两种解释,我不确定这两个是否就是同一概念。
本文只提供了优化DRNN模型所用到的遗传算法的大致思路,遗传算法中的交叉繁殖与个体变异的方法并没有给出,且FNN是如何优化的也未提及,按论文算法,FNN中输入的应为训练集中所有用户购买过的商品作为特征向量,但这个向量的大小该是多少论文并没说,这些应该就是整个推荐系统技术的核心。
最后,可以看出,推荐系统需要变得更加“智能”,更加“个性化”,第一篇论文是在打分规则上下功夫,而这篇论文则是用深度学习神经网络来改进推荐系统,从根本上抛弃了CF模型,其研究更为高深。
[1] 循环神经网络(RNN, Recurrent Neural Networks)介绍
http://blog.csdn.net/heyongluoyao8/article/details/48636251
[2] ReLU(Rectified Linear Units)激活函数
http://www.cnblogs.com/neopenx/p/4453161.html