APP下载

基于用户项目属性偏好的协同过滤推荐算法

2018-04-13吕成戍

计算机技术与发展 2018年4期
关键词:相似性矩阵协同

吕成戍

(东北财经大学 管理科学与工程学院,辽宁 大连 116025)

0 引 言

协同过滤推荐算法(collaborative filtering recommendation algorithm,CF)是目前发展最为完善、应用最为广泛的推荐算法之一[1-3],已被很多电子商务公司采用,出现了大量应用型推荐系统实例,如Amazon、GroupLens、Netflix和Facebook等。然而,传统的协同过滤推荐算法存在一个弊端:随着推荐系统规模的扩大,用户评分数据出现极端稀疏性[4-5],大量用户之间缺乏共同评分项,导致传统的协同过滤推荐算法无法准确计算用户相似性,大幅降低了推荐系统的推荐精度。并且由于协同过滤系统的开放性以及用户的参与性,某些不良商家对推荐系统实施“托攻击(shilling attacks)”[6-7],更改推荐结果,获得非法收益,严重影响了给推荐系统的鲁棒性。

围绕数据稀疏性问题,相关学者开展了一系列的研究工作。彭石等[8]采用预先填充项目评分的方法提高推荐质量,但是推荐结果过度依赖数据填充效果;杨阳等[9]利用矩阵奇异值分解技术处理用户评分矩阵稀疏问题,提高了推荐系统的准确性,但是在实际的应用环境中很难准确确定矩阵初值;李聪等[10]提出了基于属性值偏好矩阵的协同过滤推荐算法(collaborative filtering recommendation algorithm based on attributes-value preference matrix,CF-APM),将稀疏的用户-项目评分矩阵转换为相对稠密的项目属性值矩阵,从而解决数据稀疏性问题,但是当系统面对托攻击时,该方法的效果并不理想。

另一方面,相关学者在推荐算法运行之前采用托攻击检测技术删除用户评分矩阵中的攻击概貌,从而提高推荐算法的鲁棒性。Chirita等[11]对推荐系统的托攻击检测问题进行了探索,根据用户概貌的统计特征检测攻击用户和正常用户之间的差异,该方法简单易行,但是在检测过程中指标阈值的设置对检测精度的影响较大。随后,Chad A.Williams[12]等进一步分析了攻击概貌的统计特征,并且将支持向量机(SVM)算法引入托攻击检测领域,针对不同的攻击模型特征选择检测指标,与Chirita等[11]提出的算法相比获得了更优的检测性能,但是该检测模型仅对某些已知的标准托攻击有效(例如随机攻击、流行攻击和均值攻击等),无法检测实际应用环境中未知类型的混合攻击,适用范围有限,制约了托攻击检测技术的实用化程度。

为了解决上述问题,文中提出了一种基于用户项目属性偏好的鲁棒协同过滤推荐算法(robust collaborative filtering recommendation algorithm based on user preference of item attributes,RCF-UPIA)。用户项目属性偏好的作用有两个,一是利用用户共同的项目属性偏好深层次挖掘用户的兴趣特征,在用户共同评分项匮乏的情况下也可以根据相同的项目属性偏好度量用户相似性,缓解数据稀疏性问题;二是根据标准用户项目属性偏好检测最近邻集合中的攻击概貌,从而将其排除在目标用户最近邻集合之外,消除攻击概貌对评分预测的不良影响。最后通过实验对该方法的有效性进行验证。

1 基于用户项目属性偏好的鲁棒协同过滤推荐算法

1.1 基本思路

在实际应用中,用户会因为对商品的某些属性感兴趣而购买该商品或者对该商品给予好评,这种购买或评价行为代表了用户的兴趣偏爱。以图书推荐系统为例,用户可能出于对作者的喜爱而购买某本书或者对其给予较高评价。因此,推荐算法在计算用户相似性时,可以考虑加入用户之间的项目属性偏好信息以丰富用户相似性的度量途径,减少数据稀疏性对推荐精度的负面影响。

此外,与正常用户的购买行为不同,攻击用户对商品的选择是随机的,无法体现出商品属性之间的内在联系。因此,在项目属性偏好方面,攻击用户与正常用户具有明显的差异。而且项目的属性信息一般都记录在商品数据库的二维表中,攻击用户无法获得相关数据,这就增加了攻击用户实施托攻击的难度。因此,可以根据项目属性语义设计独立于攻击模型的具有普适性的托攻击过滤模块,根据某一用户偏好数据是否符合正常用户项目属性偏好形式判断其是否是攻击者。

鉴于上述分析,对传统的协同过滤推荐算法进行改进,算法的基本流程如图1所示。首先,根据项目属性偏好优化用户相似性度量方法;然后,在推荐算法中植入项目属性偏好过滤模块,过滤最近邻集合中的攻击概貌;最后,采用过滤后的最近邻集合预测目标用户对未评分项目的评分,从而完成商品推荐。

