«上一篇 下一篇»
  计算机工程  2021, Vol. 47 Issue (7): 74-80  DOI: 10.19678/j.issn.1000-3428.0058110
0

引用本文  

陈恩华, 方宝富. 基于物品嵌入向量的会话型推荐算法[J]. 计算机工程, 2021, 47(7), 74-80. DOI: 10.19678/j.issn.1000-3428.0058110.
CHEN Enhua, FANG Baofu. Session-Based Recommendation Algorithm with Item2Vec[J]. Computer Engineering, 2021, 47(7), 74-80. DOI: 10.19678/j.issn.1000-3428.0058110.

基金项目

安徽省自然科学基金(1708085MF146)

作者简介

陈恩华(1989-), 男, 硕士研究生, 主研方向为推荐系统;
方宝富, 副教授、博士

文章历史

收稿日期:2020-04-17
修回日期:2020-06-09
基于物品嵌入向量的会话型推荐算法
陈恩华 , 方宝富     
合肥工业大学 计算机与信息学院, 合肥 230601
摘要:传统基于会话的推荐算法主要利用点击物品的时序信息进行建模,忽略了挖掘物品的特征信息,且未利用物品之间的相似性。为提升推荐效果,提出一种新的基于会话的推荐算法SR-I2V。通过Skip-gram模型和层次softmax优化方法学习物品的嵌入向量,由意图递进公式对已发生的物品点击提取出意图特征向量,并根据特征向量相似度计算出每个候选项的推荐分数。实验结果表明,与I2I、PoP和S-POP等传统基于会话的推荐算法相比,该算法在Yoochoose和Diginetica两个数据集上的推荐召回率分别提高了至少4.67个百分点和3.97个百分点,平均倒数排名指标也有相应提高。
关键词推荐算法    循环神经网络    嵌入向量    层次softmax    意图递进    
Session-Based Recommendation Algorithm with Item2Vec
CHEN Enhua , FANG Baofu     
School of Computer and Information, Hefei University of Technology, Hefei 230601, China
Abstract: The existing session-based recommendation algorithms mainly leverage the temporal information of the items while ignoring their feature information and the similarity between the items.In order to improve the recommendation effect, this paper proposes a novel session-based recommendation algorithm named Session-based Recommendation with Item2Vec(SR-I2V).The algorithm learns the embedding vectors of the items through the skip-gram model and the hierarchical softmax optimization method.Then it uses the intent progression formula to extract the intent feature vectors from the click events that have occurred, and calculates the recommendation score of each candidate item based on the similarity between the feature vectors.Experimental results show that compared with traditional session-based recommendation algorithms such as I2I, PoP, and S-POP, the proposed algorithm increases the recommendation recall rate by at least 4.67 percentage points on Yoochoose and 3.97 percentage points on Diginetica.In addition, it improves the mean reciprocal rank.
Key words: recommendation algorithm    Recurrent Neural Network(RNN)    embedding vector    hierarchical softmax    intent progression    

开放科学(资源服务)标志码(OSID):

0 概述

随着计算机和互联网技术的发展, 网络信息量呈爆炸式增长, 人类社会已经进入到一个信息过载的时代。如何使信息接收者花费少量的时间和精力, 即能够从庞大的信息库中获取所需的信息是一个急需解决的问题。传统解决信息过载的方式一般有两种:一种是信息分类, 如hao123等信息分类网站, 虽然信息已经成功分类, 但还是会花费用户大量的时间去查找;另一种方式是搜索引擎, 在大部分情况下搜索引擎能帮助用户找到需要的信息, 然而有时用户不知自己需要什么或者无法准确地选取关键词进行搜索。因此, 如何在节省用户时间的同时提高效率是一个重要的问题。除用户主动在系统查找商品外, 系统也应该了解用户的偏好, 从而使系统精准匹配用户的需求以达到节省时间与提高效率的目的。考虑到现实生活中用户的丰富需求, 研究人员提出了推荐系统技术。2006年, Netflix组织竞赛极大地促进了推荐系统技术的发展。近年来, 越来越多的领域, 如电商[1]、电影[2]、音乐[3]等广泛地应用了推荐系统技术。

