软件学报  2020, Vol. 31 Issue (3): 794-805   PDF    
融合显式反馈与隐式反馈的协同过滤推荐算法
陈碧毅1 , 黄玲1 , 王昌栋1 , 景丽萍2     
1. 中山大学 数据科学与计算机学院, 广东 广州 510006;
2. 北京交通大学 计算机与信息技术学院, 北京 100044
摘要: 显式反馈与隐式反馈相结合,可以有效提升推荐性能.但是现有的融合显式反馈与隐式反馈的推荐系统存在未能发挥隐式反馈数据缺失值反映用户隐藏偏好的能力,或者未能保留显式反馈数据反映用户偏好程度的能力的局限性.为了解决这个问题,提出了一种融合显式反馈与隐式反馈的协同过滤推荐算法.该算法分为两个阶段:第1阶段利用加权低秩近似处理隐式反馈数据,训练出隐式用户/物品向量;第2阶段引入了基线评估,同时将隐式用户/物品向量作为补充,通过显隐式用户/物品向量结合,训练得出用户对物品的预测偏好程度.该算法与多个典型算法在标准数据集上进行了实验比较,其可行性和有效性得到验证.
关键词: 推荐系统    协同过滤    矩阵分解    显式反馈    隐式反馈    
Explicit and Implicit Feedback Based Collaborative Filtering Algorithm
CHEN Bi-Yi1 , HUANG Ling1 , WANG Chang-Dong1 , JING Li-Ping2     
1. School of Data and Computer Science, Sun Yat-Sen University, Guangzhou 510006, China;
2. School of Computer and Information Technology, Beijing Jiaotong University, Beijing 100044, China
Abstract: The combination of explicit and implicit feedback can effectively improve recommendation performance. However, the existing recommendation systems have some disadvantages in integrating explicit feedback and implicit feedback, i.e., the ability of implicit feedback to reflect hidden preferences from missing values is ignored or the ability of explicit feedback to reflect users' preferences is not fully utilized. To address this issue, this study proposes an explicit and implicit feedback based collaborative filtering algorithm. The algorithm is divided into two stages, where the first stage deals with implicit feedback data by weighted low rank approximation to train implicit user/item vectors, and the second stage introduces a baseline estimate and uses the implicit user/item vectors as supplementaries to the explicit user/item vectors. Through the combination of explicit and implicit user/item vectors, the predictions of users' preferences for items can be obtained by training. The proposed algorithm is compared with several typical algorithms on standard datasets, and the results confirm its feasibility and effectiveness.
Key words: recommendation system    collaborative filtering    matrix factorization    explicit feedback    implicit feedback    

推荐系统作为解决信息过载问题的主要技术之一, 近年来受到了学术界和工业界的广泛关注[1-7].推荐系统中最常用的方法是协同过滤推荐方法[3], 如图 1所示, 仅利用用户历史行为信息, 分析用户与物品之间的关系, 从而给出满足用户个性化需求的推荐.用户的历史行为信息包括显式反馈与隐式反馈[5]:显式反馈是指用户对物品的评分或者评价, 可以直接反映用户偏好, 并且细化了偏好的程度; 隐式反馈指的是用户的购买、点击、收藏等行为[7], 无法直接反映用户偏好, 但可用于挖掘用户偏好.现实生活中, 用户往往很少主动对物品进行评分或者评价, 很多场景下, 甚至只能收集到隐式反馈数据, 因此显式反馈数据十分稀疏, 而隐式反馈数据十分丰富, 并且避免了用户操作负担, 较为容易获取.许多研究人员逐渐意识到隐式反馈数据的价值, 将目光转到了基于隐式反馈的推荐方法上[6-16].一些研究发现:显式反馈与隐式反馈之间存在一种互补关系[5, 17-19], 将二者同时应用将有很大可能改善推荐效果.然而, 现有的研究未能充分考虑显式反馈与隐式反馈的特性, 未能充分发挥二者的作用, 例如仅利用隐式反馈的正样本而忽视缺失值的作用, 或者将显隐式反馈数据都转化为0-1之间的值, 破坏了其原本结构.

Fig. 1 Collaborative filtering recommendation system 图 1 协同过滤推荐系统

针对上述问题, 本文提出一种融合显式反馈与隐式反馈的推荐算法, 算法分为两个阶段:第1阶段利用加权低秩近似处理隐式反馈数据, 训练得出隐式用户/物品向量; 第2阶段引入基线评估, 同时将隐式用户/物品向量作为补充, 通过显隐式用户/物品向量结合, 训练得出用户对物品的预测偏好程度.实验结果表明, 本方法显著地提高了推荐性能.

1 相关工作 1.1 基于隐因子模型的推荐

隐因子模型(latent factor model, 简称LFM)是十分常用的推荐方法, 其思想是将用户和物品特征化, 映射到一个共有的隐因子空间, 使用矩阵分解方法将稀疏的用户-物品评分矩阵补全, 由此预测用户对物品的兴趣度, 具有很高的精确度[5, 6, 20-28].由于评分矩阵具有高度稀疏性, 通常是低秩的, 因此隐因子空间的维度可以设置得很低而不会影响精确度, 从而极大减小了存储复杂度.同时, 特征矩阵的尺寸与用户和物品的数量呈线性相关, 因此具有良好的可扩展性.由于上述优越性, 隐因子模型受到了广泛的关注.Hofmann[23]利用概率隐语义分析建立一个协同过滤模型.Yin等人[6]提出了潜在要素模型, 利用降维技术提高了模型抗噪声能力.Salakhutdinov和Mnih[24]提出了概率矩阵分解模型(probabilistic matrix factorization, 简称PMF).

1.2 基于深度学习的推荐

