基于隐式反馈和加权用户偏好的推荐算法

2024-03-25 02:11陆劲宇
计算机技术与发展 2024年3期
关键词:负反馈样本用户

夏 翔,刘 姜,倪 枫,陆劲宇

(上海理工大学 管理学院,上海 200093)

0 引 言

随着互联网技术和短视频平台的飞速发展,用户获取信息的能力不断增强,方式不断增多,各类信息的种类和数量也急剧增加。在海量信息资源条件下,用户由于其认知能力和特点的限制,很难在有限的时间内选择到符合需求的信息,这就呈现出“信息过载”和“信息缺失”的矛盾[1]。与以往搜索引擎需要用户输入关键字才能从数据库中检索所需内容不同,推荐系统根据每个客户的用户资料自动生成推荐列表,从而显示出更大的便利性[2]。

推荐算法是推荐系统的核心,主要分为3类:(1)基于内容的推荐[3-4];(2)协同过滤推荐[5];(3)混合推荐[6]。其中协同过滤(CF)算法广泛应用于推荐领域,通常依赖于用户的历史评分或行为(如购买或观看、收听等)。核心思想是具有相同或相似的价值观、思想观、知识水平和兴趣偏好的用户,其对信息的需求也是相似的[7]。

用户行为数据通常在项目推荐中起着至关重要的作用,基本分为两类:显式反馈[8]和隐式反馈[9]。显式反馈是指用户主动或者在一定的提示和指引下,根据自身偏好对某个推荐对象或者某种服务的主观使用或者体验感受进行打分、评级或是进行语言评价等行为,以此来很明显地表达用户体验感受和偏好程度[10]。现实生活中,显式反馈的数据收集依赖于用户的主动配合,数据十分稀疏。而隐式反馈是在用户并不知情的情况下,系统记录的用户在系统中的所有操作行为数据[11],数据量大,数据更稠密、更稳定,通常可以真实反映用户态度,具有很好的应用价值。然而,隐式反馈推荐也存在一些常见的问题,例如缺少正负反馈维度的区分、用户偏好程度不明确、隐式反馈数据样本利用度低等。

根据上述隐式反馈推荐存在的问题,现有的隐式反馈推荐算法主要分为3类:面向单类协同过滤的推荐、引入辅助信息的推荐以及基于排序的推荐。

(1)单类协同过滤推荐。Pan等[12]于2008年提出了单类协同过滤问题(One-Class Collaborative Filtering,OCCF),主要是指用户所产生的隐式反馈行为仅能反映用户对当前项目进行过一定的操作,但未被用户进行操作过的项目,不能直接反映用户对其没有偏好,也有可能是用户没有接触到该项目。不少学者从权重、置信度加权及矩阵分解等角度对OCCF问题进行研究。Pan等人[13]提出利用wALS算法(weighted Alternating Least Squares)和权重来缓解负样本问题,其基本思想是:将所有的缺失数据作为负样本,对所有样本进行加权。用户对项目的操作行为代表了用户偏好,具有较高的可行度,将其权重设置为1。相反若用户对其没有操作,即将其相关权重设置为0或1。Hu等人[14]提出了改进的Implicit ALS算法,考虑了用户偏好和置信度之间的联系,将是否有过用户操作行为的项目进行二进制量化,并给数据集中的正负样本分别分配一个变化的信任权值,在经典的矩阵分解模型基础上进行优化。但都仅根据用户是否有过操作对样本进行正负划分,而忽略用户操作频次带来的影响,且将缺失数据作为负反馈的推荐算法复杂度高,数据集较大。

(2)引入辅助信息的推荐。在单类协同过滤方法的基础上引入辅助信息,便可以挖掘用户潜在兴趣偏好,进而提高推荐效果,引入的辅助信息包含用户或项目内容、时间或位置的上下文信息、用户的信任网络或社交关系等。Chen等人[15]引入项目信息,提出一种基于项目的相似性的模型(HCoM)来处理用户购买行为等隐式反馈数据的稀疏问题,在提高OCCF的准确性的基础上还缓解了数据稀疏问题,但引入项目信息的算法针对的特征需求不同,需要根据用户偏好合理选取,所以缺乏一定的通用性。俞东进等人[16]基于玩家操作次数和操作时常等隐式反馈数据及其时效性,提出了一种基于隐式反馈数据的网吧游戏推荐方法(DIIF-SVD++),克服了用户偏好不完整性问题,实现了游戏的实时个性化推荐。陈婷等人[17]通过计算用户间的相似度和信任度构建用户之间的偏好关系,提出了一种基于信任的社交推荐算法(Trust-PMF),但对于隐式反馈推荐中负样本的缺失问题依然没有解决。