推荐系统根据不同的场景采用不同的推荐算法, 常用的推荐算法有协同过滤推荐算法[4-5]、基于内容的推荐算法、基于模型的推荐算法[2, 6]等。其中协同过滤推荐算法与基于内容的推荐算法需要采集用户信息从而对用户进行画像。这表明当系统采集不到用户信息时, 这些方法不能很好地应用于推荐系统。基于会话的推荐算法利用用户的会话信息可以很好地解决这一问题, 即用户发起的事件序列信息。例如在B2C网站中, 该信息就是用户对感兴趣的物品的一系列点击事件序列。在大数据环境下, 根据用户的点击序列可以发现用户会话中的item(item的信息含义比较广泛, 比如资讯、电影、商品等, 下文统称为item)有相似或者相关的关系。

通过使用word2vec中的Skip-gram模型和层次softmax优化方法训练会话数据。根据当前会话中已经发生的item序列, 针对每个item分配合适的权值, 对已经发生的会话事件序列计算出一个特征向量, 计算与该特征向量最相似的向量, 并根据相似度大小筛选出排在前20的item进行推荐, 如果用户点击了其中的一个, 则说明本次推荐是召回成功的。

本文提出一种基于item嵌入向量相似性的推荐算法SR-I2V, 该算法通过训练出每个item的嵌入向量, 使相似或者相关的item在嵌入空间中具有较近的距离。同时利用意图递进公式, 依据会话数据中已发生的用户点击行为计算出用户当前意图特征向量。

1 相关工作 1.1 基于会话的推荐

基于会话的推荐是基于隐式反馈的推荐系统的典型应用, 其中没有明确的偏好(如评分、评论等), 只有一些正反馈信息(如点击)可用。正反馈信息通常采用序列数据的形式, 这些数据是通过系统在一段时间内追踪用户行为获得的。

推荐系统中的许多工作都集中在模型上, 这些模型需要清晰地采集用户信息才能工作。在这种情况下, 矩阵分解方法[7-8]和邻域模型[4]在推荐算法中占主导地位, 并且在工业界得到广泛使用。项目间推荐方法[5, 9]不仅是基于会话的推荐采用的主要方法之一, 而且是用户信息缺失问题的自然解决方案, 项目与项目之间相似性矩阵是从采集的会话数据中预先计算的, 即在会话中经常一起点击的项目被认为是最相似的。在会话期间简单地使用该相似性矩阵来向用户推荐当前点击的最相似的项目。这种方法虽然比较简单, 已被证明是有效的并被广泛使用, 但是此方法仅考虑用户的最后一次点击行为, 实际上忽略了前面的点击信息。

文献[1, 10]提出基于马尔科夫决策过程(MDP)的方法用于基于会话的推荐, 该方法根据用户的前一个行为来预测用户的下一个行为, 并将推荐生成视为顺序优化问题, 此方法采用了马尔科夫决策过程作为解决方案。通过对用户的个性化概率转换矩阵进行因子分解, FPMC[1]对每两个相邻点击之间的顺序行为进行建模, 并为每个序列提供更准确的预测。但是基于马尔科夫链模型的一个主要问题是, 当试图获取用户选择的所有可能序列时, 状态空间很快变得难以管理。

近年来, 一些基于神经网络的语言预测模型[11]被提出。在众多语言模型中, 循环神经网络(RNN)是对句子建模最成功的模型[12], 并已广泛应用于各种自然语言处理任务, 如机器翻译[13]、机器人对话[14]和图片说明[15]。RNN已成功应用于众多应用中, 例如顺序点击预测[16]、位置预测[17-18]、下一个添加购物篮的推荐[19]等。文献[6]将RNN应用于基于会话的推荐, 并实现了对传统方法的改进, 其提出的模型利用并行小批量会话训练, 并采用基于排名的损失函数来学习模型。

文献[20]提出利用神经网络学习item嵌入从而进行推荐, Airbnb学习房源的嵌入向量, 然后根据会话信息向客户推荐房源, 微软应用item向量嵌入向用户推荐音乐[3]

