1. 引言
21世纪处于大数据时代,人们经常遇到自己所需要的信息与被推荐的信息不匹配的情况,因此推荐系统的逐步完善成为了当今世界亟待解决的问题,本文提供了一种基于项目的推荐系统,能够提高推荐准确率,使得其更人性化。在过去的十几年里,催生了非常多的推荐技术,涌现了许多的推荐系统,例如:Amazon的个性化物品推荐系统、Netflix的视频推荐、Facebook的好友推荐,今日头条的时事新闻推荐,最近几年,抖音、快手、淘宝也是国内非常火热的推荐系统。基于项目的推荐系统是一种根据项目之间的相似度,再根据用户对相关项目的兴趣度,为用户提供有用的建议。然而对于信息消费者来说从大量信息中找到自己感兴趣的信息是一件非常困难的事情;对于信息生产者来说让自己生产的信息脱颖而出也是一件非常困难的事情,而推荐系统让事情变得简单 [1]。
常用的推荐系统有基于内容的推荐,就是推荐与用户过去喜欢的内容相似的项目 [2];基于知识的推荐,该类推荐系统利用用户的显示需求和特定的领域产品的深度来推荐项目 [3];混合推荐系统,该类推荐系统往往综合了上面提到的多种技术,利用优势互补来提高推荐系统的总体性能 [4];基于协同过滤的推荐系统 [5],该推荐系统有两种类型:基于用户的协同过滤推荐系统 [6] 和基于项目的协同过滤推荐系统 [7]。本文将从基于项目的推荐系统进行研究分析。
为了解决传统推荐系统仅考虑相似度进行项目推荐,缺乏推荐精度,本文将三支决策思想引入推荐系统中,提出基于项目相似度和受欢迎程度的三支决策推荐系统。作为粗糙集理论的一种扩张 [8],三支决策主要被用于处理延迟决策的不确定性问题。目前三支决策已在很多领域得到成功应用,如垃圾邮件的过滤 [9]、政策制定 [10]、聚类系统 [11] 等。叶晓庆等人 [12] 将三支粒融入基于用户的推荐系统中,得到了推荐精度提高且损失减小的结果;张恒汝等人 [13] 提出了基于回归的三支推荐系统,通过调整不同行为阈值使总的推荐损失达到最小。
本文在基于项目的推荐系统的基础上,将三支决策与推荐系统相结合,充分考虑项目间的相似度和受欢迎程度,通过调整阈值得到最小推荐损失,实现对项目的推荐、延迟推荐和不推荐的分类准则。进而根据用户对项目的兴趣度,为用户精准推荐项目,提高为用户推荐项目的准确性,减少误推荐,使推荐损失达到最小。最后利用Movielens数据集中用户对电影的评分数据对推荐系统进行验证。
2. 相关概念
2.1. 基于项目的推荐系统
三元组
称为用户–项目评分信息系统 [12],其中
是所有用户的集合,
是所有项目的集合,
是
上信息函数构成的集合,则对任意的
,
,
表示用户
对项目
的评分值,
为评分值域。
表示用户
未给项目评分,
表示用户
给项目评过分。表1给出了用户–项目评分信息系统。
Table 1. User-Itemrating information system (U, I, F)
表1. 用户–项目评分信息系统(U, I, F)
如表1所示,
表示用户
对项目
的评分为3分,
表示用户
对项目
未评分。若判断是否为用户
推荐项目
,文献 [1] 提出了基于项目的推荐系统,其核心思想是,对于未评分项目,通过计算用户对未评分项目与用户对评分项目的相似度,进而引入用户对未评分项目的兴趣度,决定是否给用户推荐该项目。
对任意两个项目
与
,相似度 [1] 定义为:
(1)
其中,
表示给项目
评分的用户集合,
表示集合
的基数。
用户
对项目
的兴趣度 [1] 为:
(2)
是用户
评价的项目集合,
表示和项目
最相似的n个近邻项目的集合。
算法1:基于项目的推荐系统算法如下 [14]:
输入:用户–项目评分信息系统
输出:为用户
推荐的项目
步骤1:根据公式(1),计算两个项目
和
的相似度
,将最相似的n个项目提出;
步骤2:根据公式(2),计算用户
对推荐项目
的兴趣度
;
步骤3:将兴趣度从大到小排列,依次将项目推荐给用户
。
2.2. 三支决策
定义1 [15] [16] 设论域U表示非空有限对象构成的集合,
是定义在U上的等价关系。记
为Pawlak近似空间。对任意
,记
为x关于等价关系R的等价类。对
,
且
,X的
-下、上近似集分别定义为:
(3)
其中,
为条件概率。
-下、上近似集将论域分为三个部分 [17] [18] [19] [20]:
(4)
文献 [19] 提出了利用损失函数构造决策总风险最小时的三支决策规则,从而得到阈值
和
。
设
表示s个状态构成的集合,
表示m个行为构成的集合,
表示状态为
时采取行为
的损失,
表示对象x在状态
下的条件概率。则采取行为
的期望损失为 [19]:
(5)
在三支决策理论中 [21],
表示状态集合(属于X和不属于X),
表示行为集合,即对于不同状态,采取接受,延迟和拒绝三种行为策略。由于采取不同行为会产生不同损失,分别用
、
、
表示当对象x处于状态X (
)时,采取行为
、
、
的损失;分别用
、
、
表示当对象x处于状态
(
)时,采取行为
、
、
的损失。表2给出了对应的损失矩阵:
于是采取
、
、
三种行为对应的期望损失分别为:
(6)
根据最小风险决策规则,需选择损失最小的行为集作为最佳行动方案,可得如下决策规则:
(P):若
和
,则
,
(B):若
和
,则
,
(N):若
和
,则
。
由于
,上述规则只与概率
和损失函数
有关。此外,考虑到接受正确事物的损失不大于延迟接受正确事物的损失,且这两者都小于拒绝正确事物的损失;拒绝错误事物的损失不大于延迟拒绝错误事物的损失,且这两者都小于接受错误事物的损失,因此,损失函数的大小关系满足 [18]:
(7)
故上述决策规划可化简为以下决策规则:
(P):若
和
,则
;
(B):若
和
,则
;
(N):若
和
,则
,
其中:
(8)
由决策规则(B)可知
,进而可得:
(9)
由公式(7)和公式(8)即得
.于是决策规则(P) (B) (N)可进一步简化为:
(P1):若
,则
;
(B1):若
,则
;
(N1):若
,则
。
3. 基于项目的三支决策推荐系统
本文在基于项目的推荐系统中引入三支决策思想,构建基于项目的三支决策推荐系统,其目的是给目标用户推荐项目时提高推荐精度并降低推荐过程中的误推荐损失。
表示项目受欢迎和不受欢迎的状态集,
表示推荐、延迟推荐和不推荐的推荐行为集。表3给出了基于项目的三支决策推荐系统的损失矩阵。
Table 3. Three-way decision recommendation system cost matrices
表3. 三支决策推荐系统损失矩阵
表中
,
,
分别表示项目受欢迎且被推荐,延迟推荐和不推荐的损失;
,
,
分别表示项目不受欢迎且被推荐,延迟推荐和不推荐的损失。
当
时,给用户
推荐(
)、延迟推荐(
)或不推荐(
)项目
对应的损失分别为:
(10)
其中,
表示与未评分项目
相似又被用户
评分的项目集合,
表示所有项目的平均相似度,其公式为:
(11)
表示与未评分项目
相似且被用户
评分的项目受欢迎的概率。
根据最小风险决策规则(P)、(B)、(N)可得如下规则:
(P2):若
,给用户
推荐项目
;
(B2):若
,给用户
延迟推荐项目
;
(N2):若
,给用户
不推荐项目
。
其中阈值
和
取值为:
(12)
特别的,二支决策推荐过程只考虑推荐与不推荐两种行为,
,
表示受欢迎的和不受欢迎的状态集。表4给出了基于项目的二支决策推荐损失矩阵:
Table 4. Two-way decision recommendation system cost matrices
表4. 基于项目的二支决策推荐系统
根据最小风险决策规则(P) (B) (N)可得如下规则:
(P3):若
,则为用户
推荐项目
,
(N3):若
,则为用户
不推荐项目
,
阈值
取值为:
(13)
根据决策规则,获取推荐项目后,根据公式(2),计算出用户
对推荐项目的兴趣度
,并根据兴趣度从大到小排列,选取排名靠前的项目s优先推荐给用户
。
因此,得到表5基于项目的三支决策推荐系统算法。
Table 5. Item-based three-way decisions recommend system algorithms
表5. 基于项目的三支决策推荐系统算法
4. 实验结果及分析
4.1. 数据集
实验数据采用http://www.grouplens.org网站提供的公开MovieLens数据集(用户对电影评分数据集)。评分是1~5的离散值,由6040名用户,3706部电影和约100万条评分组成,本文随机选取87.5%的数据进行训练,其余的数据进行测试,本文在采集数据后,将评分量过少,且不具有意义的数据进行数据清洗 [22],得到表6所示数据。
4.2. 误推荐损失计算
本文在训练集中计算误推荐损失,比较基于项目的三支决策推荐系统与基于项目的二支决策推荐系统的损失。当
时,表明用户
喜欢项目
,故项目
应该被推荐;当
时,表明用户
不喜欢项目
,故项目
应该不被推荐,其中,
为用户
对项目的喜好阈值:
(14)
其中
表示用户
评过分的项目集合。
对于三支决策的三种决策:推荐、不推荐和延迟推荐,其所产生的误推荐损失分为四类 [23]:推荐
不推荐(
)、推荐
延迟推荐(
)、不推荐
推荐(
)、不推荐
延迟推荐(
)。也即,若
时,则项目
应该被推荐给用户
,却做出对项目
不推荐的决策,从而造成损失,记为
。用
表示将推荐项目归类为不推荐项目的误推荐项目的数量。故根据三支决策推荐系统的损失矩阵可得其误推荐损失为:
(15)
特别的,对于二支决策,其误推荐损失仅含两类:推荐
不推荐(
),不推荐
推荐(
)。根据二支决策推荐系统的损失矩阵可得其误推荐损失为:
(16)
4.3. 评价指标
实验采用覆盖率(COVERAGE)、准确率(PRECISION)、召回率(RECALL)和F1值4个评价指标来比较系统的推荐性能。
1) 覆盖率(COVERAGE)计算能够预测项目占所有待测项目的比率,从而评价预测的全面性。COVERAGE越大,预测质量越高。假设有推荐结果的项目为h个,则COVERAGE的计算公式为 [1]:
(17)
2) 准确率(PRECISION),它表示用户对一个被推荐项目感兴趣的可能性;召回率(RECALL)表示一个用户喜欢的项目被推荐的概率,F1值表示得分值,准确率,召回率,F1值计算公式如表7所示:
Table 7. Accuracy, Recall Rate, and F1 Value
表7. 准确率、召回率和F1值
其中相关指标说明如下表8所示:
Table 8. Description of relevant metrics
表8. 相关指标说明
4.4. 结果及分析
4.4.1. 基于项目的二支决策推荐系统与基于项目的三支决策推荐系统损失对比
计算推荐系统产生的损失时,主要考虑错误推荐所产生的误分类损失以及延迟推荐所产生的学习损失,因此可认为正确推荐不产生推荐损失,即
,且延迟推荐损失相同
。
通过实验,可以得出
,取
,固定
得出项目推荐损失和延迟推荐数与误推荐数,本文将基于项目的三支决策推荐系统与基于项目的二支决策推荐系统所产生的损失对比试验如表9所示:
Table 9. Fixed
recommendation loss
表9. 固定
推荐损失
Table 10. Fixed λ P N = 0 .9 the number of error recommendations (errors) and delayed recommendations (delays) that result from Item recommendations based on three decisions
表10. 固定
时基于三支决策的项目推荐产生的误推荐(误)和延迟推荐(延迟)项目数
通过表9的对比试验可以看出,基于二支决策推荐系统所产生的损失远远高于三支决策推荐系统所产生的损失,通过三支决策推荐系统所产生的损失矩阵可以得出,当
,
时,推荐损失达到最小。表10数据可以得出,基于项目的三支决策推荐系统的误推荐项目数量和延迟推荐项目数量在
,
时,数量最少。因此本文将用此阈值为用户推荐项目。
4.4.2. 推荐精度对比
将提出的基于三支决策的推荐系统与传统的推荐系统进行准确度、召回率、F1和覆盖率的对比,在这里将传统基于项目的推荐系统简称为IT-CF-SN,将基于项目的二支决策推荐系统简称为IT-CF-ST,将基于用户的三支决策推荐系统简称为IT-CF-SH,将基于项目的三支决策推荐系统简称为IT-CF-SL,n表示近邻个数。
如图1所示,基于项目的三支决策推荐系统(IT-CF-SL)与传统基于项目的推荐系统(IT-CF-SN)、基于用户的三支决策推荐系统(IT-CF-SH),基于项目的二支决策推荐系统(IT-SF-ST)相比,基于项目的三支决策推荐系统的准确率高于传统推荐系统。从整体来看,提出的基于项目的三支决策推荐系统在推荐精度上具有明显优势。
(a)(b)(c)(d)
Figure 1. Recommended system algorithm comparison. (a) Accuracy; (b) Recall; (c) Coverage; (d) F1 value
图1. 推荐系统算法比较。(a) 精确度;(b) 召回率;(c) 覆盖率;(d) F1值
4.4.3. 推荐结果
本文拟给id为“1”的用户推荐电影,因篇幅限制,只为其推荐5部电影,结果如表11:
Table 11. Movie recommended by a user with id as “1”
表11. 为id为“1”的用户推荐的电影
5. 结论
基于项目的三支决策推荐系统与传统推荐系统、基于项目的二支决策推荐系统和基于用户的三支决策推荐系统相比,推荐精度更高,且基于项目的三支决策推荐系统能够将相似度高且受欢迎的项目推荐给用户。基于项目的三支决策推荐系统在提高推荐质量的同时,减少了误推荐的损失,从而降低了总的推荐损失,使用户的推荐体验更好。
由于各方面因素限制,本文只考虑了项目间相似度和项目的受欢迎程度,在进一步工作中将考虑项目的类别来进行三支决策的划分,讨论推荐结果的精确性,达到因人而异的推荐效果。
基金项目
国家自然科学基金资助项目(61772019,61603278)。
NOTES
*通讯作者。