基于矩阵分解的情景感知个性化推荐法研究

2019-01-03 02:00金欢
科技风 2019年35期
关键词:推荐系统

摘要:如今,情境感知推荐系统已成为推荐系统研究的主要研究领域之一。本文首先介绍了矩阵分解算法在个性化推荐中的应用,主要对比了PureSVD、FunkSVD和BiasSVDd三种算法优缺点;然后,介绍了情境预过滤、情境后过滤和情境建模三种情感知技术;最后,分析了基于矩阵分解的情境感知推荐算法的特点和优势。

关键词:矩阵分解;情境感知;推荐系统

推荐系统是通过在用户和项目之间建立二元关系,通过已有的选择过程或相似关系挖掘用户的兴趣点,从而给出个性化的推荐。传统的推荐算法主要分为基于内容的推荐算法和基于协同过滤的推荐算法。基于内容的推荐算法理论依据主要是信息检索和信息过滤,通过分析用户以往偏好的项目,提供内容特征与以往偏好项目相类似的推荐,该算法当新用户出现时存在冷启动的问题。基于协同过滤的推荐算法的思想源于“集体智慧”,算法通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。协同过滤算法同样也存在冷启动的问题,当没新用户数据时,无法给出较好的推荐。没有考虑情境的差异,比如不同根据季节的不同,给用户推荐与季节相适应的服饰。基于以上问题,研究人员提出了基于矩阵分解的情境感知推荐法。

1 矩阵分解算法在个性化推荐中的应用

矩阵分解的核心思想是将用户评分矩阵分解为低秩的矩阵,使其乘积尽可能接近原始评分矩阵,使得预测的矩阵与原始矩阵之间的误差平方最小。奇异值分解(Singular Value Decomposition,以下简称SVD)在机器学习领域得到了广泛的应用,因为它不仅可以用于降维算法中的特征分解,还能用于推荐算法。如果将m个用户和n个项目对应的评分看做一个矩阵M,本文将用矩阵分解来解决该问题。

1.1 PureSVD算法

PureSVD(传统的奇异值分解)在降维中的应用,将用户和项目对应的m×n矩阵M进行SVD分解,通过选择部分较大的奇异值进行降维分解为:

Mm×n=Um×k∑k×kVTk×n(1)

其中k是矩阵M中的奇异值的个数,一般会小于用户数和项目数。如果要预测第i个用户对第j个物品的评分mij,则只需要计算uTi∑vj即可。对于稀疏的矩阵,PureSVD采用的方法是对评分矩阵进行简单的补全,再用SVD分解并降维。

1.2 FunkSVD算法

FunkSVD是基于PureSVD计算效率问题提出的,PureSVD中矩阵分解为3个矩阵,而FuckSVD将矩阵分解为2个低秩的用户项目矩阵。

Mm×n=PTm×kQk×n(2)

对于某一个用户评分mij,使用FunkSVD进行矩阵分解,对应的表示为qTjpi,采用均方差做为损失函数,则期望(mijqTjpi)2尽可能小。如果考虑所有项目和样本的组合,则最小化如下公式。

∑i,j(mijqTjpi)2(3)

将公式(3)最小化,并求出极值对应的pi,qj,则将得到矩阵P和Q,对于任意矩阵M任意一个空白评分的位置,都可以通过qTjpi计算预测评分。在实际应用中,为了避免过度拟合观测数据,又提出了带有L2正则项的FunkSVD。

argminpi,qj∑i,j(mijqTjpi)2+λ(‖pi‖22+‖qj‖22)(4)

以上最优化函数可以通过梯度下降或随机梯度下降法来寻求最优解,进而用于推荐。

1.3 BiasSVD算法

继FuckSVD算法提出后,出现了很多基于FunkSVD算法的改进版,其中BiasSVD是其中较为主流的一种。该算法的提出基于如下假设:某些用户天生愿意给出好评,但又有某些要求比较严苛,给出评分较低;同时某些项目,一经推出便有其地位,某些受歡迎,某些被嫌弃。也就是说,对于一个推荐系统,用户存在某些属性与项目无关,项目也存在某些属性与用户无关,这也就是提出用户和项目偏置项的原因。BaisSVD推荐系统包括三个部分的偏置项:某些与用户项目无关的评分因素,用户的某些与项目无关的评分因素,称为用户偏置项;项目中某些与用户无关的评分因素,称为项目偏置项。

假设评分系统平均分为μ,第i个用户的用户偏置项为bi,而第j个项目的项目偏置项为bj,则加入了偏置项后的优化目标函数J(p,q)如公式(5)所示。

argminpi,qj∑i,j(mijμbibjqTjpi)2+λ(‖pi‖22+‖qj‖22+‖bi‖22+‖bj‖22)(5)

BiasSVD增加了对额外因素的考虑,因些在某些情景中比FunkSVD表现的好。

2 情景感知个性化推荐常见的技术

情境感知推荐系统(ContextAware Recommender Systems,CARS),主要研究如何根据已有的用户偏好,结合用户所处情况,过滤掉与当前情境无相关偏好,提高推荐精度和用户满意度,逐渐成为缓解“信息过载”的有效手段。根据情境在推荐生成过程中的作用,将推荐系统分为3类:情境预过滤、情境后过滤和情境建模。

2.1 情境预过滤

如图(a)所示,情境预过滤方法的基本思路是:在生成推荐结果前,使用当前所处的情境信息将无关的用户偏好数据过滤掉,从而构建与当前情境相关的推荐数据集;再使用传统推荐技术处理这些筛选后的数据以进行偏好预测,最后生成满足所处情境下的推荐结果。