1.2 word2vec模型

文献[21]提出word2vec模型, 该神经网络模型根据上下文的语境来推断出每个词的词向量, 使得经常出现在一起的词的向量距离很接近, 还有一种情况是如果两个词在上下文中可以被相互替代, 那么这两个词的向量距离也会非常接近。比如, 在上下文环境中, 比较“喜欢”和“崇拜”两个词语, 会发现两个词语的向量距离非常接近。用户在电子商务网站买东西时, 产生的点击行为短时间内不会有很大的跳跃性, 后面感兴趣的item会和前面点击的item类似或者相关, 即整个点击序列中的item往往在某些特征有很大的相似性。如上文所述, 每个用户的点击序列类似于句子的组成形式, 点击序列中的每个item相似于句子中的词语。将数十万、甚至数百万的点击序列用word2vec模型学习, 能够得到一些向量距离很相近的item。

word2vec模型的理论基础是距离较近的单词相似度更高, 进行向量嵌入后它们的向量更近。word2vec常用的训练方法有CBOW(Continuous Bag-of-Words Model)和Skip-gram两种, CBOW方法是根据前面和后面各n个词推出中心词, 相反, Skip-gram方法是用中心词分别推出前面和后面n个词。实验结果表明, Skip-gram比CBOW能取得更好的效果。这两种模型对应负采样和层次softmax两种优化算法。

2 基于SR-I2V的会话型推荐算法

本文提出了SR-I2V推荐算法, 该算法将Skip-gram模型和层次softmax应用于仅有会话数据可利用的推荐场景中, 本节主要阐述SR-I2V算法的核心框架。

图 1所示, SR-I2V使用Skip-gram模型和层次softmax优化方法求出每个item的嵌入向量, 根据用户意图递进计算出意图特征向量, 得出与意图特征向量距离最相近的20个item进行推荐。

Download:
图 1 SR-I2V推荐算法框架 Fig. 1 Framework of SR-I2V recommendation algorithm

基于会话的推荐是指仅利用用户与系统交互的点击序列数据, 从而预测用户下一步可能会发生点击事件的item。假设系统从N个用户那里获得了|S|个点击会话集S, 其中每个会话$ s=({i}_{1}, {i}_{2}, \dots , {i}_{n})\in S $定义为被用户点击的n个item的不间断序列。每当两次相邻的用户item点击之间的时间间隔超过30 min时, 可以认为用户发生兴趣漂移[20], 将后面的item序列重定义为新的会话。针对训练数据集, 使用SR-I2V算法训练出每个item的d维嵌入向量$ {\mathit{v}}_{i}\in {\mathbb{R}}^{d} $, 训练之后达到的效果是类似或者相关的item在嵌入空间中的距离相对较近。也就是说, 该算法的目的是通过最大化Skip-gram模型[21]中的目标函数L来学习item的嵌入向量。目标函数L定义如下所示:

$ L=\sum\limits_{s\in S}\sum\limits_{{i}_{k}\in s}\left(\sum\limits_{-m\ge j\ge m, k\ne 0}\mathrm{l}{\mathrm{g}}_{}P\left({i}_{k+j}\right|{i}_{k})\right) $ (1)

其中:超参数m定义为点击item的上下文(相邻item)的长度。

使用softmax函数定义点击iI的上下文邻域iO的概率$ P\left({i}_{O}\right|{i}_{I}) $, 如下所示:

$ P\left({i}_{O}\right|{i}_{I})=\frac{\mathrm{e}\mathrm{x}\mathrm{p}\left({\mathit{\boldsymbol{{v}}}}_{{i}_{O}}^{\mathrm{\text{'}}\mathrm{T}}{\mathit{\boldsymbol{{v}}}}_{{i}_{I}}\right)}{\sum\limits_{l=1}^{\left|V\right|}\mathrm{e}\mathrm{x}\mathrm{p}\left({\mathit{\boldsymbol{{v}}}}_{{i}_{l}}^{\mathrm{\text{'}}\mathrm{T}}{\mathit{\boldsymbol{{v}}}}_{{i}_{I}}\right)} $ (2)