(3)基于排序的隐式反馈推荐。Rendle等人[18]于2009年围绕隐式反馈提出了贝叶斯个性化排序(BPR),其关键思想是实现最大后验概率估计规则,以确保观察项目的排名应高于未知项目。Guo等人[19]利用项目内容信息和隐式反馈进行建模,提出一种自适应个性化排序方法(CA-BPR),加快了个性化排序的成对学习,提高了个性化排序的准确性。申艳梅等人[20]针对BPR未能充分利用用户行为信息导致数据稀疏的问题,提出了均值贝叶斯个性化排序算法(MBPR),并通过引入遗忘函数,根据用户评分信息对项目进行了正负反馈划分,进一步挖掘了用户对未知项目的偏好,实验结果表明该算法的推荐性能及鲁棒性均有显著提高。

综上所述,现有的单类协同过滤以及引入辅助信息推荐方法中存在正负样本划分不合理、忽略用户操作频次、无法准确建模用户偏好等问题。针对这些问题,该文引入辅助信息并提出了一种基于隐式反馈和加权用户偏好的推荐算法(IFW-LFM)。该算法首先对wALS算法进行改进,考虑用户操作频次与正负样本划分间的关系,从缺失的数据集中划分正负样本,并不再需要人为引入负样本;其次考虑了用户操作频次对用户偏好程度的影响,定义了置信度这一概念,明确了用户偏好程度,并将其应用在隐因子模型的框架中;对于隐式反馈数据利用度低的问题,通过动态考虑时间问题,将用户收听歌曲起止时间、收听时长等隐式反馈样本利用进来,提高了隐式反馈数据利用价值;最后,在两组真实数据集上对算法进行了测试,从两个不同的数据集得出结论,比一个数据集更为严格可信。

1 基于隐式反馈和加权用户偏好的推荐算法

为了便于形式化描述,符号定义见表1。

表1 符号定义

1.1 隐式反馈中正负反馈维度区分

针对隐式反馈数据缺少正负反馈维度的区分问题,即隐式反馈一般只有正反馈而缺失负样本的问题,常见的思路是人为引入负样本或者将所有的缺失值均作为负样本来使用,这两种解决策略都与实际数据有较大偏差。Pan等人[13]提出利用wALS算法(weighted Alternating Least Squares)和权重来缓解负样本问题,仅仅只考虑了用户是否进行过操作,但将所有缺失数据都当成负反馈其实是不合理的,忽略了用户频次对正负反馈划分的影响。因此,该文学习wALS算法的思想从缺失值中划分潜在的正负样本。首先,定义用户u和项目i,设置Aui>1,这与wALS中将Aui=0设为正样本不同,原因在于表示用户u对项目i进行了不止一次的操作,说明用户对该项目有一定的偏好,且这种推断具有较强的可信度,即设置该项目的偏好值pui=1。对于缺失值来说Aui=0,表示用户u对项目i没有进行过操作,但只能推断这些项目可能并不一定为负样本,因此设置其偏好pui=δ∈[0,1]。对于临界值Aui=1,即用户对推荐项目i只进行过一次操作,该文也将其偏好设定为与Aui=0时取值一致,这是因为一次点击并不能推断用户偏好,可能为正样本,也可能为负样本,如公式1所示:

(1)

其中,当δ=0时,说明所有缺失值都无法划分正负样本,即将所有样本都作为正样本,当δ=1时,即将所有缺失值都当做负反馈样本。

1.2 引入偏好程度

单纯将用户有无隐式行为作为区分用户偏好与否的标准,这样简单的判断是有问题的。比如当用户点击某一首歌曲时,用户可能对这首歌曲没有偏好,可能只是分享给朋友收听,也可能用户不知道该首歌曲的存在。而当用户某种隐式行为的操作频次增加时,用户对该项目的喜好程度随之增加。因此,结合音乐收听背景,文中模型引入一个新的概念偏好程度Eui,它表示用户u在某一操作频次下对该项目i具有偏好的置信度,如公式2所示:

Eui=1+βAui

(2)

其中,Aui为用户收听歌曲操作频次;β为偏好程度的计算系数,通过控制其大小可以为每一个用户-项目对提供最小置信度。由式2可以看出,当用户隐式反馈中收听歌曲的频次数值越大,其偏好程度Eui越大。

1.3 提高隐式反馈样本利用度