图1 算法流程

具体地,RCF-UPIA算法主要包含4个步骤:挖掘用户项目属性偏好;计算用户综合相似性;过滤最近邻集合中的攻击概貌;预测用户评分。

1.2 挖掘用户项目属性偏好

推荐系统中通常包括用户信息表、项目信息表和用户评分表。整理项目信息表可以获得项目属性矩阵Attr。设有n个评分的项目,选择k个属性描述每个项目,即{Attr1,Attr2,…,Attrk}。若项目i具有属性k,则Attri,k的投影值为1,否则为0。项目属性矩阵Attr如表1所示。

表1 项目属性矩阵Attr

为便于后续算法描述,做如下定义:

定义1:项目属性偏好阈值φ。设N代表用户U的评分项目数,NAttri代表NAttri个项目具有属性Attri,NAttrj代表有NAttrj个项目具有属性Attrj。对于指定的φ,如果NAttri/N≥φ且NAttrj/N≥φ,则AttriAttrj为一个候选项目属性偏好组合。如果γ个用户均符合这个组合(γ为最小用户数),则确定AttriAttrj为一个项目属性偏好组合。

定义2:少数类项目属性偏好阈值σ。对于包含项目数量较少的项目属性,由于在用户已评项目中占的比例较少,通常会小于项目属性偏好组合阈值而被排除在标准项目属性偏好组合之外。但是在实际应用环境中,如果用户对与某个属性相关的大多数项目均进行了评分,则表明用户对这个属性具有偏好。因此,设置阈值σ,当用户U对具有项目属性Attri的NAttri个NAttri进行了评分,且NAttri/|Attri|≥σ(|Attri|表示具有项目属性Attri的项目总数),则Attri为一个项目属性偏好组合。

根据定义1和定义2,可以挖掘出用户集合U={U1,U2,…,Um}中每个用户的项目属性偏好,如果某个项目属性偏好的用户数量大于最小用户数γ,则该项目属性偏好称为标准用户项目属性偏好。具体算法描述如下:

算法1:挖掘用户项目属性偏好。

输入:推荐系统评分矩阵Rm×n=[R1,R2,…,Rm]T,用户项目属性偏好阈值φ,少数类项目属性偏好阈值σ,最小用户数γ

输出:用户项目属性偏好集合IAC

步骤1:整理推荐系统中的项目信息表,得到项目属性矩阵Attr。

步骤2:对于项目集合I={I1,I2,…,In}中的每个项目Ii,均赋予对应的项目属性号。

步骤3:扫描用户-项目矩阵Rm×n=[R1,R2,…,Rm]T,对用户Ui的评分向量ui=[Ri1,Ri2,…,Rin]T,统计各属性的评分数目Nui={NAtt1,NAtt2,…,NAttk}。

(1)如果NAtti/N≥φ,且Atti不在候选项目属性偏好集合IACui中,则将项目属性标号Atti加入到集合IACui中并计数;如果NAtti/N≥φ,且Atti已在IACui中,则只计数。

(2)如果NAttj/|Attj|≥σ,且Attj不在候选项目属性偏好集合IACui中,则将项目属性标号Attj加入到集合IACui中并计数;如果NAttj/|Attj|≥σ,且Attj已在IACui中,则只计数。

步骤4:对候选项目属性偏好集合IAC={IACu1∪IACu2∪…∪IACum},累计具有相同项目属性偏好的用户数量,删除小于最小用户数γ的项目属性偏好。

利用上述算法得到用户项目属性偏好集合IAC,将IAC作为推荐系统中正常用户的项目属性偏好标准。由于用户项目属性偏好的挖掘可以在线下完成,因此不会影响推荐系统的工作效率。

1.3 计算用户综合相似性

对于某个用户,可以将其已评价过的所有项目投影到相应属性上,以此衡量该用户对不同属性的偏好。用户-项目属性关注矩阵UAm×t是一个m×t阶矩阵,m表示m个用户,t表示t个具有代表性的项目属性描述。若用户Ui评价过的项目具有属性Aj,则UAi,j的投影值为1,否则为0。如表2所示,UAm×t是一个0-1矩阵。

表2 用户-项目属性偏好矩阵UA

设向量UAi={UAi1,UAi2,…,UAik}和向量UAj={UAj1,UAj2,…,UAjk}表示用户Ui和用户Uj在用户-项目属性偏好矩阵UA中对应的投影值,那么在项目属性偏好方面,用户Ui和用户Uj相似性计算公式为:

(1)

由式(1)可知,用户Ui和用户Uj共同偏好的项目属性越多,用户Ui和用户Uj之间的相似性越大。将传统的基于用户评分的用户相似性记为simr(i,j),则结合项目属性偏好的用户相似性度量为simr(i,j)与simatt(i,j)的加权组合,即

