张富国,刘云鹤,李 辉,毛明松,陈鸿宇
(江西财经大学 信息管理学院,南昌 330032)
近年来,为了克服传统的单一整体评分对商品评价反映能力薄弱的缺陷,越来越多的国内外电子商务网站允许用户对所提供的商品进行多维度上的评分,如:全球最大的旅游网站Tripadvisor1允许客户从服务、性价比、清洁、位置等维度对酒店进行评分;而日本的雅虎电影网站JPYahoo2采用了情节、选角、编导、画面、音乐等5个准则来表示用户对电影不同维度上的评分.
推荐系统作为解决网络信息过载的有效工具,在各个领域得到了广泛应用[1].因为多准则评分拥有更为丰富的用户偏好信息,从而使推荐系统可以更加准确地为用户偏好以及商品特征进行建模.相较于单一整体评分,多准则推荐系统在提供决策支持时可以减少对其他多元异构信息(如社交网络、人口统计等)的依赖[2],从而降低决策所需要的空间以及时间上的花费,可以在保障推荐准确度的同时,一定程度上降低推荐系统的复杂度,提高决策效率.当前对于多准则推荐算法的研究大多是对传统的单准则推荐算法的拓展,如基于启发式的方法通过拓展相似度计算,而基于模型的方法通过将各个准则视为传统的单一整体评分系统的推荐问题,在此基础上学习一个聚合函数进行各维度评分的融合.很多研究表明,使用多准则评分推荐系统的推荐精度优于单一整体评分系统,但大部分研究没有深入挖掘多准则评分对用户偏好和商品特征的反映[3,4],推荐性能也因此没能得到很大提升.本文结合信息熵理论和信任度计算,从多准则评分数据中挖掘用户准则偏好度和商品准则特征值,并对两者进行匹配分析,提出了基于准则级特征交叉融合的推荐算法(Multi-criteria Recommendation Algorithm Based on Criteria-level Feature Cross-fusion,MCFC),实验结果表明新算法有效提升了推荐的准确性.
当前大多数研究人员将多准则推荐方法视为对单准则推荐方法的一种扩展,并根据效用函数的生成分为基于启发式的(即基于内存或基于邻居)方法和基于模型的方法[5].
基于启发式的推荐方法的关键在于相似度的计算,多准则推荐系统通过扩展传统的基于启发式协同技术的相似度计算,从而反映多准则评分信息.用户之间的总体相似度是通过聚合每个准则上的相似度或使用多维距离度量来计算的.Adomavicius等人提出了两种准则相似度的聚合方法:平均相似度和最坏相似度[3,6].Tang等人提出在论文推荐系统中通过加权方法聚合论文各准则(背景、学者兴趣度、总评分、推荐度等)上的相似度,基于个性化权重的推荐方式对比其他非个性化的处理方法,在预测准确度和覆盖面等指标均有了较大的提升[7].与利用用户评分向量来计算用户之间相似度不同,Manouselis等人考虑到准则权重本身就是用户个性化偏好的描述,提出了3种不同的基于用户准则权重向量来计算用户相似度的方法,即按照优先级、平均数以及部分效用进行计算,可以将其看作是另一类基于邻居的启发式推荐方法[8].
基于模型的方法是使用统计学习方法对已观测到的数据进行学习,从而得到一个可以用来估计未知评分的模型.虽然基于模型的方法相对于基于启发式的方法存在着增量计算的问题,但模型经过一次训练后产生推荐的过程较快且可以反复使用,因此推荐模型的训练通常在线下进行.对多准则推荐算法的研究主要分为两个方向:1)扩展单一评分的基于模型的推荐算法;2)聚合函数法.
2.2.1 扩展传统算法的方法
扩展传统基于模型的在推荐算法的基本思路是:在现有推荐算法的基础上,根据更高维度的数据特征,做出适当的调整或改变.概率算法扩展方法的典型成果是Sahoo等人的工作[9],其扩展了FMM[10](Flexible Mixture Model),用Chow-Liu树结构发现了总体评分与各准则评价之间的依赖性结构,即总体评分将会影响用户对所有规则的评分,并通过把这些依赖性关系整合在传统的FMM算法中,使不同准则之间能够彼此独立.Li等人在研究餐馆推荐系统(包括菜品、环境、服务等10个准则)时,通过采用MSVD技术进行特征降维,并计算用户和饭店在高维空间中的相似度,与传统的单值计算比较,该方法的准确度有一定的提升[11].
2.2.2 基于聚合函数的方法
聚合函数方法的关键是找到一个合适的聚合函数来表示整体评分与多准则评分之间的关系.如Jannach等人利用线性回归计算用户和特定商品准则的相关性,研究各准则如何影响不同用户群体的满意度[12].自适应性模糊神经推理系统(Adaptive Network-based Fuzzy Inference System,ANFIS)是近年研究较多的一种模型预测方法,结合了神经网络的自主学习能力和模糊逻辑的推理能力,克服了神经网络黑盒的难解释性和模糊规则不合理的主观确定等缺陷.Nilashi等人将ANFIS融入到多准则推荐系统中,并结合了降维和聚类等新技术,在TripAdvisor数据集上的实验结果显示,基于EM聚类技术和ANFIS技术的混合算法的推荐精度比传统协同过滤提高6%以上[13].Wasid等人使用马氏距离方法计算聚类后各簇中用户的相似性,将多准则评分有效地融入到传统的推荐系统中[14].Hassan和Hamada提出了一种基于多元线性奇异值分解方法的神经网络算法,其又将遗传算法用来预测多准则推荐问题中的用户偏好,将3种基于遗传算法(标准遗传算法、自适应遗传算法和复合启发式遗传算法)的多准则推荐算法与传统单准则推荐算法比较,发现基于遗传算法的多准则推荐算法在准确度上均有可观的提升[15,16].Nassar等人提出的基于深度学习的多准则协同过滤推荐算法包含两个构件:1)构件通过获取用户和商品的特征作为神经网络的输入以训练各准则评分使用的预测模型;2)构建通过学习多准则评分数据中各准则评分与整体评分关系,从而将各准则预测分整合为一个单一的整体评分.该算法在真实数据上的表现证明了在推荐系统中使用深度学习和多准则数据是有效的[4].
如图1所示,本文构建的基于准则级特征交叉融合的推荐算法(MCFC)框架由2个阶段、3个模块组成.其中,第1阶段是偏好与特征挖掘模块;第2阶段包含数据离散化与嵌入模块以及准则级特征交叉融合模块.偏好与特征挖掘模块包括基于信息熵的用户准则偏好挖掘和基于信任度的商品准则特征挖掘两个部分.
图1 基于准则级特征交叉融合的推荐算法框架图Fig.1 MCFC algorithm framework diagram
信息熵由信息论之父克劳德·艾尔伍德·香农(Claude Elwood Shannon)于1948年提出,旨在从量化的角度解决信息度量问题.在多准则评分系统中,若用户重视某一准则,那么在对不同商品的该准则进行评分时,用户会更为挑剔,因此评分就会体现出差异性,该准则的信息熵也就越大,反之亦然,故本文用信息熵来表示用户的准则偏好度.
(1)
每个商品在各个准则上评分的平均值可以在一定程度上表示商品准则特征值,但考虑到每个用户对各个准则的鉴别能力、关注度以及评分的认真程度不同,对应到每个用户在各个准则上的评分可信度也就不同,因此,商品准则特征更适合由用户的准则评分和该用户的准则评分可信度加权平均计算得到.
用户可信度的计算是关键因素,文献[17]将推荐系统中的信任定义为:如果实体a认定根据实体b的行为采取行动将带来好的结果,则a信任b.
基于邻居用户的协同过滤算法使用公式(2)来计算用户p对商品的评分预测值Pp,l.
(2)
(3)
(4)
其中,Op表示除了用户u外给商品评过分的用户集.在此基础上,以用户p评价过的所有商品的Trustc(u,i)均值来表示用户u对预测准则c评分上的可信度Trustc(u),计算公式如公式(5)所示:
Trustc(u)=∑i∈IuTrustc(u,i)/|Iu|
(5)
其中,Iu表示用户u评价过的商品集合.
(6)
不同于以往的基于聚合函数和启发式多准则推荐算法,基于准则级特征交叉融合的推荐算法(MCFC)在对用户偏好与商品特征挖掘(3.1节和3.2节)的基础上,采用对连续特征离散化后进行嵌入的方式来增强算法的表达能力,并考虑用户的多准则决策过程,提出准则级的特征交叉,最后产生预测.给定用户u和商品i,MCFC算法的评分预测如公式(7)所示:
(7)
3.3.1 用户准则偏好和商品准则特征的离散化与嵌入
为了平衡算法的推荐性能与时间复杂度,本文选择简洁有效的等距离散化方法对用户偏好特征和商品准则特征离散化,即将连续的用户偏好和商品特征变量的取值范围均匀划成H等份,具体如下.
(8)
(9)
(10)
(11)
3.3.2 准则级特征交叉融合
(12)
3.3.3 基于准则级特征交叉融合的推荐算法的点击率计算
将用户嵌入向量和商品嵌入向量进行内积运算,并与fCPI(ε)以及公式(12)中的一阶线性回归部分进行拼接后输入到一个全连接单层神经网络中,最终得到如公式(13)所示的用户u点击商品i的预测概率值.
(13)
其中,σ(z)为sigmoid函数,如公式(14)所示,作用是将一个(-∞,+∞)之内的实数值变换到区间[0,1].
(14)
在多准则推荐系统领域中目前还没有公开可用的标准数据集,大部分实验用数据集是研究人员从网站爬取得到的.日本雅虎电影数据集常被用来测试多准则推荐算法的性能,本文也通过网络爬虫爬取了该网站的电影数据.日本雅虎电影网站除了可以让用户对电影进行总体评分外,还允许用户从情节、人物、表演、画面和音乐5个准则对电影进行评分,评分范围均为从1~5.本文爬取的实验数据集总共包含97,927条数据,其统计信息如表1所示.
表1 JPYahoo数据集统计Table 1 JPyahoo dataset statistics
JPYahoo有5个准则分别为:情节、人物、表演、画面和音乐,数据集的各分段评分数量统计如表2所示.分析表中数据可以得出,5个准则各分段平均评论数的分布大体上与总体评分各分段的分布一致,这也说明了准则评分和整体评分存在一定的一致性.
表2 各分段评分数量分布统计Table 2 Statistics on the distribution of the number of ratings in each segment
1)召回率(Recall),指既出现在推荐列表中,又出现在用户实际交互列表中的商品占用户实际交互的商品总数的比重,其计算公式如公式(15)所示:
(15)
2)准确率(Precision),指既出现在推荐列表中,又出现在用户实际交互列表中的商品占推荐列表中商品总数的比重,其计算公式如公式(16)所示:
(16)
3)平均倒数排名(Mean Reciprocal Rank,MRR),通过计算出现在用户实际交互列表中的商品在推荐列表中的排名来评估推荐系统的性能.MRR考虑了推荐商品在结果列表中的排列位置,更强调顺序性,即评估推荐的这些商品是否放在更靠前、更显眼的位置处.其计算公式如公式(17)所示:
(17)
4)归一化折损累计增益(Normalized Discounted Cumulative Gain,NDCG),用于评价推荐列表与用户真实交互列表的差距.推荐结果与真实交互列表的相关性越大,效果越好,指标越高,其计算公式如公式(18)所示:
(18)
公式(18)中,折损累计增益(DCG)的思想是在推荐结果列表中排名靠后的位置上出现相关性较高的商品时,应该对评测得分施加惩罚,惩罚比例与商品所在位置的对数值有关,其计算公式如公式(19)所示:
(19)
其中,δ(·)为指示函数,对于δ(b),当b为真时δ(b)否则为0.
公式(18)中,最大累计增益(IDCG)是最理想推荐列表的DCG值,即依据推荐列表中的项目在实际交互列表中的排名来计算DCG,其计算公式如公式(20)所示:
(20)
5)命中率(Hit Ratio,HR),指成功推荐的次数占推荐总次数的比例,其计算公式如公式(21)所示.式中分子表示每个用户推荐列表中属于测试集合的个数的总和,分母是所有的测试集合.
(21)
为了保证实验结果的稳定性,防止随机划分数据集的因素对实验结果的干扰,本文采用5折交叉验证法来划分数据集并进行实验,以此减小随机划分训练集所带来的偶然性[20].
为了使算法获得更好的性能表现,本文对实验数据集的总体评分进行正负样本采样,将总体评分大于等于3分的视作1(正面样本),而将总体评分小于3分的视为0(负面样本).然后用交叉熵损失函数作为基于准则级特征交叉融合的推荐算法以及基线算法的优化目标,该损失函数能够解决平方损失函数权重更新过慢的问题,具有“误差大的时候,权重更新快;误差小的时候,权重更新慢”的良好性质[21],其计算如公式(22)所示:
(22)
通过与不同的基线算法进行对比,验证基于准则级特征交叉融合的推荐算法的优越性.用于对比的算法包含经典算法、使用评分数据的深度学习算法以及使用额外特征信息的深度学习算法3类中具有代表性的算法,具体如下.
4.3.1 经典算法
1)最流行推荐(Pop),最基本的对照组,采用为所有用户推荐最受欢迎的商品的策略.
2)基于商品的协同过滤[22](ItemKNN),是一种经典且有效的推荐算法,通过计算商品间相似度来确定邻居,进而产生推荐.
3)因子分解机[23](FM),广泛用于工业界的算法,通过任何两个特征嵌入的内积隐含地模拟了所有二阶交叉特征.
4.3.2 使用评分数据的深度学习算法
1)深度矩阵分解算法[24](DMF),是一种先进的神经网络增强矩阵分解算法,用广义的矩阵分解思想解决推荐问题.
2)神经协同过滤[25](NeuCF),是基于协同过滤思想结合深度学习提出的一种先进的算法,使用用户嵌入向量和商品嵌入向量的内积作为相似度.
3)神经网络矩阵分解[26](ENMF),是使用非采样学习的浅神经网络方法,其使用单层矩阵分解框架,输入的是用户和自身所有的交互商品或商品与其所有的交互用户.
4.3.3 使用额外特征信息的深度学习算法
1)深度因子分解机[27](xDeepFM),将FM的vector-wise的思想引入DCN算法的Cross(特征交叉)部分,以增强对特征的交互能力.
2)神经因子分解机[28](NFM),将FM算法捕获的二阶线性组合特征以及神经网络捕获的高阶非线性组合特征组合起来.
对于使用嵌入向量的算法如DMF,NeuCF,xDeepFM,NFM,ENFM以及本文所提出的MCFC算法,嵌入向量的维度(Embedding Size,ES)设置为20.需要使用的额外特征信息为本文算法挖掘的用户准则偏好信息和商品准则特征信息.此外,本文还执行了早期停止(early stop)策略,如果验证集上的算法优化目标连续增加10次,就停止训练.
针对Top-N推荐的算法,本小节使用4.3小节中提到的基线算法与本文所提出的基于准则级特征交叉融合的推荐算法进行比较,考察其在各个评价指标上的性能优势.图2展示了各个算法在JPYahoo数据集上的表现,图中的性能数据为5折交叉验证的结果的平均值,具体数值在表3中列出.从中可以看出本文所提出的基于准则级特征交叉融合的推荐算法(MCFC)在各个评价指标上的表现均要好于现有的一些算法.FM、xDeepMF以及NFM在JPYahoo数据集上的表现一般.经过分析,该实验中提供的特征信息为连续变量,而这些算法对于连续变量的学习能力有限,进而导致算法效果不佳,而本文提出的算法将连续变量进行了离散化,提高了其性能表现.此外,结果也验证了本算法使用用户偏好和商品特征进行各个准则上的匹配,相较于以往的两两特征交叉有更好的性能.基于准则级特征交叉融合的推荐算法中的超参数有:计算商品特征时的最可信用户数K,离散化时的分箱数H,以及嵌入向量的大小Embedding Size(ES).
表3 MCFC算法与基线算法在JPYahoo数据集上的性能Table 3 Performance data table of MCFC and baseline algorithm on the JPYahoo dataset
图2 MCFC算法与基线算法在JPYahoo数据集上性能柱状图Fig.2 Performance histogram of MCFC and baseline algorithm on JPYahoo dataset
图3为不同最可信用户数K下MCFC算法在NDCG@10(其余指标上类似于NDCG@10)上的表现.从图中可以看出在K取20时MCFC的效果最好.也就是对于JPYahoo数据集中的用户来说,选择前20个最值得信赖的用户对商品的评价来计算商品在各个准则上的特征是最为恰当的.
图3 不同最可信用户下MCFC算法的NDCG@10Fig.3 NDCG@10 of MCFC algorithm for different most trusted user
图4为特征离散化时不同分箱数H下MCFC算法在NDCG@10上的表现.从图中可以看出分箱数H为300时,算法的性能较好.也就意味着,对于JPYahoo数据集来说,将用户或者商品在各个准则上的偏好或者特征划分成300个类别(区间)是比较合适的.虽然可以对每一个用户准则或者商品准则设置不同的分箱数H,但是这样势必会导致超参数过多,调整最佳的各准则分箱数H给算法带来的提升有限.因此,在本文所提出的算法中使用一个整体的H来对各个准则进行离散化.
图4 不同分箱数下MCFC算法的NDCG@10Fig.4 NDCG@10 of MCFC algorithm with different number of buckets H
图5为不同嵌入向量维度大小下MCFC算法在NDCG@10上的表现.从图中可以看出,随着嵌入向量维度的增加,MCFC的准确度也随之增加,但是,相应的参数也会成倍的增加,算法的训练时间也会随之增加.
图5 不同嵌入向量大小下MCFC算法的NDCG@10Fig.5 NDCG@10 of MCFC algorithm under different embedding size
关于嵌入向量的维度,应当根据算法的使用场景以及使用者所能够提供的设备情况进行动态的调整.同时从图中也可以看出,在嵌入向量的维度在60时,算法性能已经较为可观(NDCG@10≈0.17),且相对来说算法的参数在可以接受的范围内.因此,推荐的Embedding Size大小为60.
以往采用聚合函数方法的多准则推荐算法在计算资源和存储资源上都有较大的消耗.聚合函数法在性能上带来的小幅提升往往需要付出计算资源消耗成倍增加的代价,相对于如今迅速发展的深度学习技术,显得竞争力不足.考虑到在实际生活中,用户会根据自己对于某类商品在各个属性上的偏好,以及候选商品中各商品的属性特征进行对比、匹配,最终产生决策.而多准则评分系统能将商品的重要属性提炼成为各个准则,作为用户对商品进行评分时的维度参考.在这些评分数据中,隐含着用户的准则偏好和商品的准则特征.通过准确挖掘多准则数据中用户的准则偏好和商品的准则特征进行推荐是本文对于多准则推荐算法的一次探索.本文基于多准则数据结合信息熵理论和信任度计算,提出一种从多准则交互数据中挖掘用户偏好和商品特征的方法.相对于可以嵌入的离散特征,连续型特征在神经网络中存在许多劣势,因此本文考虑将连续特征进行离散化,随后进行嵌入操作,以提升算法的表达能力.同时,考虑到在多准则推荐系统中用户进行决策时,关注的是其在某一准则上的偏好与商品在对应准则上的特征相匹配的情况,本文又提出一种准则级特征交叉方法对用户偏好和商品特征进一步凝练.实验结果表明,本文所提出的新算法在召回率、准确率、平均排名倒数、归一化折损累计增益以及命中率指标上,相较于几种经典算法以及一些先进的基于深度学习的算法都有更好的性能表现.此外,本文还通过比较不同超参数下基于准则级特征交叉融合的推荐算法的性能,给出了对于算法的超参数的建议.
虽然本文做出了一些创新,但仍存在需要改善的地方.
1)对于基于评分的推荐算法中普遍存在的数据稀疏性和冷启动问题,本文所提出的算法中也存在.该问题仍然是基于评分的推荐系统中亟待解决的问题之一.
2)对用户偏好和商品特征的挖掘,本文采用的是可解释性较强的非机器学习算法,而是否存在其他性能更好的且不失可解释性的机器学习方法还有待探究.