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

2021-07-26 11:54陈恩华方宝富
计算机工程 2021年7期
关键词:会话特征向量意图

陈恩华,方宝富

(合肥工业大学计算机与信息学院,合肥230601)

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个词。实验结果表明,Skipgram 比CBOW 能取得更好的效果。这两种模型对应负采样和层次softmax 两种优化算法。

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

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

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

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

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

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

其中:v和v′是item 的输入和输出向量表示形式;V是数据集中的唯一itemID 的集合。

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

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

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

其中:θ为分类器所包含的中间向量。在哈夫曼树中,将左子树编码为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时表示节点n的右子树。结合式(3),层次softmax 对P(iO|iI)的定义如下:

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

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

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

(5) 随剪力连接度的降低,试验梁的动力响应变大;在剪力连接度相同情况下,不同栓钉损伤对结合梁动力性能影响不大。

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

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

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

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所示。

表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 优化算法可以使推荐效果得到显著提升。

表2 word2vec 最优参数值Table 2 word2vec optimal parameter value

图2 sg,hs 参数变化时产生的影响Fig.2 Effect of sg and hs parameters changes

图4 window 参数变化时产生的影响Fig.4 Effect of window parameter changes

图3 size 参数变化时产生的影响Fig.3 Effect of size parameter changes

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

表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 的总体性能,最佳结果以黑体字突出显示。

表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,从而获取更好的推荐效果。

猜你喜欢
会话特征向量意图
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
原始意图、对抗主义和非解释主义
陆游诗写意图(国画)
克罗内克积的特征向量
制定法解释与立法意图的反事实检验
一类特殊矩阵特征向量的求法
EXCEL表格计算判断矩阵近似特征向量在AHP法检验上的应用
汉语教材中的会话结构特征及其语用功能呈现——基于85个会话片段的个案研究
燕山秋意图
冲突语的会话分析研究