APP下载

基于LSTM的在线商城商品推荐研究

2018-04-24王屯屯

现代计算机 2018年8期
关键词:奶粉神经元物品

王屯屯

(四川大学计算机学院,成都 610065)

0 引言

随着信息化的快速发展,我们已经从信息匮乏时代转化到了信息过载的阶段,推荐系统是为信息提供方和信息消费者进行友好对接的一个有效方式。推荐系统帮助商家将自己的产品推销给合适的用户,同时也可以帮助用户找到自己需要的商品。信息化的快速发展虽然给我们带来了信息过载问题,但同时也为我们提供了大量的数据,这使得深度学习模型再次进入人们的视野。本文我们将利用深度学习模型为用户进行商品推荐。

我们已经熟知的、比较成熟的推荐算法有很多,例如基于协同过滤的推荐算法[1]、基于内容的推荐算法[2]、基于模型的推荐算法[3]等,利用这些推荐算法都能够给用户推荐商品。但这些经典的推荐算法在根据用户历史购买行为进行推荐时,无法考虑用户购买商品的顺序,也就是说,在一般情况下,用户购买了一个奶粉,推荐系统认为用户会同时奶粉和玩具,于是会为用户推荐各种儿童玩具。然而实际情况是,该用户可能几年后才会购买玩具,现在没有购买需求,不会购买推荐系统为其推荐的玩具商品,导致推荐系统准确率不高。

1 算法实现

假设某个用户两年前开始购买婴幼儿奶粉,我们认为该用户家庭中添加了一位宝宝。一年前开始购买适合一岁婴儿穿的衣服,现在对其进行商品推荐。从用户的历史购物行为分析,发现该用户家庭中的宝宝已经两岁了,我们需要为其推荐适合两岁婴儿的商品,例如衣服、奶粉、玩具等。传统的推荐系统虽然也会为其推荐衣服和奶粉,但是我们提出的模型会更加准确地为其推荐适合两岁婴儿穿的衣服和奶粉;虽然其他推荐系统也会为用户推荐玩具,但是我们的推荐算法会在合适的时间进行推荐。

本文提出的模型(LSTMBaseRec),主要利用长短期记忆人工神经网络[4](Long-Short Term Memory,LSTM)进行推荐。LSTM模型是一种改进的时间循环神经网络(Recurrent Neural Network,RNN),可以学习时间序列长短期依赖信息,由于神经网络包含时间记忆单元,比较适合于对时间序列中的间隔和延迟事件进行处理和预测。

LSTM提出四层门控制的概念,解决了长期依赖问题,分别为输入门、忘记门、更新门和输出门。如图1所示。

输入门主要包含两部分,第一部分通过sigmoid函数决定需要输入值,第二部分会通过tanh函数创建一个候选值向量并加入到状态Ct中,计算公式如下:

图1 LSTM四层门控制

忘记门会读取上一层的输入ht-1和当前时间点的输入xt,输出数值ft并赋值给当前神经元的状态Ct-1中,计算公式如下:

更新门主要用来对旧神经元的状态进行更新,将Ct-1改为 Ct,公式如下:

输出门主要分为两部分,首先利用sigmoid函数决定神经元输出哪个部分,接着通过tanh函数对当前状态进行处理,并将其与第一步的输出相乘。计算公式如下:

经过上面的四个步骤,可以有效地对时序信息进行处理和预测。

本文采取准确性评价指标对模型进行评估,主要评价指标包括:平均准确率(MAP)和召回率(Recall)。其定义如下:

其中U表示系统中所有用户的集合,hit(u)表示推荐列表中,用户u购买的商品数量,H(u)表示用户u购买的所有商品数量。

2 对比模型

基于物品的协同过滤算法(ItemCF)给用户推荐与其之前喜欢的物品相似的物品,通过分析用户的行为记录计算物品之间的相似度,该算法认为物品A和物品B具有较高的相似性使用为两者经常同时出现在同一个用户的购买列表中。

协同过滤算法存在很明显的问题:数据稀疏性和冷启动问题。针对该问题,可以使用物品的内容信息解决这两个问题。物品的内容可以通过向量空间模型表示,该模型会把物品表示成一个关键词向量。基于物品内容的推荐算法(ContentBaseKNN),通过计算物品间的相似度,将与用户历史购买商品最相似的前K个商品推荐给用户。

基于模型的推荐算法(ModelBaseRank),通过特征工程阶段,提取尽可能多的特征对用户和商品进行画像描述,对于某个用户,按照潜在购买概率对所有商品进行排序,将前K个商品推荐给用户。

3 实验

实验数据来自于2017年京东大数据比赛公开的数据集中。该数据包括用户3月至5月的行为动作历史记录。通过数据预处理以及特征工程后,对于每条训练数据,均包含200个特征,如果当前用户对购买了当前商品,将类别设置为1,否则设置为0。实验采取离线实验方法,将数据分为训练集,测试集以及验证集,训练集用来对模型进行训练,通过模型在测试集的性能来对模型的参数进行设置,最后将所有的对比模型在验证集上运行,对其性能进行比较。在将数据代入模型前,对其进行Softmax归一化操作。

基于Keras深度学习框架,搭建三层RNN神经网络模型,每一层的神经网络结构中均包含LSTM神经元。输入层的神经元个数需要与特征数量保持一致,所以输入层的神经元为200个。输出层只需要输出类别信息,这里只有两类,所以输出层的输出单元为2。需要重点考虑的是隐藏层的神经元个数,这个可以通过实验获取。

设置每个神经元的激活函数为常用的sigmoid函数,模型的误差函数设置为均分误差MSE。根据这个误差函数,模型不断地进行迭代,直到神经元之间的连接权值保持不变或者基本不变。根据MAP定义公式和Recall定义公式,可以得到如下实验对比结果如图2、图3所示。

由图2和图3可知,本文提出的基于LSTM的推荐算法能够更加准确的为用户进行商品推荐。用户购买下一个商品与之前的购买行为有着非常紧密的联系,但是其他三个模型没有考虑到这一点。本文提出的模型,可以隐形地对用户历史购买行为进行时序建模,能够更加准确地对用户行为进行分析,因此具有较高的准确性。

图2 模型的平均准确率

图3 模型的召回率

4 结语

本文提出了基于LSTM的商品推荐模型,基于大数据比赛公开的数据集进行了实验对比,根据MAP和Recall等准确性评价指标的实验结果,证明了该模型能够更好地对用户进行商品推荐。该算法具备一定的扩展性,不仅可以用于在线商城的商品推荐,同样适用于视频网站的视频推荐以及音乐网站的音乐推荐。

参考文献:

[1]JB Schafer,F Dan,J.Collaborative Filtering Recommender Systems[J].Web,2007,22(1):291-324.

[2]江周峰,杨俊,鄂海红.结合社会化标签的基于内容的推荐算法[J].威者软件,2015(1):1-5.

[3]李鹏飞,吴为民.基于混合模型推荐算法的优化[J].计算机科学,2014,41(2):68-71.

[4]K Greff,RK Srivastava,J Koutnik.LSTM:A Search Space Odyssey.IEEE Transactions on Neural Networks&Learning Systems,2017,28(10):2222-2232.

猜你喜欢

奶粉神经元物品
称物品
“双十一”,你抢到了想要的物品吗?
AI讲座:神经网络的空间对应
谁动了凡·高的物品
仿生芯片可再现生物神经元行为
奶粉危机
留学生郑睿:我是奶粉“小买手”
这个神经元负责改变我们的习惯
研究人员精确定位控制饮酒的神经元
奶粉放冰箱对吗