情境实例的分类或粒度,是影响情境预过滤的重要因素。如果情境实例的分类过于粗糙,那么情境过滤后的推荐数据集不一定全部与当前情境相关,从而影响推荐的准确性;如果情境实例的分类过于精细,那么可能使得筛选后的数据集极度稀疏,也将影响推荐的准确性,而且某些情境过度精细划分的作用也不明显。

2.2 情境后过滤

如图(b)所示,情境后过滤方法的基本思路是:首先忽略情境因素,使用传统二维的推荐技术处理不含情境信息的推荐数据来预测潜在的用户偏好;然后根据当前情境过滤掉无关的推荐结果或调整TOPN排序列表。情境后过滤以可以分为:启发式方法与基于模型的方法,启发式方法重点关注如何发现所处情境中的用户偏好项目集合的共同属性特征,基于模型的方法则侧重于计算用户在特定情境下选择该项目的概率值。

情境预过滤/情境后过滤都是将“多维推荐”转化成“二维推荐”,能够使用传统推荐系统的成熟技术。但是,因为使用筛选后的相关数据生成推荐,降维后数据的完整性得不到保证。所以,情境预过滤/情境后过滤较适合于情境信息与用户偏好信息之间是松耦合关系的情形。

2.3 情境建模

如图(c)所示,情境建模的基本思路是:将情境信息融入推荐生成的整个过程,从而设计适合的算法、模型来处理多维度情境用户偏好,而非忽略情境信息的用户偏好。这种方法需要处理多维数据,是最为复杂的,同时也是最能有效挖掘用户、情境、项目三者间的关联关系的。因此,这种方法适用于情境和用户偏好间为紧耦合关系的情形。

情境建模可分为:基于启发式的方法和基于模型的方法。基于启发式的方法是使用具有直观意义的启发式方法,情境相关的多维数据的相似性是计算公式的重点和难点。基于模型的方法是使用基于层次的机器学习或数学统计等相关的模型,与前者相比,后者需要较长的时间来构建或更新预测模型,也需要调整大量的参数来优化,当用户偏好数据较少时有可能不能构建可靠的分数;但是,后者常常只需要存储远小于原始数据的模型,可在一定程度上降低数据的稀疏性,而且能利用相关模型的优点得到更好的推荐结果。

3 基于矩阵分解的情景感知个性化推荐

为更好的权衡模型复杂度和可用训练数据间的关系,研究人员提出了三种情境感知矩阵分解推荐模型,分别是:CAMFC、CAMFCI和CAMFCC。CAMFC假定每一个情境条件对用户的评分有统一的影响,与具体项目无关。CAMFCI假定每一个情境对第一个项目的评分有着不同的影响,该模型可以更好地预测评分。CAMFCC假定项目可以根据类别分组,并且每一个情境条件对同一组内所有项目的评分有着相同的影响。以上三种模型的评分预测公式可以用统一的公式表示。

r^uic1,…,ck=i+bu+∑kl=1Bicl+ITiUu(6)

假定训练数据集中共有n个项目,k个情境变量共有K个不同的取值。在CAMFCI中,每一个情境条件和项目i的均对应一个参数Bicl。这样在该模型中,参数Bicl的总数为Kn。与CAMFCI相比,CAMFCC较为粗糙。在CAMFCC中,每一个情境条件项目类别对应一个参数Bicl,如果项目i和项目j是同一类,则Bicl=Bjcl。如果训练数据集中项目分为t个不同的类,那么在CAMFCC模型中参数Bicl的个数就是Kt。在CAMFC中,每一个情境条件仅对应一个参数Bicl。

4 结语

推荐系统是目前解决“信息过载”问题的一种重要手段,它通过对用户兴趣偏好的研究,进行个性化计算,由系统发现用户的兴趣点,得出相应的推荐结果,提高推荐的精确性和用户的满意度。但是,传统的推荐系统未考虑用户或项目与所处情境的关联,使得推荐性能受到限制。将情境融入到推荐过程中,可以得出更为准确的评分和更符合用户需求的推荐,情境感知推荐系统已逐渐成为推荐系统研究的主流之一。

参考文献:

[1]王立才,孟祥武,张玉洁.上下文感知推荐系统[J].软件学院,2012,23(1).

[2]文俊浩,孙光辉,李顺.基于用户聚类和移动上下文的矩阵分解推荐算法研究[J].2018,45(4).

[3]馮鹏程.基于情境感知的个性化推荐算法的研究[D].2014.

[4]彭宏伟,靳远远,吕晓强,王晓玲.一种基于矩阵分解的上下文感知IPO推荐算法[J].2018,41.

基金项目:江西省教育厅科技项目(编号:GJJ161151)

作者简介:金欢(1985),女,硕士,副教授,研究方向为需求工程、软件工程。

猜你喜欢
推荐系统
数据挖掘在选课推荐中的研究
基于用户偏好的信任网络随机游走推荐模型
基于个性化的协同过滤图书推荐算法研究
个性化推荐系统关键算法探讨
浅谈Mahout在个性化推荐系统中的应用
关于协同过滤推荐算法的研究文献综述
一种基于自适应近邻选择的协同过滤推荐算法
UGC标签推荐系统的一种新的标签清理方法
网上商品推荐系统设计研究
基于Mahout分布式协同过滤推荐算法分析与实现