(2)

通过式(2)计算用户综合相似性,可以在用户共同评分项匮乏的情况下,获得更为准确的目标用户最近邻集合。

1.4 过滤最近邻集合中的攻击概貌

基于用户的协同过滤算法对托攻击高度敏感,少量的攻击概貌就有可能会改变推荐结果[13]。攻击者利用这个漏洞,通过模拟用户评分数据的方式提高自身与真实用户的相似度,增加攻击概貌在最近邻中出现的概率,进而影响推荐系统对目标用户的推荐结果。为降低算法对托攻击的敏感程度,文中将用户项目属性偏好过滤模块植入推荐算法中,滤除最近邻中的攻击概貌,从而提高推荐算法的鲁棒性。

算法2:过滤最近邻集合中的攻击概貌。

输入:目标用户Uk的最近邻集合Uknei,标准用户项目属性偏好集合IAC

步骤1:对于最近邻集合Uknei中的每一个用户概貌,使用算法1的步骤1~3挖掘最近邻用户的项目属性偏好组合;

步骤2:从Uknei中寻找用户U*,并且满足条件IACu*⊄IAC;

步骤3:若U*不存在,则终止执行,返回Uknei;否则继续执行;

1.5 预测用户评分

(3)

得到用户预测评分PUk,i后,将其从大到小排列,并取Top-N个项目组成推荐集Irec={i1,i2,…,iN},从而完成对目标用户Uk的推荐。

2 实验与分析