如上所述,通过划分正负反馈以及引入用户偏好程度只能解决隐式反馈数据中的前两个问题,并没有解决传统隐式反馈推荐算法样本利用度低的问题。例如,音乐推荐背景中的用户收听歌曲的起止时间、收听时长等数据在传统的LFM模型中并没有加以利用,因而不能充分发挥隐式反馈推荐作用。时间敏感性对于隐式反馈推荐系统同样至关重要。对此,Li等人[21]提出用户偏好呈指数衰减,这一观点与艾宾浩斯遗忘曲线相吻合,即人们忘记事情的速度先快后慢。申艳梅[20]也将遗忘函数加入到了MBPR算法中,考虑了用户兴趣随时间变化的特征。但统一的遗忘函数并未实现用户遗忘规律的个性化,对用户收听时长数据也没有加以利用。因此,该文结合音乐推荐背景,用户收听歌曲起止时间,对歌曲收听时长等数据,利用经典的矩阵分解方法,提出了如下优化目标函数:

(3)

1.4 用户兴趣预测和推荐算法

在实际应用中,较多显式反馈中的推荐算法并不能直接应用于隐式反馈推荐中。该文选取LFM方法实现用户对某首歌曲的兴趣预测,通过将用户和项目都投射至隐因子空间得到隐式特征,分别计算用户以及项目每一个隐因子类别之间的关系,如式4所示:

(4)

综上,需要对优化的如下损失函数找到合适的参数puk,qik:

(5)

其中,正则化参数λ‖pu‖2+λ‖qi‖2是为了避免模型过度拟合,即利用随机梯度下降法求解puk和qik。主要步骤如下:

(1)通过反复实验设定合适的学习率Learning rate和正则化参数λ。

(2)计算puk和qik的偏导数,找到最速下降方向:

(6)

(7)

(3)根据最速下降方向,不断更新puk和qik,反复迭代优化参数:

(8)

(9)

具体算法描述如下:

算法:基于隐式反馈和加权用户偏好的推荐算法(IFW-LFM)

输入:用户-项目操作矩阵A,偏好程度计算系数β,偏好值δ∈[0,1]

输出:用户-项目预测偏好程度矩阵R'

Step 1:读取数据集,初始化用户-项目操作矩阵A;

Step 2:根据式1计算用户偏好pui,根据偏好程度计算系数β计算式2用户偏好程度;

Step 3:根据用户收听歌曲起止时间,对歌曲收听时长等信息,得到式3的优化函数;

Step 4:根据式6~9反复迭代更新计算puk,qik,使得式5的损失函数最小;

Step 6:设定Top-N推荐中N的数值,根据步骤5中得到的R',选取前N个产生推荐列表。

2 实验评估

2.1 实验数据集

实验利用了两组国外大型音乐数据集,以便更好地呈现出算法的性能。数据集1为last.fm-1k,包含两个表,其中用户历史交互记录表记录了从2005年7月到2009年5月992个用户的全部收听历史记录(约2 000万条),包括userID,event timestamp, artistID,artist_name,songID,song_name等信息,用户特征表包含性别、年龄、国家、注册时间等。另一组数据是来自数据集last.fm-360k,包含六个表,记录了1 892个用户的全部收听历史记录,last.fm 360k数据的格式与1k数据大致相同,增加了user对artist收听次数的记录。

2.2 评价指标

在一般的推荐算法指标评价中,评分预测通常使用平均绝对误差和均方根误差来度量,但在隐式反馈中不存在用户“实际”评分,因此,上述两个由用户实际评分与预测评分之间的误差来评估推荐性能的指标不适合计算。该文的目的是对用户进行个性化的音乐推荐,注重的是最终的推荐效果,而不是预测评分与实际评分间的误差。因此,选取准确率、召回率和NDCG作为实验的评估标准。准确率为相关的推荐物品数占推荐物品总数的比率,召回率为相关的推荐数占实际相关物品总数的比率,NDCG表示归一化折损累计概率,与DCG相比,可以更准确地评估排序性能。其计算方法如式10~12所示:

(10)

(11)

(12)

其中,N为推荐列表中的项目数量,reli表示推荐列表中第i个位置的项目的相关分数。实验中,如果结果为正,则reli=1,否则,reli=0。IDCG(理想折损累计增益)表示可得到的DCG的最大值。

2.3 参数影响分析

在文中算法中,4个重要参数分别为隐性特征个数F,负样本比例ratio,正则化参数λ,以及学习速率Learning rate,实验研究了这4个参数对推荐结果的影响。

由图1可以看出,随着隐性特征数目的增多,算法的Precision、Recall和NDCG值均成下降趋势。这是由于在音乐推荐背景中,隐性特征个数相对来说比较单一,用户的兴趣偏好主要受几个关键的隐性特征影响,并不是隐性特征越多越好。

图1 隐性特征个数对性能的影响

如图2所示,负样本比例ratio对算法的性能也有一定影响。实验发现,当ratio小于等于5时,准确率、召回率和NDCG值均随ratio的增加而提高,当ratio大于5后,图像趋于平缓,三类评价指标基本保持稳定。

