基于Word2Vec的神经网络协同推荐模型

2019-01-17 02:15张华伟
网络空间安全 2019年6期
关键词:卷积神经网络

张华伟

摘   要:在信息推荐系统中,传统的方法是通过对内容、行为去预测用户的兴趣点来实现信息推送。国内外研究实验结果表明,这种模型推荐性能较为显著,说明用户行为和内容是相关的。根据相关性的对称原理,文章提出了基于用户行为的Word2Vec协同推荐算法,通过神经网络模型来隐式地抽取商品和用户的相互关系并进行向量化表示,能够更好地计算商品和用户间的相似性,以达到提升模型的推荐效果和泛化能力。

关键词:Word2Vec;词向量;协同推荐;卷积神经网络

中图分类号:TP311.1          文献标识码:A

Abstract: In the information push system, the traditional method is to predict the user's interest points through content and behavior to achieve information push. The domestic and foreign research results show that the recommendation performance of this model is still remarkable, which also shows that user behavior and content are related. According to the symmetry principle of relativity, this paper proposes a Word2Vec collaborative recommendation algorithm based on user behavior, which implicitly extracts and vectorizes the relationship between goods and users through the neural network model, so that we can better calculate the similarity between goods and users, and improve the recommendation effect and generality of the model.

Key words: Word2Vec; word vector; collaborative recommendation; convolution neural network

1 引言

推荐系统是互联网时代的一种信息检索工具,自上世纪90年代起,人们便认识到了推荐系统的价值,经过了二十多年的积累和沉淀,推荐系统逐渐成为一门独立的学科在学术研究和业界应用中都取得了很多成果。

1994年明尼苏达大学推出第一个自动化推荐系统Group Lens[1],这是最早的自动化协同过滤推荐系统之一。1997年Resnick等人首次提出推荐系统(Recommender System,RS)一词,自此,推荐系统一词被广泛引用,并且推荐系统开始成为一个重要的研究领域。1998年亚马逊(Amazon.com)上线了基于物品的协同过滤算法。2003年亚马逊的Linden等人发表论文,公布了基于物品的协同过滤算法,据统计推荐系统的贡献率在20%~30%之间。1999年开始ACM每年召开的电子商务研讨会,推荐系统相关研究逐渐增多,2001年SIGR开始专门把推荐系统作为一个研讨主题,2007年在美国举行第一届ACM推荐系统大会。2016年,You Tube发表论文,将深度神经网络应用推荐系统中,以达到从大规模候选信息中计算出最优的推荐内容[2]。

2 相关技术

2.1 Word2Vec模型

Word2Vec[3]是由Mikolov提出的基于NNLM算法的词向量模型,其除了拥有很高的处理效率外,经训练出的词向量可以揭示特征词之间的语义关系。Word2Vec有两个重要模型[4],分别是CBOW模型(Continuous Bag-of-Words Model)和Skip-gram模型(Continuous Skip-gram Model)。

两个模型都包含三层,即输入层、投影层和输出层。CBOW模型如图1所示,它是在已知当前词wt的上下文wt-2,wt-1,wt+1,wt+2的前提下预测当前词wt,其优化的目标函数为:

后者恰恰相反,如图2所示,它是在已知当前词wt的前提下,预测其上下文wt-2,wt-1,wt+1,wt+2,其优化的目标函数为:

2.2 卷积神经网络

卷积神经网络(Convolutional Neural Network)[5]是一种前馈神经网络。它由卷积层、池化层和全连接层构成,每一层通过一个可导的激活函数将上一层的输出变为下一层的输入。

(1)卷积层

卷积层[6]是卷积神经网络的核心部分,通过卷积运算来获取输入数据的局部特征,然后将局部特征进行连接形成整体特征。假设有两个函数f(x)和g(x),其卷积运算(f×g)(n)是指,对f(x)和g(x)的乘积进行求和。

进行卷积运算时,过滤器在输入矩阵上移动,进行点积运算。数据特征进行卷积之后,要使用激活函数进行非线性变化,减少处理后的数据特征表达能力不足的问题,具体计算公式如下:

常用的激活函数f有sigmod或tanh等非线性函数。

(2)池化层

池化(Pooling)也称为欠采样或下采样,通过对卷积計算产生的特征进行划分不同的区域,并通过算法统计出该区域的池化值,于此可看出池化层主要用于特征降维和减小过拟合问题,同时提高模型的容错率。

(3)全连接层

经过卷积层和池化层多次交替结构后(具体的交替次数根据实际情况而定),最终汇聚到全连接层。全连接层和卷积层的区别是,在卷积层中的神经元只与前一层的局部连接,并通过权值共享方式减少连接的参数,而全连接层的神经元与前一层的所有激活单元连接。

3 推荐算法

3.1商品向量化表示