实验数据来自明尼苏达大学GroupLens研究小组通过MovieLens网站(http://movielens.umn.edu)收集的MovieLens100K数据集[14],该数据集包含了943位用户对1 682部电影的100 000条1~5的评分数据,每位用户至少对20部电影进行了评分。从MovieLens数据集的电影题材文件u.gere中获取每个电影的题材,u.gere包括Musical(音乐片)、War(战争片)、Action(动作片)、Crime(犯罪片)、Adventure(冒险片)、Children’s(儿童片)等19种项目的特征属性。

为确保数据比较的合理性,实验相关的模型参数通过交叉验证方式获得,项目属性偏好组合阈值φ=0.4,少数类项目属性偏好阈值σ= 0.3,最小用户数γ=12。

2.1 推荐精度比较

为了评价算法的推荐精度,将文中提出的RCF-UPIA算法与文献[10]提出的CF-APM算法以及CF算法进行了实验对比,选取平均绝对偏差(mean absolute error,MAE)作为测评指标,MAE值越小,算法的推荐精度越高。在不同个数的最近邻居集下,比较三种算法的推荐精度,实验结果如图2所示。

图2 不同最近邻数据集下推荐精度的对比

从图2分析可知,RCF-UPIA算法和CF-APM算法的MAE值均小于CF算法。与CF算法相比,CF-APM算法的MAE值降低了7.41%,RCF-UPIA算法的MAE值降低了16.17%,说明将用户项目属性偏好引入到用户相似度的计算过程,可以使缺乏共同评分项目的用户由于具有某些相似的项目属性偏好而成为最近邻,从而提高用户相似性的计算精度,减少数据稀疏问题对推荐质量的不良影响。此外,值得注意的是,RCF-UPIA算法的MAE值小于CF-APM算法,与CF-APM算法相比RCF-UPIA算法的MAE值降低了10.72%,这是由于文献[10]单纯通过项目属性值确定用户相似性,但是在实际应用中,尽管用户对项目的评价很高,用户也可能仅仅对评价项目赋含的某些属性感兴趣,而不是喜好全部属性。因此,这种仅依靠项目属性值计算用户相似性的方法具有一定的片面性。而文中方法从用户评分和用户项目属性偏好两个角度深入挖掘用户之间的相似性,融合了两者的优势,从而提高了最近邻居项目的搜寻准确度,因此获得了更优的推荐效果。

2.2 抗攻击能力比较

为了评价算法的抗攻击能力,向MovieLens100K数据集中注入混合攻击数据(随机攻击、均值攻击和流行攻击的攻击概貌个数各占1/3)。实验中采用交叉验证方式确定选取邻居用户的个数为35,验证在攻击规模(2%,5%,10%)和填充规模(3%,6%,9%,12%,15%)实验配置下推荐算法的性能,并将RCF-UPIA算法与CF-APM算法、CF算法,文献[10]提出的基于SVM的托攻击检测模型和CF相结合的算法(简称SVM-CF算法)进行对比实验。选取预测偏差(prediction shift,PS)作为测评指标,四种推荐算法的对比结果如图3~5所示。

图3 2%攻击规模下预测偏差的对比

图4 5%攻击规模下预测偏差的对比

图5 10%攻击规模下预测偏差的对比

从图3~5可以看出,在混合攻击下RCF-UPIA算法和SVM-CF算法的预测偏差值要低于CF-APM算法和CF算法。与CF-APM算法相比,RCF-UPIA算法的预测偏差降低了38.2%,SVM-CF算法的预测偏差降低了22.4%;与CF算法相比,RCF-UPIA算法的预测偏差降低了42.3%,SVM-CF算法的预测偏差降低了27.6%。这表明CF-APM算法和CF算法由于不具备攻击防御能力,推荐系统的鲁棒性无法得到有效保障;而文中的RCF-UPIA算法和SVM-CF算法考虑了托攻击对推荐系统的影响,滤除了攻击数据,因此表现出了良好的鲁棒性。另外,在同一填充规模和攻击规模下,RCF-UPIA算法获得了比SVM-CF算法更小的预测偏差值,这是由于文献[10]提出的基于SVM的托攻击检测模型只能检测某一种攻击模型所产生的攻击,无法检测包含多种攻击模型的混合攻击,在滤除攻击概貌的同时,不可避免地误删了一定量的真实用户概貌,这必然会对鲁棒性产生负面影响。而文中的RCF-UPIA算法从分析项目的语义入手,针对攻击数据中的随机性,提出了独立于攻击模型的具有普适性的攻击检测算法,能够准确识别并滤除目标用户最近邻中的大部分混合攻击,从而获得了最佳的鲁棒性。

3 结束语

传统的协同过滤推荐算法受到数据稀疏性和托攻击问题的制约,对此将用户项目属性偏好引入到推荐算法中,使得推荐系统在用户共同评分项匮乏的情况下,也能根据用户项目属性偏好计算用户相似性,缓解了评分数据稀疏性,并通过分析用户项目属性偏好过滤目标用户最近邻集合中的攻击概貌,从而削弱攻击者对目标项评分的篡改程度。实验结果表明,该方法能提高算法的推荐精度,具有较好的抗攻击能力。

参考文献:

[1] 于洪涛,周倩楠,张付志.基于项目流行度和新颖度分类特征的托攻击检测算法[J].工程科学与技术,2017,49(1):176-183.

[2] 李文涛,高 旻,李 华,等.一种基于流行度分类特征的托攻击检测算法[J].自动化学报,2015,41(9):1563-1576.

[3] 张 靖,何发镁,邱 云.个性化推荐系统描述文件攻击检测方法[J].电子科技大学学报,2011,40(2):250-254.

[4] 李 聪,骆志刚,石金龙.一种探测推荐系统托攻击的无监督算法[J].自动化学报,2011,37(2):160-167.

[5] ZHENG V W,ZHENG Y,XIE X,et al.Towards mobile intelligence:learning from GPS history data for collaborative recommendation[J].Artificial Intelligence,2012,184-185:17-37.

[6] SEMINARIO C E, WILSON D C. Robustness and accuracy tradeoffs for recommender systems under attack[C]//Proceedings of the 25th international Florida artificial intelligence research society conference.[s.l.]:[s.n.],2012:86-91.

[7] BURKE R,O’MAHONY M P,HURLEY N J.Robust collaborative recommendation[M].New York:Springer,2011:805-835.

[8] 彭 石,周志彬,王国军.基于评分矩阵预填充的协同过滤算法[J].计算机工程,2013,39(1):175-178.

[9] 杨 阳,向 阳,熊 磊.基于矩阵分解与用户近邻模型的协同过滤推荐算法[J].计算机应用,2012,32(2):395-398.

[10] 李 聪,梁昌勇.基于属性值偏好矩阵的协同过滤推荐算法[J].情报学报,2008,27(6):884-890.

[11] CHIRITA P A,NEJDL W,ZAMFIR C.Preventing shilling attacks in online recommender systems[C]//Proceedings of the 7th annual ACM international workshop on Web information

and data management.New York,NY,USA:ACM,2005:67-74.

[12] WILLIAMS C,MOBASHER B,BURKE R.Defending recommender systems:detection of profile injection attacks[J].Service Oriented Computing and Applications,2007,1(3):157-170.

[13] ZHANG F,ZHOU Q.A meta-learning-based approach for detecting profile injection attacks in collaborative recommender systems[J].Journal of Computers,2012,7(1):226-234.

[14] MILLER B N,ALBERT I,LAM S K,et al.MovieLens unplugged:experiences with an occasionally connected recommender system[C]//Proceedings of the international conference on intelligent user interfaces.New York,NY,USA:ACM,2003:263-266.

猜你喜欢

相似性矩阵协同
输入受限下多无人机三维协同路径跟踪控制
家校社协同育人 共赢美好未来
浅析当代中西方绘画的相似性
“四化”协同才有出路
多项式理论在矩阵求逆中的应用
京津冀协同发展
12个毫无违和感的奇妙动物组合
基于隐喻相似性研究[血]的惯用句
矩阵
矩阵