近几年来, 由于深度学习具有强大的学习能力, 深度学习方法逐渐被引入到推荐系统中, 用以学习用户对物品的偏好[7, 29, 30].深度神经网络被用于学习用户-物品隐因子表示与匹配函数之间复杂的映射关系.He等人[29]提出了3种方法:广义矩阵分解(generalized matrix factorization, 简称GMF)、多层感知机(multi-layer perceptron, 简称MLP)和神经系统矩阵分解(neural matrix factorization, 简称NeuMF), 分别用不同的方式对用户-物品交互进行建模.Deng等人[7]结合表示学习与匹配方程学习的优点, 提出了DeepCF框架.然而, 基于深度神经网络的模型面临严重的过拟合问题, 并且具有高计算复杂度和高存储复杂度, 无法适应大规模数据[30].

1.3 隐式反馈推荐算法

相比于显式反馈数据, 隐式反馈数据具有数据量大、数据更稠密、更稳定的特点, 是由用户自然产生的, 通常会真实地反映用户态度, 具有很高的应用价值[6-8].然而, 隐式反馈数据也存在显著的缺陷[8].

1)   缺少负反馈.隐式反馈数据只能反映用户是否对物品进行过操作, 操作的频率可用于推测出用户喜欢的物品, 却无法反映用户不喜欢哪些物品;

2)   无法表达偏好程度.隐式反馈的数值通常表示用户的操作频率, 比如节目的观看次数、歌曲的播放次数、点击率等, 数值越高, 并不代表用户更喜欢该物品, 而是表示该行为的可信度, 因为一次性事件可能是偶然的, 而高频率的事件则有更高的可信度;

3)   数据噪声.显隐式反馈数据都存在噪声数据, 然而相比于评分明确的显式反馈数据, 隐式反馈数据更容易包含噪声, 只能用于猜测用户的偏好和真实动机.

针对隐式反馈中存在的显著缺陷, 研究人员提出了许多基于隐式反馈的推荐方法, 主要可以分为以下3类:基于评分预测的单类协同过滤算法、引入辅助信息的推荐以及基于排序的推荐.

1)   基于评分预测的单类协同过滤.Pan等人[9]提出了加权的ALS算法(weighted alternating least squares, 简称wALS), 其核心思想是:将所有的缺失数据当作负样本, 对所有样本进行加权.用户对物品有操作, 这本身就反映了用户对物品有偏好, 具有很高的可信度, 因此其相关权重应设置为1.而用户对物品没有操作的情况, 并不代表用户真的不喜欢这个物品, 很有可能是用户没有见过这个物品, 因此其可信度较低, 相关权重应设置为小于1的值.wALS[9]算法可以有效地从缺失值中挖掘出潜在的正、负样本. Hu等人[8]提出了改进的因子分解模型, 其核心思想是:给隐式反馈数据集中的正样本和负样本分别分配一个变化的信任权值;

2)   引入外部信息的推荐.由于隐式反馈具有显著的缺陷, 因此仅使用隐式反馈进行推荐效果不佳.Li等人[10]在传统的单类协同过滤模型的基础上引入用户的购买、搜索和浏览记录, 利用增加的用户搜索特征, 有效提升了推荐的准确度.Sindhwani等人[11]引入了辅助矩阵, 运用非负矩阵分解技术进行分解建模, 提出了ldNFM.Wang等人[12]在传统的矩阵分解模型上融入推荐对象的内容信息或者文本描述信息, 提出了CTR模型, 进一步缓解隐式反馈数据的类不平衡问题以及新对象的冷启动问题;

3)   基于排序的推荐.在信息检索领域, 排序学习得到广泛的关注与快速发展, 一些学者尝试将排序的思想应用到单类协同过滤问题上.Rendle等人[13]提出了BPR模型, 运用贝叶斯成对损失函数, 研究了基于排序的单类协同过滤问题.Pan和Chen[14]放弃了BPR[13]模型中提出的用户之间相互独立的假设, 提出了GBPR.Shi等人[15]提出了CLiMF, 通过直接优化平均倒数排名(mean reciprocal rank, 简称MRR)指标, 实现对推荐对象进行排序.Qiu等人[16]通过研究不同种类的隐式反馈之间的相关关系, 提出了基于排序技术的BPRH模型.

这些算法皆有效地缓解了隐式反馈的类不平衡问题以及缺少负反馈问题, 可以有效地从缺失值中分类出正样本和负样本, 一些研究可以根据隐式反馈的数值或者辅助信息对推荐对象进行排序.然而, 隐式反馈的数值只能反映动作的可信度, 而无法真实反映用户的偏好程度.因此, 本文算法在利用隐式反馈数据挖掘用户隐藏偏好的同时, 结合显式反馈数据准确反映用户偏好程度的优势, 以给出更准确的推荐结果.

1.4 融合显隐式反馈的推荐算法

许多研究发现显式反馈与隐式反馈之间存在一种互补关系[5, 17-19], 将二者同时应用有很大可能改善推荐效果.Koren[5]提出将用户是否评过分这个行为作为隐式反馈, 利用用户评过分的所有物品的隐因子来代表用户, 将显式反馈与隐式反馈同时用于推荐任务, 提出了非对称SVD(asymmetric-SVD, 简称ASVD)和SVD++. Li[22]结合了SVD++[5]和xCLiMF[19]算法, 通过最优化预期倒数排名(expected reciprocal rank, 简称ERR)指标, 提出了融合显隐式反馈的个性化排序模型MERR_SVD++.然而, 上述算法仅利用了评分数据和隐式反馈的正样本进行训练, 未能考虑到隐式反馈中缺失值的价值, 未能缓解隐式反馈的缺少负反馈问题, 因此未能充分发挥隐式反馈的作用.用户的意见不仅包括其评过分的物品, 同时也由他没有评价或者操作过的内容组成, 即缺失值也有其价值, 以上算法皆采用了直接将缺失值当作未知的策略.与现有算法不同的是, 本文算法对隐式反馈数据进行加权低秩处理, 从缺失值中挖掘出隐藏的正负样本, 能够有效缓解隐式反馈的缺少负反馈问题, 从而更好地发挥隐式反馈数据反映用户隐藏偏好的能力.