推荐算法通过用户的点击、评价、用户偏好和内容文本信息词嵌入向量。可以把用户已经访问过的项目看成一个N维向量,基于项目向量来计算条件概率。假设用户已经访问的项目向量为un,用户接下来会访问的K个项目的向量[7~9]为,因此,可以用激活函数来计算条件概率:

通过对目标函数最优化参数vc,vn使得上面条件概率最大,利用用户访问历史记录来预测用户接下来要看的商品,具体计算公式如下:

3.2 协同推荐模型

利用公式(6)可以构造推荐系统中的用户和商品向量,作为卷积神经网络的输入,本文设计了基于Word2Vec协同推荐算法(W-CNN)。

(1)将每个用户的历史行为序列Item映射为一个d维的词向量,生成一个n×d维的矩阵,其中n代表Item数,d代表每个Item映射的纬度。

(2)对于词向量,将每个映射的d维向量堆叠,利用CNN对堆叠结果的局部特征进行提取,采用多种不同大小的水平卷积核来学习多个Item之间的特征关系,得到输出向量Vector1。

(3)同时采用垂直卷积核对每次输入的所有Item的关系进行综合,得到输出向量Vector2。

(4)将向量Vector1和Vector2拼接并得到一个长向量,将该长向量输入到一个多层全联接的神经网络中,再采用负采样的方法进行输出优化,优化后的输出结果是分别与每个Item一一对应的输出概率值。

4 实验

4.1 实验环境与数据集

本文采用的硬件环境:32GB内存,Intel Core i7-7700处理器;GPU为Gigabyte GTX1080Ti Xtrem,实验平台基于TensorFlow和Python3.6语言,操作系统为Ubuntu18。

实验使用的数据为MovieLens数据集, MovieLens包含2000多万条评分数据、2.7万部电影数据、46.5万个电影类型标签数据及13.8万位用户数据。对数据集进行规整化处理的方法与步骤:

(1)以电影所属类型及符号“|”为依据进行分割;

(2)如果一个电影有多个类型,将分割成多个列表;

(3)将分割后得到的多个列表转换为一个数据合集;

(4)将数据合集的索引设置为电影ID。

4.2 实验结果分析

首先,通过设置不同的推荐个数(Top-N)来测试它对算法的影响。如图3所示,在MovieLens数据集上,本文提出的W-CNN算法的准确率在TOP-N中相比于其他算法,具有较好的性能,并且随着推荐个数的增加,算法性能处于平稳状态,甚至有轻微的提升。

如表1所示,本文提出的W-CNN算法在MovieLens数据集上的准确率、召回率和F1值相对于其它算法都有较为明显的提高。实验结果表明,本文算法基于Word2Vec和卷积神经网络,对用户和项目进行向量化,能从整体上提升算法性能,从而提升系统推荐质量。

5 结束语

本文对基于Word2Vec的卷积神经网络推荐模型做了较为全面的研究,首先利用Word2Vec对用户的偏好、浏览记录、用户评价进行建模,并生成偏好矩阵和用户主题矩阵向量,再利用该模型为用户进行推荐,最后根据用户的访问记录定期更新用户偏好。实验结果表明,本模型在MovieLens数据集上的准确率、召回率和F1值相对于其它算法都有较为明显的提高,并且随着推荐个数的增加,算法性能并处于平稳状态,甚至有轻微的提升。

参考文献

[1] 汪静.协同过滤推荐算法研究综述[J].中国新通信,2014(13):111-113.

[2] 黄立威,江碧涛,吕守业,等.基于深度学习的推荐系统研究综述[J].计算机学报,2018,41(7):191-219.

[3] 李晓,解辉,李立杰.基于Word2vec的句子语义相似度计算研究[J].计算机科学,2017,44(9):256260.

[4] 曾谁飞,张笑燕,杜晓峰,等.基于神经网络的文本表示模型新方法[J].通信学报,2017,38(4):8698.

[5] 张群,王红军,王伦文.词向量与 LDA 相融合的短文本分类方法[J].现代图书情报技术,2016,(12):27-35.

[6] 韩栋,王春华,肖敏.基于句子级学习改进CNN的短文本分类方法[J].计算机工程与设计,2019(01).

[7] 周庆平,谭长庚,王宏君,等.基于聚类改进的KNN文本分类算法[J].计算机应用研究,2016, 33(11):3374-3377+3382.

[8] 朱珠.卷积神经网络的多目标跟踪系统[J].网络空间安全,2018,9(11):68-71.

[9] 吳春琼,黄晓.基于猴群算法优化的神经网络在入侵检测中的应用研究[J].网络空间安全,2016,7(06):14-18.

猜你喜欢
卷积神经网络
基于深度神经网络的微表情识别
卷积神经网络中减少训练样本时间方法研究
卷积神经网络语言模型研究
基于卷积神经网络的车辆检索方法研究
基于卷积神经网络温室智能大棚监控系统的研究
基于深度卷积神经网络的物体识别算法
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
深度学习技术下的中文微博情感的分析与研究
基于卷积神经网络的树叶识别的算法的研究