基于离散选择模型的推荐系统改进算法
2020-03-02刘乾超
刘乾超
摘 要: 准确地预估用户的点击率,并根据该概率对商品排序以供用户选择在推荐系统领域有着重要的意义。推荐系统中常用的因子分解机等机器学习模型一般只考虑用户选择单个商品的概率,忽略了候选商品之间的相互影响,离散选择模型则考虑将商品候选集作为整体进行考虑。提出了使用深度学习模型来改进离散选择模型,模型使用相对特征层、注意力机制等网络结构帮助深度学习模型进行不同商品间的特征比较,研究结果表明引入离散选择模型的深度学习模型表现优于梯度提升决策树、因子分解机等模型。
关键词: 推荐系统;离散选择模型;注意力机制
中图分类号: C 93
文献标志码: A
Abstract: It is of great significance in the field of recommendation system to accurately estimate the click-through rate of users and sort the products according to the probability for users to choose. Machine learning models such as factorization machine commonly used in recommendation systems generally only consider the probability that users choose a single product, ignoring the interaction between candidates, while discrete choice model consider the candidates as a whole. In this paper, a deep learning model is proposed to improve the discrete choice model. The model uses network structures such as relative feature layer and attention mechanism to help deep learning model to compare the features of different commodities. The results show that the performance of the deep learning model with discrete selection model is better than that of the gradient boosting decision tree and the factorization machine.
Key words: recommender systems; discrete choice models; attention mechanism
推荐系统广泛应用在电子商务、信息媒体、金融科技等多个领域,准确地给用户推荐其喜欢的内容,能给用户、企业双方带来收益。推荐系统的主要流程包括召回和排序,召回过程从所有商品集合中筛选和用户相关的待推荐候选集,排序过程将召回的待推荐集进行个性化排序,将用户最有可能购买的商品排列在较前的位置。准确估计用户选择商品的概率,并根据该概率对商品进行排序、推荐,在推荐系统领域有着重要的意义。
目前,大多数推荐系统将点击率预测问题构建为二分类问题,预测用户点击某件商品的概率,根据点击率预测的结果将候选商品集排序后推荐给用户。而在实际上,用户是否选择某件商品不仅取决于用户对该产品的偏好,还受其他候选商品的影响。比如,在效用相同的情况下,候选集中价格更低的商品具有更高的吸引力。
一方面,离散选择模型将候选商品集作为整体考虑的假设更符合实际情况;另一方面,深度学习模型因为其复杂的网络结构能比离散选择模型进行更高层的特征抽象。本文考虑将离散选择模型的假设引入深度学习模型中,并设计合理的神经网络结构帮助模型学习用户在多个商品中进行选择时的行为偏好。
1 文献综述
在经济学领域,选择模型通过效用来量化用戶对商品的偏好,McFadden提出的MNL(multinomial logit model)是使用最为广泛的选择模型。在推荐系统领域,常用的推荐算法包括协同过滤(collaborative filtering)和基于特征的推荐。区别于协同过滤算法仅考虑用户过去的购买记录,基于特征推荐的算法同时考虑用户的特征和商品的特征,能够更好地预测用户购买商品的概率。Friedman提出的梯度提升决策树和Rendle提出的因子分解机以及这两类模型的改进算法是常用的基于特征的推荐算法。此外,深度学习由于具有强大的特征提取以及非线性学习的能力,也逐渐被应用在推荐系统领域,包括基于深度学习的协同过滤模型以及谷歌的研究人员提出的基于特征表示学习的Wide & Deep模型等。进一步,Guo等人将因子分解机与Wide & Deep模型结合提出DeepFM模型,该模型由于结合了两类模型的优点,实践效果较优。
1.2 单值排序模型
不同于MNL模型考虑候选集商品之间的相互影响,目前大多数基于特征的推荐算法往往只考虑决策者选择单个商品的概率,同一选择场景下的其他商品对用户选择某一具体商品的概率没有影响,这类算法被称为单值学习排序(pointwise learning to rank),梯度提升树和因子分解机均属于单值学习排序算法。
单值排序模型认为同一件产品在不同的候选商品集中对用户的效用是相同的,但在实际情况中,同一件产品在与不同的候选集进行比较时,用户对该产品的点击率是不同的,MNL的假设相比于单值排序模型更符合实际情况。
2 基于离散选择模型的神经网络模型
2.1 模型构建思想
MNL模型由于使用线性函数来估计候选商品的效用,模型本身并不能学习到输入变量之间的非线性关系。为解决该问题,本文中使用神经网络模型。神经网络模型具有灵活的网络结构,通过引入非线性的激活函数,可以比线性模型学习到更多的信息。在神经网络模型中,最常见的模型是前馈神经网络(feedforward neural network, FNN), 但该类模型由于结构简单,当模型输入较为复杂时,容易出现欠拟合的问题。为解决该问题,在本文中引入四种特殊的网络结构:相对特征层、卷积层、双向LSTM层和注意力机制(attention mechanism)。基于不同商品之间相互影响这一基本假设,这四类网络结构可以帮助模型更好地进行不同商品的比较,从而准确地判断用户更可能选择哪一种产品。
2.2 模型构建
为了将用户的选择决策依赖候选集整体这一假设引入推荐系统中,可以将某一决策环境下所有产品的单值学习模型输入进行向量拼接、构造得到选择集,使用神经网络模型预测用户选择各个产品的概率。为了帮助模型进行不同产品之间特征的比较,本文引入了几种特殊的网络结构。
模型的整体架构见图1。模型的基本架构采用Cheng等人提出的Wide & Deep框架。Wide部分对应原始输入的线性模型组合,Deep端对应DNN模型,用于提取属性间的非线性关系。本文对原模型的修改包括将Wide部分的全连接操作改为FM模型的因子分解操作,将Deep部分修改为包含相对特征层、1D卷积层、双向LSTM、注意力机制的神经网络。将Wide和Deep部分进行特征拼接,经过全连接层,最后以Softmax层作为输出层,输出层维度等于输入层商品的件数,表示用户选择购买各商品的概率预测值。
不同产品的连续性变量(比如价格)在数值上的大小关系,会对购买者的购买决策产生影响。本文在输入层的下一层引入相对特征层,对不同商品的同一种特征进行相对大小比较之后,将次序关系加入模型原始输入中。一般地,对于价格、评分等连续型变量可以进行相对特征层的构造。相对特征层的引入是为了在神经网络模型的较前阶段加入部分变量的相对大小关系,进而在后续的网络层级中学习相对特征对用户选择决策带来的影响。
为使输入的商品数目一致,一般会选取一个较大的数字N作为输入层的商品输入个数。由于在线选购商品的会话中返回的商品数目是不同的,大多数情况下商品数目小于N。一般的情况会对相对位置的缺失商品的所有特征进行补0操作,但为了进一步提高模型预测效果,本文在相对特征层中加入特征缺失层,对于缺失的商品集合sI, 任意商品i∈s,有vij=wj,其中wj∈(w1,…,wJ)作为模型的参数参与模型学习,J为单个商品的特征总数。
在相对特征层之后,使用1维卷积层和双向LSTM模型提取不同产品各自的特征组合信息。为实现这一目的,卷积核的长度设定为单个商品的特征长度,卷积操作的步长设定为单个商品的特征长度,在LSTM模型中将每件产品作为一个时间步骤。将1维卷积神经网络和双向LSTM输出的特征进行拼接作为该层输出。
Bahdanau等人在2015年提出的注意力机制被广泛应用在机器翻译等领域,其基本假设是输入向量不同部分的重要程度是不一样的,输出层特定位置的向量表示依赖于前一层的局部信息,而非全部的信息。注意力层的隐层状态ct通过前一层输出的加权平均获取。Raffel等人将注意力机制应用到前馈神经网络中。具体到本文的研究内容,不同商品对于消费者最终决策的影响权重是不一样的,构建注意力机制可以减少不相关商品对预测的影响。使用ht
Guo等人提出的DeepFM模型首次将FM操作引入Wide & Deep模型中。本文在模型的Wide部分使用DeepFM模型的FM Layer。在具体的模型实施中,对不同商品的相同特征使用一致的特征分解向量,分别计算N件商品的FM得分,将FM得分向量作为Wide部分的输出,与Deep部分的输出进行特征拼接。
输出层的输入是Deep和Wide层做特征拼接后的向量,使用Softmax层作为输出层,输出维度与商品数量保持一致,表示用户购买各商品的概率。
3 数字算例
3.1 实验数据
实验数据使用某机票在线预订平台的用户航班选择数据。该数据集主要包含用户可以浏览到的机票价格、机场等商品信息,以及用户最终购买的选择。值得注意的是,在实际的购买行为中,用户可能在浏览若干商品之后未进行购买,而本文的实验数据仅包含实际产生购买行为的用户浏览了哪些商品,以及最终的选择。实验中使用的数据维度见表1。
3.2 实验设计及评价指标
将基于离散选择模型的神经网络算法和传统的离散选择模型MNL,以及点击率预测问题中常用的XGBoost、FFM模型的预测结果进行对比。其中,XGBoost是梯度提升决策树的改进算法,FFM是因子分解机的改进算法。另外,还将只推荐最便宜产品的策略加入实验结果中作为对比。
本文使用的评价指标是Top-k 准确率(Top-k accuracy),其中Top-k是指按照模型预估用户最可能购买的前k个产品,该指标用来描述用户实际购买的产品出現在Top-k产品中的比例。
3.3 实验参数
本实验中使用Softmax交叉熵作为损失函数,训练过程使用Dropout、Batch Normalization以及Early Stop策略避免过拟合问题。在优化方法上,模型使用Adam作为批量随机梯度下降的更新方法,该方法结合了动量来动态调整学习速率以及更新梯度,其余模型参数见表2。
3.4 實验结果与分析
在Top-1准确率的表现上,MNL、XGBoost、FFM的准确率分别为22.1%、23.4%和23.7%。本文模型的Top-1准确率为28.6%,预测效果优于其他模型。另外,作为对照,如果仅给用户推荐最便宜的产品,该策略的Top-1准确率为16.5%
图3给出了四种模型在Top-1到Top-10准确率的分布。MNL由于其模型简单,对特征的抽取能力相对较弱,表现劣于其他三种模型。本文模型由于考虑了候选商品集合的整体信息,表现优于XGBoost和FFM两类单值学习模型。
4 结语
随着用户数据的积累,个性化内容推荐由于其能降低用户检索成本、挖掘用户潜在兴趣,逐渐成为电子商务等领域的默认解决方案。如何更合理地对用户进行推荐,是推荐系统中的核心问题。离散选择模型假设同一个产品在不同的候选产品集合中对用户的吸引力是不同的,本文将离散选择模型的假设引入深度学习模型中,通过相对特征层、注意力机制等网络结构帮助模型更好地进行预测。实验结果表明,将候选商品作为整体考虑的模型比传统的单值学习模型表现更优,在实践应用中具有一定的指导意义。
参考文献:
[1] MCFADDEN D. Conditional logit analysis of qualitative choice behavior[J]. Frontiers in econometrics, 1973, 105-142.
[2] LINDEN G,SMITH B, YORK J. Amazon.com recommendations: item-to-item collaborative filtering[J]. IEEE Internet Computing, 2003, 76-80.
[3] FRIEDMAN J H. Stochastic gradient boosting[J]. Computational Statistics & Data Analysis, 2002, 38(4):367-378.
[4] RENDLE S. Factorization Machines[C]//International Conference on Data Mining. IEEE, 2011:995-1000.
[5] HE X, LIAO L, ZHANG H, et al. Neural collaborative filtering[C]. International Conference on World Wide Web. International World Wide Web Conferences Steering Committee, 2017, 173-182.
[6] CHENG H T, KOC L, HARMSEN J, et al. Wide & deep learning for recommender systems[J]. 2016.
[7] GUO H, TANG R, YE Y, et al. DeepFM: a factorization-machine based neural network for CTR prediction[J]. 2017:1725-1731.
[8] KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks[C]//International Conference on Neural Information Processing Systems. Curran Associates Inc. 2012:1097-1105.
[9] HOCHREITER S, SCHMIDHUBER J. Long short-term memory[J]. Neural Computation, 1997, 9(8):1735-1780.
[10] CHOROWSKI J, BAHDANAU D, SERDYUK D, et al. Attention-based models for speech recognition[J]. Computer Science, 2015, 10(4):429-439.
[11] RAFFEL C, ELLIS D P W. Feed-forward networks with attention can solve some long-term memory problems[J]. 2015.
[12] CHEN T, HE T, BENESTY M. Xgboost: extreme gradient boosting[J]. 2016.
[13] HE R, FANG C, WANG Z, et al. Field-aware factorization machines for CTR prediction[C]//Proceedings of the 10th ACM Conference on Recommender Systems - RecSys 16, 2016:309-316.
[13] HINTON G E, SRIVASTAVA N, KRIZHEVSKY A, et al. Improving neural networks by preventing co-adaptation of feature detectors[J]. Computer Science, 2012, 3(4): 212-223.
[14] IOFFE S, SZEGEDY C. Batch normalization: accelerating deep network training by reducing internal covariate shift[C]//International Conference on International Conference on Machine Learning. JMLR.org, 2015:448-456.
[15] KINGMA D P, BA J. Adam: a method for stochastic optimization[J]. CoRR, 2014, abs/1412.6980.