Liu等人[18]考虑到了显隐式反馈的异质性, 即显式反馈多为数值型的, 而隐式反馈多为二元型的, 为了消除二者的数值差异, 将二者都转化为0-1之间的数值, 并分别给它们设置不同的权重, 提出了基于评分预测的矩阵分解模型Co_rating.然而, 将显式反馈数据转化为0-1之间的数值的做法, 削弱了显式反馈数据反映用户偏好程度的能力, 未能考虑到显式反馈数据的重要特性.与上述工作不同, 本文算法在保留显式反馈与隐式反馈各自特性的基础上, 对二者分别采用合适的方法进行训练, 充分发挥了隐式反馈数据反映用户隐藏偏好的能力以及显式反馈数据反映用户偏好程度的能力, 同时将从隐式反馈数据学习得出的信息作为显式反馈数据的补充, 更大程度地提升了挖掘用户对物品隐藏偏好程度的能力.

2 融合显式反馈与隐式反馈的协同过滤推荐算法 2.1 问题定义

为了便于形式化描述, 本文的符号标记见表 1.

Table 1 Symbol definition 表 1 符号定义

假定有m个用户和n个物品.隐式反馈数据中, 用户对物品的操作信息用矩阵A=[Aui]m×n表示, Aui代表用户u对物品i的操作信息.本文选用用户对物品进行评分的行为表示隐式反馈, 因为用户对物品有评分的情况恰好反映了用户对该物品有一定偏好.因此, 当用户u对物品i有评分时, Aui=1;否则, Aui=0.隐式用户偏好信息用隐式用户矩阵Pm×k表示, Pu·代表用户u的隐式隐因子表示; 隐式物品信息用隐式物品矩阵Qn×k表示, Qi·代表物品i的隐式隐因子表示, 实际的用户-物品操作矩阵A可由PQT近似表示.Wm×n为隐式权重矩阵, 用于反映操作信息Am×n的可信度.低秩矩阵Xm×dYn×d的乘积XYT用于近似表示稠密的隐式权重矩阵Wm×n.显式反馈数据中, 用户对物品的评分信息用矩阵R=[rui]m×n表示, rui代表用户u对物品i的评分信息, 评分越高, 代表用户对该物品越满意.例如, 在五分制的电影评分系统下, rui∈{1, 2, 3, 4, 5}, 评分越接近5, 代表用户越喜欢该电影; 评分越接近1, 代表用户对该电影越不感兴趣.显式用户偏好信息用显式用户矩阵Um×k表示, Ui·代表用户u的显式隐因子表示; 显式物品信息用显式物品矩阵Vn×k表示, Vi·代表物品i的显式隐因子表示.评分rui已知的用户-物品对(u, i)存储于集合κ={(u, i)|rui≠0}中.用户-物品操作矩阵A中的列索引存储于集合N中.用户r操作过的物品在用户-物品操作矩阵A中的列索引存储于集合Nr中.用户u对物品i的评分特异性用评分基线bui表示, 其由所有物品的评分均值μ、用户u评分的偏置bu和物品i评分的偏置bi之和构成, 即bui=μ+bu+bi.推荐系统的目标是:给定一个用户u以及一个商品i, 如果用户u对商品i的偏好程度未知, 则系统会根据已知的一些信息来预测出用户u对商品i的偏好程度${\hat r_{ui}}$; 接着, 根据每个用户的预测偏好程度由高到低对商品进行排序, 将前K个商品推荐给用户.

2.2 EIFCF的模型

隐因子模型作为协同过滤推荐中的一种常见方法, 具有挖掘数据多维特征的潜力.因此, 为了充分发挥隐式反馈数据反映用户隐藏偏好的能力, 以及显式反馈数据反映用户对各种特征的偏好程度的能力, 本文在考虑显隐式反馈数据的显著差异条件下, 针对显隐式反馈数据各自的特性, 对隐式反馈数据和显式反馈数据分别进行矩阵分解处理, 同时将从隐式反馈数据中学习得出的用户隐藏偏好信息作为显式反馈数据的补充, 提出了一种融合显式反馈与隐式反馈的协同过滤推荐算法(explicit and implicit feedback based collaborative filtering algorithm, 简称EIFCF).

EIFCF算法主要分为两个阶段:第1阶段利用gap-ALS(GALS)[20]算法快速处理隐式反馈数据, 得到隐式用户向量P和隐式物品向量Q; 第2阶段引入了基线评估, 同时将第一阶段学习得到的隐式用户向量P和隐式物品向量Q作为补充, 由隐式用户向量P和显式用户向量U共同组成用户向量, 由隐式物品向量Q和显式物品向量V共同组成物品向量, 利用显式反馈数据训练模型, 预测得出用户对物品的偏好程度.

2.2.1 第1阶段

第1阶段对用户-物品操作矩阵采用矩阵分解方法, 其思想是任何用户都有自己偏好的特征, 每种物品包含的特征也各不相同, 用户对各个特征的偏好程度构成了用户的隐向量, 而物品在各个特征上的概率分布构成了物品的隐向量.实际的用户-物品操作矩阵Am×n可以用低秩的隐式用户矩阵Pm×k和隐式物品矩阵Qn×k的乘积PQT近似表示, 由此可以得到损失函数如下:

$ Loss = \sum\limits_{ui} {{{({A_{ui}} - {\mathit{\boldsymbol{P}}_{u \cdot }}\mathit{\boldsymbol{Q}}_{i \cdot }^T)}^2} + {\lambda _1}(||\mathit{\boldsymbol{P}}|{|^2} + ||\mathit{\boldsymbol{Q}}|{|^2})} $ (1)

其中, k代表隐式用户/物品向量的特征维度, λ1为正则化参数, P的行向量代表一个用户对各个特征的偏好程度, Q的行向量代表一个物品在各个特征上的概率分布.