其中:$ \mathit{\boldsymbol{{v}}} $$ \mathit{\boldsymbol{{v}}}\text{'} $是item的输入和输出向量表示形式;V是数据集中的唯一itemID的集合。

从式(1)和式(2)可以看出, 本文方法对item点击序列的时间上下文进行了建模, 其中具有相似性上下文(即在点击会话中相似的item)的item将具有相似的向量表示形式。

式(1)中目标函数的梯度∇L所需的时间与item总数|V|成正比, 对于大量的item, 例如数十万个item, 在短时间内计算出∇L是一项不可完成的任务。作为替代方案, 本文使用层次softmax方法可以大大降低计算复杂度。

层次softmax的主要优势在于不需要评估神经网络中的|V|个节点以获得概率分布, 而是仅需要评估大约lb|V|个节点。具体操作是先统计所有会话数据中的item频率, 根据item频率构造一棵哈夫曼树。树中的每个叶子节点代表一个item, 而非叶子节点对应着一些中间向量。每个非叶子节点都是一个基于逻辑回归的二分类器, 其将给定的输入向量分为正负两类。对于某一输入Xi, 根据逻辑回归可知, 其被分为正类的概率为:

$ \sigma ({\mathit {\boldsymbol{{X}}}}_{i}^{\mathrm{T}}\mathit {\boldsymbol{{\theta }}})=\frac{1}{1-{\mathrm{e}}^{-{\mathit{X}}_{i}^{\mathrm{T}}\mathit{\theta }}} $ (3)

其中:θ为分类器所包含的中间向量。在哈夫曼树中, 将左子树编码为1, 表示该节点分类器输出为负类, 相反, 右子树编码为0, 表示该节点分类器输出为正类。

在构成的哈夫曼树中, 从iI预测出iO会对应唯一一条从根节点(root)到表示iO叶子节点的路径path(iO), 路径长度为L(iO)。n(iO, j)表示path(iO)上的第j个节点, 容易得出n(iO, 1)=root, 以及n(iO, L(iO))=iO。当x为true时, $ ⟦x⟧=1 $, 反之, $ ⟦x⟧=-1 $。ch(n)表示节点n的右子树。结合式(3), 层次softmax对P(iO|iI)的定义如下:

$ \begin{array}{l}P\left({i}_{O}\right|{i}_{I})=\sigma \left(⟦n({i}_{O}\mathrm{ }, j+1)==ch\left(n\right({i}_{O}\mathrm{ }, j\left)\right)⟧\times \right.\\ \left.{{\mathit{\boldsymbol{{v}'}}}_{n({i}_{O}, j)}}^{\mathrm{T}}{\mathit{\boldsymbol{{v}}}}_{{i}_{I}}\right)\end{array} $ (4)

为简化式(4)的表示, 并且在不引入歧义的情况下进行了以下简化:

$ ⟦\cdot ⟧=⟦n({i}_{O}, j+1)==\mathrm{c}\mathrm{h}\left(n\right({i}_{O}, j\left)\right)⟧ $ (5)
$ {\mathit{\boldsymbol{{v'}}}}_{j}={\mathit{\boldsymbol{{v'}}}}_{n({i}_{O}, j)} $ (6)

由式(4)得到对数似然目标函数:

$ T({\mathit{\boldsymbol{{v'}}}}_{j}, {\mathit{\boldsymbol{{v}}}}_{{i}_{I}})=\sum\limits_{j=1}^{L\left({i}_{o}\right)-1}\mathrm{l}{\mathrm{g}}_{}\sigma \left(⟦\cdot ⟧{{\mathit{\boldsymbol{{v'}}}}_{j}}^{\mathrm{T}}{\mathit{\boldsymbol{{v}}}}_{{i}_{I}}\right) $ (7)

根据随机梯度上升法得出哈夫曼树中内部节点n(iO, j)的向量表示和输入层iI的向量表示, 可以最大化对数似然目标函数式(7)。

用户在与系统交互的过程中, 通常情况下自己的意图越往后会越清晰, 本文定义这种现象为意图递进。靠后的item点击事件会对下一个被点击的item的预测产生更重要的影响。在用户已经和系统发生交互的n个item中, 第k个item对将要发生的下一个item产生影响的意图权值是$ {\alpha }^{i}\lambda $, 其中, $ \alpha $是意图递进参数, $ \lambda $由等式$ \lambda \sum\limits_{r=1}^{n}{\alpha }^{r}=1 $确定。综合已发生的n个item的向量值, 定义意图特征向量为:

$ {\boldsymbol{\mathit{f}}}_{\mathrm {{f}}\mathrm{e}\mathrm{a}\mathrm{t}\mathrm{u}\mathrm{r}\mathrm{e}}=\sum\limits_{k=1}^{n}{\mathit{\boldsymbol{{v}}}}_{{i}_{k}}\times ({\alpha }^{k}\lambda ) $ (8)

最后求出与意图特征向量在嵌入空间距离最近的20个item向量, 按照相似度大小排名进行推荐。基于SR-I2V的会话型推荐算法的伪代码如下:

算法1    基于物品嵌入向量的会话型推荐算法

输入  会话数据sessions

输出  推荐结果items

1.itemSeqs = preProcess(sessions)

//对会话数据进行预处理, 生成item序列

2.for itemseq ∈ itemSeqs //遍历每个item序列

3.for i ∈ itemseq //遍历item序列中的item

4.for w∈context(i) do //获取当前itemi的上下文itemw

5.maxmizingObject()

6.$ \mathrm{v}\mathrm{e}\mathrm{c}\left(\mathrm{w}\right)\leftarrow \mathrm{a}\mathrm{r}\mathrm{g}\mathrm{m}\mathrm{a}\mathrm{x}\sum\limits_{\mathrm{j}=1}^{\mathrm{L}\left({\mathrm{i}}_{o}\right)-1}\mathrm{l}{\mathrm{g}}_{}\sigma \left(⟦\cdot ⟧{{\mathrm{v}}_{\mathrm{j}}^{\mathrm{\text{'}}}}^{\mathrm{T}}{\mathrm{v}}_{{\mathrm{i}}_{\mathrm{I}}}\right) $

7.end for

8.end for

9.end for

10.feature = interestIncrease(vec(w1), …, vec(wn))

//根据意图递进公式, 利用item序列前面的n个

item:w1, w2, …, wn计算出用户的意图特征

11.return items = nearestNeighborTopn(feature)

3 实验结果与分析 3.1 数据集

为了验证本文所提算法的有效性, 本文在实验过程中选用两个具有代表性的公共数据集评估SR-I2V算法, 第1个数据集是Yoochoose, 该数据集来自RecSys Challenge 2015, 它是从一个B2C电子商务网站采集的, 采集的是6个月内用户在电子商务网站上的点击流, 该数据集只保留了点击序列。在预处理过程中, 为了与GRU4REC等算法进行公平的对比, 将数据集中点击序列长度小于2的会话或者item出现次数少于5的事件过滤掉。实验过程中用最后一天的会话数据作为测试集评估算法, 将测试集中不存在于训练集中的item过滤掉, 并且将测试集中长度小于2的会话过滤掉。

第2个数据集Diginetica来自于CIKM Cup2016, 是从一个真实电子商务网站收集用户的行为数据的公共数据集, 包括5个月内网站访问者的行为数据, 实验中只利用其中的点击数据。在数据预处理过程中, 该数据集与Yoochoose应用相同的过滤规则, 唯一不同之处是选择最后一周数据作为测试集。

经过数据预处理后, 两个数据集的统计信息如表 1所示。

下载CSV 表 1 Yoochoose和Diginetica数据集统计信息 Table 1 Yoochoose and Diginetica dataset statistics

由于推荐算法一次只能推荐几个item, 用户实际选择的item应该在列表的前几个项目中。每次推荐20个item, 用户点击其中的一个表明本次推荐是召回成功的, 因此, 实验的主要评估指标是召回率(Recall@20), 即推荐成功的案例在所有推荐案例中的比例。召回率不考虑item的实际排名, 只需要它在推荐的20个item中。实验中使用的第2个评价指标是平均倒数排名(MRR@20), 即召回item的排名倒数的平均值。如果排名高于20, 则将MRR@20设置为零。MRR@20考虑推荐项目的排名, 这在实际推荐场景中是很重要的, 例如电商系统中给用户推荐的排名低的项目仅在滚动之后才能见到。

3.2 实验设置

本文对训练数据集进行处理, 会话数据按照时间戳排名, 再根据会话ID进行分类, 将每个会话中的item按照空格分割按照句子的形式记录下来, 每个会话的分词文本单独占用一行。

用word2vec对记录的会话分词文本进行训练。在训练的过程中, 发现有若干参数对实验结果会产生比较大的影响, 需要调节的参数介绍如下:

1) sg:表示训练word2vec的两种模型, 当sg为1时, 表示选用Skip-gram模型, 如果默认为0, 则选用CBOW模型。

2) hs:表示两种模型的各两种优化算法, 当hs为1时, 使用层次softmax算法, 如果默认为0, 则选用负采样方法。

3) size:训练向量嵌入的维度。

4) window:表示由当前item预测前面和后面item的个数, 如当window为5时, 表示会考虑当前item的前面和后面各5个item。

以SR-I2V在Dignetica数据集上调参过程为例, 具体调参过程如图 2~图 4所示, 从而找到最优推荐效果的参数。该模型调优的最佳参数如表 2所示。实验结果表明:SR-I2V选用Skip-gram模型和层次softmax优化算法可以使推荐效果得到显著提升。

Download:
图 2 sg, hs参数变化时产生的影响 Fig. 2 Effect of sg and hs parameters changes
Download:
图 3 size参数变化时产生的影响 Fig. 3 Effect of size parameter changes
Download:
图 4 window参数变化时产生的影响 Fig. 4 Effect of window parameter changes
下载CSV 表 2 word2vec最优参数值 Table 2 word2vec optimal parameter value

针对会话已有的item项, 根据意图递进定义和式(5)得出意图特征向量, 然后求出与意图特征向量距离最近的20个item进行推荐。不同的意图递进参数$ \alpha $对实验结果会有一定的影响, 实验结果如表 3所示。从表 3可以看出, 在两个数据集上的荐效果先随着$ \alpha $值增长而增长, 当$ \alpha $值在2.1附近时, 推荐效果随着$ \alpha $值增加而降低, 最后推荐效果随着$ \alpha $值增加而趋于稳定。表明了本文提出的意图递进公式的正确性, 可以看出对预测影响最大的是最后一个item, 也进一步说明了会话序列中前面的item对预测有一定的影响。

下载CSV 表 3 不同的意图递进参数α值对推荐结果的影响 Table 3 Effect of different intent progressive parameter values of α on the recommended results%
3.3 算法比较与分析

本节对本文提出的方法与一系列常用的方法进行比较。POP是一种简单的基于流行度的推荐方法, 始终推荐训练集中最受欢迎的项目。S-POP推荐当前会话中最受欢迎的项目。Item-KNN[9]推荐与实际项目类似的项目, 相似性定义为会话向量之间的余弦相似度, 即会话中两个项目的共现次数除以发生单个项目的会话数的乘积, 还包括正则化以避免很少访问的项目的高度相似性。BPR-MF[22]是常用的矩阵分解方法之一, 它通过SGD优化成对排名目标函数。矩阵分解不能直接应用于基于会话的推荐, 因为新会话没有预先计算的向量表示。通过使用新会话中发生的项目的特征向量的平均值表示该会话, 这样处理就可以解决矩阵分解不能直接应用于基于会话的推荐的问题。FPMC[1]是关于下一个添加购物篮推荐的最新混合模型。为使该模型适用于基于会话的推荐, 一般在计算推荐分数时不考虑用户的潜在表示形式。GRU4Rec[6]使用RNN模型对会话数据进行建模, 该模型使用RNN改进版本GRU, 其利用会话并行小批量训练, 并采用基于排名的损失函数来学习模型。

为了证明本文所提出算法的整体性能, 在实验过程中将SR-I2V算法与其他基于会话的推荐算法进行了比较。表 4所示为Recall@20和MRR@20的总体性能, 最佳结果以黑体字突出显示。

下载CSV 表 4 SR-I2V和其他对比算法在两个数据集上的表现 Table 4 Performance of SR-I2V and other comparison algorithms on two datasets%

对于POP和SPOP等传统算法, 其性能相对较差。这种简单的模型仅基于重复出现的项目或连续项目进行推荐, 这在基于会话的推荐方案中是存在问题的, 但S-POP仍然优于POP、BPR-MF等算法, 这说明了会话上下文信息的重要性。GRU4Rec和SR-I2V均优于所有的传统算法, 这说明深度学习技术在基于会话的推荐领域的应用是有效果的。GRG4Rec主要是通过对会话时序信息进行建模, 用户在点击item时, 虽然带有一定的时序性但不是特别强, 所以利用循环神经网络对会话信息进行建模然后进行推荐能够取得一定的效果, 但是效果比较有限。用户在网站浏览商品时大部分时候兴趣不会发散, 并且随着用户逐步和系统交互, 用户意图会越来越清晰, SR-I2V根据已有的item序列利用意图递进的规律总结用户的意图, 往往可以比较准确地把握用户当前的意图。SR-I2V不仅利用了会话中item的相似性或者相关性, 还利用了会话的上下文和时序信息, 因此SR-I2V可以取得比其他算法更好的效果。

4 结束语

本文提出一种基于item嵌入向量相似性的推荐算法SR-I2V。通过将Skip-gram和层次softmax引入到SR-I2V推荐算法中, 充分挖掘会话中item的特征信息, 并推荐相似item, 根据提出的意图递进公式可以更好地总结用户的意图, 从而进一步提升推荐效果。SR-I2V由于不需要获取用户的相关信息, 只需要获取用户在系统中的会话序列信息, 以缓解用户冷启动问题和传统推荐算法中存在的数据稀疏问题。实验结果表明, 相比I2I、PoP、S-POP、Item-KNN等传统算法, 该算法推荐效果大幅提升, 且相比应用RNN模型的GRU4Rec算法也有明显提升。虽然会话中所有的item都是用户浏览过的, 但是大量的item都是在用户发生兴趣漂移后浏览或者不感兴趣。下一步将研究如何把注意力机制融入到SR-I2V算法中, 识别出用户不感兴趣的item, 从而获取更好的推荐效果。

参考文献
[1]
RENDLS S, FREUDENTHALER C, SCHMIDTTHIEME L, et al. Factorizing personalized Markov chains for next-basket recommendation[C]//Proceedings of the 19th International Conference on World Wide Web. New York, USA: ACM Press, 2010: 811-820.
[2]
GAO M T, XU B Y. Recommendation algorithm based on recurrent neural network[J]. Computer Engineering, 2019, 45(8): 198-202, 209. (in Chinese)
高茂庭, 徐彬源. 基于循环神经网络的推荐算法[J]. 计算机工程, 2019, 45(8): 198-202, 209.
[3]
BARKAN O, KOENIGSTEIN N. Item2Vec: neural item embedding for collaborative filtering[C]//Proceedings of IEEE International Workshop on Machine Learning for Signal Processing. Washington D.C., USA: IEEE Press, 2016: 1-6.
[4]
KOREN Y. Factorization meets the neighborhood: a multifaceted collaborative filtering model[C]//Proceedings of the 14th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York, USA: ACM Press, 2008: 426-434.
[5]
SARWAR B M, KARYPIS G, KONSTAN J A, et al. Item-based collaborative filtering recommendation algorithms[C]//Proceedings of the 10th International Conference on World Wide Web. New York, USA: ACM Press, 2001: 285-295.
[6]
HIDASI B, KARATZOGLOU A, BALTRUNAS L, et al. Session-based recommendations with recurrent neural networks[EB/OL]. [2020-03-10]. https://arxiv.org/abs/1511.06939.
[7]
KOREN Y, BELL R M, VOLINSKY C, et al. Matrix factorization techniques for recommender systems[J]. IEEE Computer, 2009, 42(8): 30-37. DOI:10.1109/MC.2009.263
[8]
HIDASI B, TIKK D. Fast ALS-based tensor factorization for context-aware recommendation from implicit feedback[C]//Proceedings of Joint European Conference on Machine Learning and Knowledge Discovery in Databases. Berlin, Germany: Springer, 2012: 67-82.
[9]
LINDEN G, SMITH B R, YORK J C, et al. Amazon.com recommendations: item-to-item collaborative filtering[J]. IEEE Internet Computing, 2003, 7(1): 76-80. DOI:10.1109/MIC.2003.1167344
[10]
SHANI G, HECKERMAN D, BRAFMAN R I, et al. An MDP-based recommender system[J]. Journal of Machine Learning Research, 2005, 21: 1265-1295.
[11]
MIKOLOV T, SUTSKEVER I, CHEN K, et al. Distributed representations of words and phrases and their compositionality[C]//Proceedings of NIPS'13. Cambridge, USA: MIT Press, 2013: 3111-3119.
[12]
MIKOLOV T, KARAFIAT M, BURGET L, et al. Recurrent neural network based language model[C]//Proceedings of Conference of the International Speech Communication Association. Chiba, Japan: [s. n. ], 2010: 1045-1048.
[13]
CHO K, VAN MERRIENBOER B, GULCEHRE C, et al. Learning phrase representations using RNN encoder-decoder for statistical machine translation[EB/OL]. [2020-03-10]. https://arxiv.org/abs/1406.1078.
[14]
SERBAN I V, SORDONI A, BENGIO Y, et al. Building end-to-end dialogue systems using generative hierarchical neural network models[C]//Proceedings of the 30th AAAI Conference on Artificial Intelligence. [S. 1. ]: AAAI Press, 2016: 3776-3784.
[15]
MAO J H, XU W, YANG Y, et al. Deep captioning with multimodal recurrent neural networks (m-RNN)[EB/OL]. [2020-03-10]. https://arxiv.org/abs/1412.6632.
[16]
ZHANG Yuyu, DAI Hanjun, XU Chang, et al. Sequential click prediction for sponsored search with recurrent neural networks[C]//Proceedings of AAAI Conference on Artificial Intelligence. [S. 1. ]: AAAI Press, 2014: 1369-1376.
[17]
DING Y, WANG X, JIANG C Q. Location recommendation algorithm based on kocation2vec[J]. Computer Engineering, 2019, 45(7): 212-216. (in Chinese)
丁勇, 王翔, 蒋翠清. 基于Location2vec的地点推荐算法[J]. 计算机工程, 2019, 45(7): 212-216.
[18]
LIU Q, WU S, WANG L, et al. Predicting the next location: a recurrent model with spatial and temporal contexts[C]//Proceedings of the 30th AAAI Conference on Artificial Intelligence. [S. l. ]: AAAI Press, 2016: 194-200.
[19]
YU F, LIU Q, WU S, et al. A dynamic recurrent model for next basket recommendation[C]//Proceedings of International ACM SIGIR Conference on Research and Development in Information Retrieval. New York, USA: ACM Press, 2016: 729-732.
[20]
GRBOVIC M, CHENG H. Real-time personalization using embeddings for search ranking at airbnb[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York, USA: ACM Press, 2018: 311-320.
[21]
MIKOLOV T, CHEN K, CORRADO G S, et al. Efficient estimation of word representations in vector space[C]//Proceedings of IEEE International Conference on Learning Representations. Washington D.C., USA: IEEE Press, 2013: 156-168.
[22]
REDLE S, FREUDENTHALER C, GANTNER Z, et al. BPR: Bayesian personalized ranking from implicit feedback[C]//Proceedings of the 25th IEEE International Conference on Uncertainty in Artificial Intelligence. Washington D.C., USA: IEEE Press, 2009: 452-461.