图2 负样本比例对性能的影响

图3展示了数据集1中准确率等指标在不同正则化参数λ值下的变化。当λ在0.07至0.4之间时推荐效果最好,当λ<0.07时,推荐效果随λ值的增大而提升,当λ>0.4时,模型不能很好拟合,经过实验可以选取合适的λ值,使得算法的推荐效果更好。

图3 正则化参数对性能的影响

在梯度下降法中,学习率Learning rate会直接影响算法的收敛速度和最终优化效果。由图4可知,推荐效果随迭代次数的增加会先有一个增强趋势至峰值,而后逐渐下降。在数据集1中,当初始学习率为0.002时,推荐效果最为理想,但需要30次左右的迭代才能达到,当学习率为0.001时,推荐效果反而下降,这说明当学习率过小时,收敛速度变慢,推荐效果也随之下降,这需要进一步地动态调整学习率,使得迭代次数也调整为合适的值。

图4 学习率对性能的影响

2.4 实验结果与分析

基于隐式反馈的音乐推荐算法较少,同时考虑到隐式反馈应用到音乐推荐场景本身的特点,一些已有的隐式反馈推荐算法不适用于音乐推荐场景。该文选择以下5种算法作为对比算法。

(1)UserCF:基于用户的协同过滤推荐算法。

(2)ItemCF:基于项目的协同过滤推荐算法。

(3)BPR[18]:将推荐问题转化为成对排序问题,将用户参与项与未参与项分别作为正负反馈,构造矩阵参数,从而对每名用户产生推荐列表。

(4)SVD[21]:采用随机梯度下降法优化用户及物品特征矩阵,使其接近原始的评分矩阵,常应用于隐式反馈推荐中。

(5)LFM[22]:通过隐含特征联系用户兴趣和物品,是经典的隐式反馈推荐方法之一。

为达到理想的推荐效果,实验选取了80%的数据作为训练集,20%作为测试集,隐性特征个数F=10,负样本比例Ratio=5,正则化参数λ=0.07,学习率Learning rate=0.002,模型迭代次数为30,实验结果如表2和表3所示。

表2 last.fm 1k数据集实验结果

表3 last.fm 360k数据集实验结果

由表2和表3可以观察到,文中算法在两个数据集下明显优于5种对比算法,其中Item CF算法的召回率、准确率和NDCG值最低,比UserCF的值都要低,这说明基于项目的协同过滤算法没有利用用户行为数据,其推荐效果最差。而相较于SVD仅考虑了隐式特征,并未涉及隐式正负反馈样本的划分,BPR算法将所有缺失值都当做负样本,LFM缺乏时间敏感性的问题,文中提出的基于隐式反馈和加权用户偏好的推荐算法对隐式反馈正负样本进行了合理的划分,同时考虑了收听时长等时效性隐式反馈数据,推荐性能均有显著提升。数据集2中,IFW-LFM算法在时间跨度为180天时,其召回率、准确率和NDCG值较UserCF、ItemCF、LFM、BPR、SVD分别最大平均提升了45.81%,83.83%和60.33%,这说明考虑用户操作频次从缺失值中划分正负样本与考虑其和用户偏好间的关系并引入时间辅助信息的思路是行之有效的。

3 结束语

针对现有隐式反馈中存正负样本划分不合理、忽略用户操作频次、无法准确建模用户偏好的问题,提出了基于隐式反馈和加权用户偏好的推荐算法(IFW-LFM)。该算法借助wALS思想,考虑用户操作频次与正负样本划分间的关系,并对临界值的用户偏好进行了讨论;接着考虑了用户收听歌曲频次对用户偏好程度的影响,根据用户操作频次定义了置信度,明确了用户偏好程度这一重要信息;最后提高了隐式反馈样本中关于时效性信息的利用,根据用户收听歌曲起止时间与收听时长等样本数据,构建了隐式反馈推荐模型,并利用LFM算法预测用户兴趣,提高了推荐性能。然而,在考虑样本利用率低的问题时,仅加入了时效性信息而未考虑其他辅助信息,未来将在此模型的基础上考虑加入更多的辅助信息,以进一步提高样本利用率。此外,该文是基于纯粹隐式反馈数据上的推荐,对显式反馈数据没有加以利用,下一步也可以考虑这两种反馈数据如何进行有效的结合以提高推荐性能。

猜你喜欢
负反馈样本用户
用样本估计总体复习点拨
全新的虚短虚断概念与两类集成运放之导出
负反馈放大电路设计
推动医改的“直销样本”
随机微分方程的样本Lyapunov二次型估计
关注用户
关注用户
关注用户
村企共赢的样本
基于Multisim的负反馈放大电路仿真分析