在解决隐式反馈数据缺少负反馈的问题上, 常用的思路是将所有的缺失值当作负样本, 或者忽视所有缺失样本, 仅使用正样本.而这两种策略都与实际情况有很大偏差, 因为缺失值中可能存在正样本.因此, 隐式反馈数据的处理学习wALS[9]算法的思想从缺失值中挑选出潜在的正负样本.首先, 设置Aui=1为正样本, 由于用户对物品评过分恰好代表用户对该物品存在一定偏好, 因此Aui=1代表正样本具有很强的可信度, 设置其相关权重Wui=1;对于缺失值, 定义它们有可能为负样本, 对应的Aui=0, 然而, 用户没有对物品进行操作并不代表用户不喜欢该物品, 很有可能是用户从未见过这个物品, 因此Aui=0代表负样本的可信度较低, 其相关权重应该较低, 设置为Wui=δ∈[0, 1], 可得相关权重矩阵:

$ {W_{ui}} = \left\{ {\begin{array}{*{20}{l}} {1, {\rm{ }}{A_{ui}} = 1}\\ {\delta \in [0, 1], {\rm{ }}{A_{ui}} = 0} \end{array}} \right. $ (2)

δ=0时, 相当于将所有的缺失值当作未知, 仅使用正样本的情况; 当δ=1时, 相当于将所有的缺失值当作负样本.因此, 公式(1)可改写为如下形式:

$ Loss = \sum\limits_{ui} {{W_{ui}}({{({A_{ui}} - {\mathit{\boldsymbol{P}}_{u \cdot }}\mathit{\boldsymbol{Q}}_{i \cdot }^T)}^2} + {\lambda _1}(||{\mathit{\boldsymbol{P}}_{u \cdot }}|{|^2} + ||{\mathit{\boldsymbol{Q}}_{i \cdot }}|{|^2}))} $ (3)

由于Wm×nAm×n皆为稠密的, 损失函数(3)的计算复杂度为Ω(m·n).为了解决该问题, 采用GALS[20]算法分解加权矩阵Wm×n, 使用两个低秩矩阵的乘积XYT近似加权矩阵W, 其中正样本的权重为1, 得到:

$ \begin{array}{c} Loss = {\sum\limits_{ui} {{\mathit{\boldsymbol{X}}_{u \cdot }}\mathit{\boldsymbol{Y}}_{i \cdot }^T({\mathit{\boldsymbol{P}}_{u \cdot }}\mathit{\boldsymbol{Q}}_{i \cdot }^T - {A_{ui}})} ^2} + \sum\limits_{ui} {{\mathit{\boldsymbol{X}}_{u \cdot }}\mathit{\boldsymbol{Y}}_{i \cdot }^T{\lambda _1}(||{\mathit{\boldsymbol{P}}_{u \cdot }}|{|^2} + ||{\mathit{\boldsymbol{Q}}_{i \cdot }}|{|^2})} \\ = \underbrace {\sum\limits_{ui} {{\mathit{\boldsymbol{X}}_{u \cdot }}\mathit{\boldsymbol{Y}}_{i \cdot }^T{{({\mathit{\boldsymbol{P}}_{u \cdot }}\mathit{\boldsymbol{Q}}_{i \cdot }^T)}^2}} }_{ = :A} + \underbrace {\sum\limits_{ui \in \kappa } {({{({\mathit{\boldsymbol{P}}_{u \cdot }}\mathit{\boldsymbol{Q}}_{i \cdot }^T - 1)}^2} - {\mathit{\boldsymbol{X}}_{u \cdot }}\mathit{\boldsymbol{Y}}_{i \cdot }^T{{({\mathit{\boldsymbol{P}}_{u \cdot }}\mathit{\boldsymbol{Q}}_{i \cdot }^T)}^2})} }_{ = :B} + \underbrace {\sum\limits_{ui} {{\mathit{\boldsymbol{X}}_{u \cdot }}\mathit{\boldsymbol{Y}}_{i \cdot }^T{\lambda _1}(||{\mathit{\boldsymbol{P}}_{u \cdot }}|{|^2} + ||{\mathit{\boldsymbol{Q}}_{i \cdot }}|{|^2})} }_{ = :C} \end{array} $ (4)

对公式(4)各项分别求偏导, 同时令其导数为0, 可求出隐式用户向量P, 见算法1中第1行~第15行.

算法 1. EIFCF.

输入:隐式物品向量Qn×k, Xm×dYn×d, 用户-物品评分矩阵Rm×n;

输出:用户-物品预测偏好程度矩阵${{\mathit{\boldsymbol{\hat R}}}_{m \times n}}$.

1:  YΣ=YT1

2:  for all $\tilde d \in \{ 1,...,|d|\} $ do

3:    $\hat A_{jk}^{(\tilde d)}: = \sum\nolimits_{i \in N} {{Q_{ij}} \cdot {Q_{ik}} \cdot {Y_{i\widetilde d}}} $

4:  for rows r∈{1, …, m} do

5:    读取Q中的rNr列的数据到πr(Q)

6:    $\mathit{\boldsymbol{\hat B}}: = {\pi _r}{(\mathit{\boldsymbol{Q}})^T}{\pi _r}(\mathit{\boldsymbol{Q}})$

7:    q:=π(Q)1

8:    读取Y中的rNr列的数据到πr(Y)

9:    $\hat c: = {\mathit{\boldsymbol{X}}_r}({Y_\sum } - {\pi _r}{(\mathit{\boldsymbol{Y}})^T}1)$

10:    for all $\tilde d \in \{ 1, ..., |d|\} $ do

11:      $\tilde B_{jk}^{(\tilde d)}: = \sum\nolimits_{i \in {N_r}} {{Q_{ij}} \cdot {Q_{ik}} \cdot {Y_{i\widetilde d}}} $

12:    $\mathit{\boldsymbol{A'}}: = \sum\nolimits_d {{X_{rd}} \cdot {{\mathit{\boldsymbol{\hat A}}}^{(d)}}} $

13:    $\mathit{\boldsymbol{B'}}: = \mathit{\boldsymbol{\hat B}} - \sum\nolimits_d {{X_{rd}} \cdot {{\mathit{\boldsymbol{\tilde B}}}^{(d)}}} $

14:    $\mathit{\boldsymbol{C'}}: = \lambda (\hat c + |{N_r}|) \cdot \mathit{\boldsymbol{E}}$

15:    Pr:=[(A'+B'+C')-1qr]T

16: end for

17: 进行上述流程的对称实验, 得隐式物品向量Q

18: 设定步长γ

19: for i∈{1, …, iteration} do

20:    预测误差为${e_{ui}} = {r_{ui}} - {\hat r_{ui}}$

21:    for (u, i) in κ do

22: bubu+γ·(eui-λ2·bu)

23:         bibi+γ·(eui-λ2·bi)

24:         Vi·Vi·+γ·(eui·(Pu·+Uu·)-λ2·Vi·)

25:         Uu·Uu·+γ·(eui·(Qi·+Vi·)-λ2·Uu·)

26:    end for

27: end for

28: return ${\mathit{\boldsymbol{\hat R}}}$

2.2.2 第2阶段

第2阶段对用户-物品评分矩阵采用矩阵分解方法, 实际的评分矩阵Rm×n可以由低秩的显式用户矩阵Um×k和显式物品矩阵Vn×k的乘积UVT近似表示, 其目标是使得对所有R中的元素rui≠0有:

$ Loss = \sum\limits_{{r_{ui}} \ne 0} {{{({\mathit{\boldsymbol{r}}_{ui}} - {\mathit{\boldsymbol{U}}_{u \cdot }}\mathit{\boldsymbol{V}}_{i \cdot }^T)}^2}} + {\lambda _2}(||\mathit{\boldsymbol{U}}|{|^2} + ||\mathit{\boldsymbol{V}}|{|^2}) $ (5)

事实上, 当用户给物品评分或者进行评价时, 除了考虑物品多大程度符合自身兴趣外, 通常还会受到自身的评分习惯和该物品的平均评分的影响.例如:有些用户给分比较宽松, 通常会比给分比较严格的人给出的评分要高, 或者当某物品的平均评分较低时, 用户也会倾向于给该物品较低的评分.因此引入评分基线评估[21], 用以衡量用户间和物品间的差异.假设用户u对物品i的评分的基线为bui, 其可由所有物品的评分均值μ、用户u评分的偏置bu和物品i评分的偏置bi之和构成, 即:

$ {b_{ui}} = m + {b_u} + {b_i} $ (6)

例如:在五分制的电影评分系统中, 整体的电影评分均值为2.5分, 用户U给分比较严格, 通常评分会比均值低1分, 而电影I比较受欢迎, 通常收到的评分会比均值高1.5分, 那么用户U对电影I的评分的基线为2.5-1+1.5=3分.

因此, 对用户偏好程度的预测可表示为

$ {\hat r_{ui}} = \mu + {b_u} + {b_i} + {\mathit{\boldsymbol{U}}_{u \cdot }}\mathit{\boldsymbol{V}}_{i \cdot }^T $ (7)

其中:μ是直接由训练集统计得出的, 代表全局评分偏置项, 与具体的用户和物品无关; bu由机器学习训练得来, 只与用户u有关, 体现了用户特异性; bi同样由机器学习训练得来, 只与物品i有关, 体现了物品特异性.

将隐式训练部分得出的隐式用户向量P和隐式物品向量Q作为显式用户向量U和显式物品向量V的补充, 公式(7)可改写为如下形式:

${\hat r_{ui}} = \mu + {b_u} + {b_i} + ({\mathit{\boldsymbol{P}}_{u \cdot }} + {\mathit{\boldsymbol{U}}_{u \cdot }}){({\mathit{\boldsymbol{Q}}_{i \cdot }} + {\mathit{\boldsymbol{V}}_{i \cdot }})^T}$ (8)

隐式用户向量P和隐式物品向量Q可以有效提供用户隐藏偏好信息, 而显式用户向量U和显式物品向量V提供用户对物品的偏好程度信息.显式用户向量U和显式物品向量V的具体值将由显式反馈数据训练得出.

将公式(8)代入公式(5)中, 则最终目标函数形式为

$ Loss = \sum\limits_{(u,i) \in \kappa } {({r_{ui}} - \mu - {b_u} - {b_i} - ({\mathit{\boldsymbol{P}}_{u \cdot }} + {\mathit{\boldsymbol{U}}_{u \cdot }}){{({\mathit{\boldsymbol{Q}}_{i \cdot }} + {\mathit{\boldsymbol{V}}_{i \cdot }})}^T})} + {\lambda _2}(b_u^2 + b_i^2 + ||\mathit{\boldsymbol{U}}|{|^2} + ||\mathit{\boldsymbol{V}}|{|^2}) $ (9)

采用梯度下降法求解公式(9), 见算法1中第22行~第25行.重复步骤21~步骤26, 直至达到迭代次数.

2.3 算法复杂度分析

算法1的时间复杂度很大程度受$\hat A_{jk}^{(\tilde d)}$计算的影响, 其在整个初始化过程中的时间复杂度为Θ(n·k2·|d|).每一行计算的时间复杂度由$\tilde B_{jk}^{(\tilde d)}$决定, 其时间复杂度为Θ(|Nrk2·|d|).相比之下, $\mathit{\boldsymbol{\hat B}}, {q_r}, \hat c$, A', B', C'和Pr对时间复杂度的

影响几乎可以不计, 因此, 所有行的时间复杂度为O(m·|Nrk2·d).相比之下, 第2阶段的训练时间复杂度对整体时间复杂度影响很小, 因此算法1的时间复杂度为O(m·|Nrk2·d).可以看到, 算法1的时间复杂度与数据集的规模呈线性相关, 因此, 算法具有良好的可扩展性.

3 实验结果与分析

在开源的MovieLens数据集上, 融合显式反馈与隐式反馈的协同过滤推荐算法EIFCF与其他典型算法进行对比, 实验结果验证了EIFCF的可行性和有效性.同时, 本文还分析比较了一些重要参数对结果的影响.

3.1 数据集

实验采用MovieLens的数据集:ml-100k, ml-latest-small(简称ml-ls), ml-1m和ml-10m, 数据集的具体信息见表 2.所有数据集中每名用户至少拥有20条评分记录.

Table 2 Data set description 表 2 数据集描述

3.2 评价指标

推荐系统的任务是将用户最感兴趣的物品推荐给用户, 用户偏好程度越高的物品, 在推荐列表中的位置应该越靠前[6], 因此, 实验采用F1(F1-measure)、平均精度均值(mean average precision, 简称MAP)和归一化折损累计增益(normalized discounted cumulative gain, 简称NDCG)这3种评价指标来评估推荐算法的质量.

3.3 实验结果与分析

本文比较了提出的EIFCF与以下4种推荐方法.

1)   UserCF[31]:一个经典的推荐算法, 通过与目标用户相似的用户的偏好信息, 预测目标用户的偏好程度.通常被用作推荐系统的基线;

2)   Bias LFM[21]:经典的仅利用显式反馈的基于矩阵分解的推荐算法, 没有引入隐式向量的EIFCF的第2阶段即为该算法;

3)   GALS[20]:该算法利用加权的思想, 从隐式反馈数据缺失值中挖掘出隐藏的正、负样本.EIFCF的第1阶段采用了该算法;

4)   SVD++[5]:该算法同时利用显、隐式反馈数据, 将用户评过分的物品隐因子集合作为用户隐因子的补充.

本文根据各个对比算法的参考文献或者实验结果设置合适的参数, 使得各对比算法达到最佳性能.本文分别在4个数据集上都随机抽取了50%的训练数据和50%的测试数据, 分别表示为ml-100k(0.5), ml-ls(0.5), ml-1m(0.5)和ml-10m(0.5);以及随机抽取了70%的训练数据和30%的测试数据, 分别表示为ml-100k(0.3), ml-ls(0.3), ml-1m(0.3)和ml-10m(0.3), 按照各数据集的特点, 设定了合适的TopN值.

表 3可以观察到, 所提算法EIFCF明显优于4种对比算法.这是由于相比于UserCF, Bias LFM和GALS仅考虑显式反馈数据或隐式反馈数据, 以及SVD++仅考虑显式反馈数据和隐式反馈数据中的正样本, EIFCF在考虑显式反馈数据反映用户偏好程度能力的基础上, 同时考虑到了隐式反馈数据中缺失值的作用, 能够从缺失值中挖掘出隐藏的正负样本, 实现了对两种数据的有效融合, 显著提升了推荐性能.EIFCF的第1阶段采用了GALS算法, 同时, Bias LFM相当于没有引入隐式向量的EIFCF的第2阶段.而EIFCF算法明显优于上述两种算法, 这表明了算法两个阶段对总体性能起到较大的提升作用.

Table 3 Performance comparison of EIFCF and baselines 表 3 EIFCF与对比算法推荐效果比较

3.4 重要参数的影响

EIFCF算法中包含两个重要的超参数:缺失值的相关权重δ和用户/物品向量的维度k, 实验进一步研究了这两个超参数对推荐结果的影响.

在EIFCF的第1阶段, Aij=0的相关权重被定义为Wij=δ∈[0, 1].正如前面所述, 将该权重值设置为0, 表示将所有缺失值当作未知值, 仅利用正样本进行训练; 将该权重设置为1, 表示将所有缺失值当作负样本.可见, 该权重值的取值对实验结果会产生重要影响.实验在数据集ml-ls, ml-100k和ml-1m的不同测试集切割比条件下进行, 其中:在ml-ls(0.5), ml-100k(0.5)和ml-1m(0.5)数据集下, TopN取5;在ml-ls(0.3), ml-100k(0.3)和ml-1m(0.3)数据集下, TopN取3.实验结果如图 2所示.

Fig. 2 Effect of δ on performance 图 2 δ对性能的影响

图 2可以得到如下结论:绝大多数情况下, 缺失值的相关权重取值偏小或者偏大, 推荐效果都不好.正如前面所述:当缺失值的相关权重为0时, 相当于将所有的缺失值当作未知, 仅利用已知项来进行计算, 对比的算法SVD++和Bias LFM正是采用了这种策略; 而当缺失值的相关权重为1时, 相当于将所有的缺失值当作负样本, 显然这是不符合实际情况的.同时, 绝大多数情况下, δ=0.9的结果优于δ=0.1的结果, 这是因为用户评过分的物品数量是远远小于物品总量的, 用户喜欢的物品种类也远远小于所有物品种类, 因此缺失样本中有很大一部分属于负样本.另外, 在数据集ml-100k(0.5)和ml-1m(0.5)中, δ=0.7时推荐效果最佳; 在余下的数据集中, δ=0.5时推荐效果最佳.由此可以推断出, 对缺失值进行加权的策略是优于将所有的缺失值当作未知和将所有的缺失值当作负样本的策略的.

参数k表示用户向量和物品向量的维度, 其取值也会对实验结果产生一定影响.实验同样在数据集ml-ls, ml-100k和ml-1m的不同测试集切割比条件下进行, 其中:在ml-ls(0.5), ml-100k(0.5)和ml-1m(0.5)数据集下, TopN取5;在ml-ls(0.3), ml-100k(0.3)和ml-1m(0.3)数据集下, TopN取3.实验结果如图 3所示.

Fig. 3 Effect of k on performance 图 3 k对性能的影响

图 3可以看到, 绝大多数情况下, 在一定范围内, 随着用户和物品向量的维度k的增大, 推荐性能有所提升.这是因为隐向量的维度越高, 能储存的信息越多, 从而能更大程度地挖掘到隐含信息.然而k越大, 越容易受到个别误差的干扰, 从而导致推荐性能的下降.而实验所用的数据是高度稀疏的, 即用户评过分的物品数量很少, 因此k不宜取得过高.在ml-ls(0.3)数据集下, k取5时推荐性能最佳; 在ml-100k(0.3), ml-100k(0.5)以及ml-ls(0.5)数据集下, k取10时推荐性能最佳; 在ml-1m(0.3)和ml-1m(0.5)数据集下, k取15时推荐性能最佳.

4 总结

针对现有融合显式反馈与隐式反馈的推荐算法存在的局限性, 即未能发挥隐式反馈数据缺失值反映用户隐藏偏好的能力, 或者未能保留显式反馈数据反映用户偏好程度的能力, 本文提出了融合显式反馈与隐式反馈的协同过滤推荐算法EIFCF.该算法充分考虑显式反馈数据与隐式反馈数据存在的显著差异, 首先利用加权矩阵分解的思想从隐式反馈数据缺失值中挖掘出隐藏正负样本, 克服了隐式反馈数据缺少负样本的问题, 更大程度发挥隐式反馈数据的反映用户隐藏偏好信息的能力; 接着, 将训练得出的信息作为显式反馈数据的补充, 缓解了显式反馈数据的高度稀疏性问题, 同时增强模型从显式反馈数据中学习用户偏好程度信息的能力.实验结果验证了本文算法的可行性与有效性.

本文在融合显式反馈与隐式反馈的推荐场景下, 为了更好地发挥两种反馈数据的不同作用, 即隐式反馈数据反映用户隐藏偏好的作用以及显式反馈数据反映用户偏好程度的作用, 针对两种反馈数据的特性, 分别对其采用了合适的训练方法.下一步, 我们将尝试对隐式反馈数据采用更先进的加权策略, 并尝试引入更先进的方法来训练模型, 探索更好地促进隐式反馈与显式反馈数据协同合作的方法.此外, 现实生活中隐式反馈的种类十分多样, 我们将尝试利用更多种类的隐式反馈数据, 进一步缓解数据稀疏问题的影响.

本文由人工智能赋能的数据管理、分析与系统专刊特约编辑李战怀教授、于戈教授和杨晓春教授推荐.

参考文献
[1]
Liu LY, Du XZ, Zhu L, Shen FM, Huang Z. Learning discrete hashing towards efficient fashion recommendation. Data Science and Engineering, 2018, 3(4): 307-322. [doi:10.1007/s41019-018-0079-z]
[2]
Gao DW, Tong YX, She JY, Song TS, Chen L, Xu K. Top-k team recommendation and its variants in spatial crowdsourcing. Data Science and Engineering, 2017, 2(2): 136-150. [doi:10.1007/s41019-017-0037-1]
[3]
Wang CD, Deng ZH, Lai JH, Yu PS. Serendipitous recommendation in e-commerce using innovator-based collaborative filtering. IEEE Trans. on Cybernetics, 2019, 49(7): 2678-2692. [doi:10.1109/TCYB.2018.2841924]
[4]
Srivastava R, Palshikar GK, Chaurasia S, Dixit A. What's next? A recommendation system for industrial training. Data Science and Engineering, 2018, 3(3): 232-247. [doi:10.1007/s41019-018-0076-2]
[5]
Koren Y. Factorization meets the neighborhood: A multifaceted collaborative filtering model. In: Proc. of the 14th ACM Int'l Conf. on Knowledge Discovery and Data Mining. New York: ACM, 2008. 426-234.[doi: 10.1145/1401890.1401944]
[6]
Yin J, Wang ZS, Li Q, Su WJ. Personalized recommendation based on large-scale implicit feedback. Ruan Jian Xue Bao/Journal of Software, 2014, 25(9): 1953-1966(in Chinese with English abstract). [doi:10.13328/j.cnki.jos.004648]
[7]
Deng ZH, Huang L, Wang CD, Lai JH, Yu PS. DeepCF: A unified framework of representation learning and matching function learning in recommender system. In: Proc. of the 33rd AAAI Conf. on Artificial Intelligence. Palo Alto: AAAI, 2019. 61-68.[doi: 10.1609/aaai.v33i01.330161]
[8]
Hu YF, Koren Y, Volinsky C. Collaborative filtering for implicit feedback datasets. In: Proc. of the 2008 8th IEEE Int'l Conf. on Data Mining. Piscataway: IEEE, 2008. 263-272.[doi: 10.1109/ICDM.2008.22]
[9]
Pan R, Zhou YH, Cao B, Liu NN, Lukose R, Scholz M, Yang Q. One-class collaborative filtering. In: Proc. of the 2008 8th IEEE Int'l Conf. on Data Mining. Piscataway: IEEE, 2008. 502-511.[doi: 10.1109/ICDM.2008.16]
[10]
Li YN, Zhai CX, Chen Y. Improving one-class collaborative filtering by incorporating rich user information. In: Proc. of the 19th ACM Int'l Conf. on Information and Knowledge Management. New York: ACM, 2010. 959-968.[doi: 10.1145/1871437.1871559]
[11]
Sindhwani V, Bucak SS, Hu JY, Mojsilovic A. One-class matrix completion with low-density factorizations. In: Proc. of the 2010 IEEE Int'l Conf. on Data Mining. Piscataway: IEEE, 2010. 1055-1060.[doi: 10.1109/ICDM.2010.164]
[12]
Wang H, Chen BY, Li WJ. Collaborative topic regression with social regularization for tag recommendation. In: Proc. of the 23rd Int'l Joint Conf. on Artificial Intelligence. Palo Alto: AAAI, 2013. 2719-2725.[doi: 10.13140/2.1.3004.7689]
[13]
Rendle S, Freudenthaler C, Gantner Z, Schmidt-Thieme L. BPR: Bayesian personalized ranking from implicit feedback. In: Proc. of the 25th Conf. on Uncertainty in Artificial Intelligence. Arlington: AUAI, 2009. 452-461.
[14]
Pan WK, Chen L. GBPR: Group preference based Bayesian personalized ranking for one-class collaborative filtering. In: Proc. of the 23rd Int'l Joint Conf. on Artificial Intelligence. Palo Alto: AAAI, 2013. 2691-2697.
[15]
Shi Y, Karatzoglou A, Baltrunas L, Larson M, Oliver N, Hanjalic A. CLiMF: Learning to maximize reciprocal rank with collaborative less-is-more filtering. In: Proc. of the 6th ACM Conf. on Recommender Systems. New York: ACM, 2012. 139-146.[doi: 10.1145/2365952.2365981]
[16]
Qiu HH, Liu Y, Guo GB, Sun Z, Zhang J, Nguyen HT. BPRH:Bayesian personalized ranking for heterogeneous implicit feedback. Information Sciences, 2018, 453: 80-98. [doi:10.1016/j.ins.2018.04.027]
[17]
Wang D, Chen Z, Yue WJ, Gao X, Wang F. Probabilistic matrix factorization recommendation with explicit and implicit feedback. Journal of Computer Applications, 2015, 35(9): 2574-2578(in Chinese with English abstract). [doi:10.1609/aaai.v33i01.330161]
[18]
Liu NN, Xiang EW, Zhao M, Yang Q. Unifying explicit and implicit feedback for collaborative filtering. In: Proc. of the 19th ACM Int'l Conf. on Information and Knowledge Management. New York: ACM, 2010. 1445-1448.[doi: 10.1145/1871437.1871643]
[19]
Shi Y, Karatzoglou A, Baltrunas L, Larson M, Hanjalic A. xCLiMF: Optimizing expected reciprocal rank for data with multiple levels of relevance. In: Proc. of the 7th ACM Conf. on Recommender Systems. New York: ACM, 2013. 431-434.[doi: 10.1145/2507157.2507227]
[20]
Pan R, Scholz M. Mind the gaps: Weighting the unknown in large-scale one-class collaborative filtering. In: Proc. of the 15th ACM Int'l Conf. on Knowledge Discovery and Data Mining. New York: ACM, 2009. 667-676.[doi: 10.1145/1557019.1557094]
[21]
Koren Y. Factor in the neighbors:Scalable and accurate collaborative filtering. ACM Trans. on Knowledge Discovery from Data, 2010, 4(1): 1-24. [doi:10.1145/1644873.1644874]
[22]
Li G, Chen Q. Exploiting explicit and implicit feedback for personalized ranking. Mathematical Problems in Engineering, 2016, 1-11. [doi:10.1155/2016/2535329]
[23]
Hofmann T. Latent semantic models for collaborative filtering. ACM Trans. on Information Systems, 2004, 22(1): 89-115. [doi:10.1145/963770.963774]
[24]
Salakhutdinov R, Mnih A. Probabilistic matrix factorization. In: Proc. of the 20th int'l Conf. on Neural Information Processing Systems. New York: Curran Associates Inc., 2007. 1257-1264.
[25]
Wu B, Lou ZZ, Ye YD. Co-Regularized matrix factorization recommendation algorithm. Ruan Jian Xue Bao/Journal of Software, 2018, 29(9): 2681-2696(in Chinese with English abstract). [doi:10.13328/j.cnki.jos.005274]
[26]
Liu HF, Jing LP, Yu J. Survey of matrix factorization based recommendation methods by integrating social information. Ruan Jian Xue Bao/Journal of Software, 2018, 29(2): 340-362(in Chinese with English abstract). [doi:10.13328/j.cnki.jos.005391]
[27]
Lin CY, Wang LC, Tsai KH. Hybrid real-time matrix factorization for implicit feedback recommendation systems. IEEE Access, 2018, 6: 21369-21380. [doi:10.1109/ACCESS.2018.2819428]
[28]
He XN, Zhang HW, Kan MY, Chua TS. Fast matrix factorization for online recommendation with implicit feedback. In: Proc. of the 39th Int'l Conf. on Research and Development in Information Retrieval. New York: ACM, 2016. 549-558.[doi: 10.1145/2911451.2911489]
[29]
He XN, Liao LZ, Zhang HW, Nie LQ, Hu X, Chua TS. Neural collaborative filtering. In: Proc. of the 26th Int'l World Wide Web Conf. New York: ACM, 2017. 173-182.[doi: 10.1145/3038912.3052569]
[30]
Xi WD, Huang L, Wang CD, Zheng YY, Lai JH. BPAM: Recommendation based on BP neural network with attention mechanism. In: Proc. of the 28th Int'l Joint Conf. on Artificial Intelligence. California: IJCAI, 2019. 3905-3911.[doi: 10.24963/ijcai.2019/542]
[31]
Herlocker JL, Konstan JA, Borchers A, Riedl J. An algorithmic framework for performing collaborative filtering. In: Proc. of the 22nd Annual Int'l Conf. on Research and Development in Information Retrieval. New York: ACM, 1999. 230-237.
[6]
印鉴, 王智圣, 李琪, 苏伟杰. 基于大规模隐式反馈的个性化推荐. 软件学报, 2014, 25(9): 1953-1966. [doi:10.13328/j.cnki.jos.004648]
[17]
王东, 陈志, 岳文静, 高翔, 王峰. 基于显式与隐式反馈信息的概率矩阵分解推荐. 计算机应用, 2015, 35(9): 2574-2578. [doi:10.1609/aaai.v33i01.330161]
[25]
吴宾, 娄铮铮, 叶阳东. 联合正则化的矩阵分解推荐算法. 软件学报, 2018, 29(9): 2681-2696. [doi:10.13328/j.cnki.jos.005274]
[26]
刘华锋, 景丽萍, 于剑. 融合社交信息的矩阵分解推荐方法研究综述. 软件学报, 2018, 29(2): 340-362. [doi:10.13328/j.cnki.jos.005391]