基于用户群、项目、模型的协同推荐服务研究
2018-12-23陈蕴博
陈蕴博
(山东省德州市第一中学,山东 德州 253023)
基于用户群、项目、模型的协同推荐服务研究
陈蕴博
(山东省德州市第一中学,山东 德州 253023)
协同推荐技术在信息资源检索与利用领域具有广泛的应用前景,但是,由于数据稀疏、冷启动等原因,导致现有的协同推荐技术个性化服务的水准不高。为了提高技术服务的高效性,提出了基于用户群、项目、模型多种方式的协同推荐服务的方法创新和技术改进,希望通过必要的技术阐释为业界人士的研究提供参考。
协同推荐技术;用户群;技术服务;信息资源
1 协同推荐服务的基本原理
协同推荐是一项极为重要的、被广泛研究的、具有极高应用价值的个性化推荐服务技术。它通过发现用户与使用用户之间、资源项目与受益项目之间存在的关系特征和关联模式,来向使用用户推荐具有兴趣取向的、有价值的资源或项目。协同推荐的认知基础是:①用户对资源的认同是可以按照兴趣分类的;②用户对各类资源的分析评判或访问行为内包含用户的兴趣和需求;③用户对新生资源的分析评价将与其兴趣相似用户的分析评价具有一致性。这3点构成了协同推荐的基础。一般情况下,协同推荐体系选择与使用用户有相同或相似兴趣的用户群作为实施对象,为此,如何明确用户兴趣的相似性以及如何选择使用用户群应是协同推荐服务技术的研究重点。
在一般性的协同推荐处理过程中,被推荐的资源称为项目或条目。在不同的应用领域,项目可以是文献(图书、期刊)、视频(电影、歌曲)或者是其他某商品,用户与项目相互之间的访问、评论、采购和下载等行为被解释为用户—项目评价矩阵,如图1所示。矩阵中所呈现的评价值可以是用户自主判断给出的显性评价,也可以是矩阵系统给出的用户行为的隐性评价[1]。这样,协同推荐行为被转化为如何从用户—项目评价矩阵中评议、挖掘和获取出有价值的特征模式和项目用于生成使用用户的活动内容推荐列表。
如图1所示,协同推荐的机理过程由输入评价、协同推荐算法和输出结果3部分组成,也就是用户输入评价信息、协同推荐引擎运行产生推荐预测评判、输出推荐预测结果3个步骤。一般来说,协同推荐引擎对用户来说是一个“黑盒”处理过程,推荐结果的处理程序对于用户是透明的。
获取使用用户的访问行为、用户对资源的兴趣等数据,例如用户对资源的阅览、下载、采购等交互行为,用户对资源属性或兴趣程度的评价等。用户访问、下载和评价资源的获得方式是显性的,是一个明确标引的过程。
分析和发现用户之间、项目之间的特征指数,例如相似性和关联度,将其视为协同推荐预测评价的基础。使用用户之间的相似程度的概率可以通过相似性计算方法或逻辑统计算式来预算使用用户的若干个最近相邻值,而发现用户的关联值则可以利用相似规则数据挖掘的方式得到[2],也可以通过使用用户给予资源的评价而计算出发现用户的相似性表达意向。根据用户的访问实时过程,相应产生和表现推荐列表。推荐列表有2种表现形式,即推荐和预测。推荐是提供给发现用户一个具有若干项最感兴趣的项目列表,也就是根据用户的兴趣爱好推荐最有可能吸引用户的若干个项目,按照推荐程度的强烈排序。预测是依据用户设定的一系列待评价项目,根据预测算法计算用户对系列项目的预测评分值,并进行预测值表现。
图1 用户—项目评价矩阵
协同推荐的特点是无需全面分析用户的内在属性,对用户无特殊的要求,能够及时处理非结构化的复杂对象。另外,协同推荐根据评价内容能够产生意想不到的效果,超出用户原本预测推荐的目的。协同推荐重点注重群体性用户的访问行为,与基于趋向内容的推荐技术不同,它预测评价和计算处理的是群体用户之间的访问行为或兴趣描述,而不是单个用户与资源的直线式交流。由于协同推荐是指,向群体性用户来推荐资源和预测评价的,因此,它完全可以为使用用户推荐出更为新鲜的项目和内容。
从理论上讲,协同推荐技术具有客观的明确性,在实践应用上具有可操作性。但是,通过实际运用,发现其存在一定的局限性,即为了获得令人满意的效果,必须建立在拥有足够数量的用户信息数据的基础上,这是很难做到的,所以,迫使协同推荐技术在应用上被约束、限制,例如在面向内容的文本信息处理和信息资源开放获取等方面还存在应用的空白。协同推荐面临的问题有:①内容量少的问题。在一些推荐系统中,用户所内含的信息量相当有限,即使在一些大系统,例如Amazon网站中,用户最多也就评价了一百万本书中的1%~2%.由于评价数据量少,寻找相似的用户群相当困难,导致推荐效果大大降低。②首先评价问题,也称为冷启动问题,包括新项目问题和新用户问题。如果一个新项目没有被用户所评价,这个项目肯定不会被推荐,推荐系统则就失去了原有的作用。同样,如果一个新用户没有评价推荐系统中的项目,则推荐系统不可能获知用户的兴趣指数,也就无法向用户评价、推荐。③扩展性问题。目前,大部分协同推荐预测计算算法的量值随着用户群数和项目数的增加而不断增加,对于百万级的数目,一般的算法遭遇到扩展性的问题。对于上述前2个问题,较为妥善的解决方案是,将协同推荐和基于趋向内容的兴趣资源推荐结合应用于推荐系统中。对于第3个问题,由于大多数预测算法可以离线实施后台计算,随着计算机运算能力的提高和运算方法的改进,可扩展性问题并非是特别严重的问题。
2 基于用户群的协同推荐服务
基于用户群的协同推荐,其核心思想是假如用户之间的检索行为具有一定程度上的相似性,即为相似行为的用户群,会实施相同或相似的选择。系统研究、分析用户对项目的兴趣评价,得出用户群之间的相似性,从而进一步进行预测、推荐。基于用户群的协同推荐使用统计的方法来查询和落实用户相近的邻居,如果用户的相邻邻居被找到,系统会运用不同的算法综合分析这些相似的评价,并依此为使用用户提供预测或对若干个评价项目进行推荐[3]。这种算法简捷明了,精确度相对比较高,目前,实际使用的协同推荐算法方式大多属于这种类型,如图2所示。
图2 基于用户群的协同推荐流程
对于给定的用户—项目评价矩阵,典型的基于用户群的协同推荐可以分为3个部分:①计算发现用户与使用用户之间的相似程度。当用户被指定推荐时,他们往往信任与他们有相似兴趣的用户。为此,要先得出发现用户与使用用户之间的相似度。②实施最相邻查询。依据发现用户与使用用户之间的相似度和所匹配的项目,明确发现用户的最近相邻用户群集合。③计算预测数值。将相邻用户的测评分值进行加权,作为使用用户的评分值。这样做的目的是为需要推荐服务的使用用户找寻具有相似度的最近邻居集合,即通过一个发现用户A,产生按照相似度大小排列的邻居集合N={N1,N2,…,Ni},A≠N,从N1到Ni,用户之间的相似度sim(A,Ni)从大到小排列。图3显示了协同推荐服务中用户邻居的形成过程:当计算发现用户A与使用用户之间的相似性时,图中以A为中心的K=5个最相邻用户被确定为邻居。在得到发现用户与各个使用用户之间的相似性数值以后,要确定应该选取多少个使用用户作为该发现用户的邻居来计算最终的预测值。一般情况下,有2种方法选取邻居数目:①提前设定一个相似性阈值,只有那些与发现用户之间相似值超过阈值的使用用户才能被视为邻居。在这种方法中,阈值高,则说明发现用户与邻居具有较好的相似性,但是满足条件的邻居数量会减少,导致很多预测不会产生;如果阈值过低,则超过阈值的邻居数目会增多,阈值的作用没有体现出来。②选择K个相似性较大的使用用户作为邻居,如果K值过大,那么,相似性小的邻居会影响到最终的预测结果;反之,如果K值过小,那么,一些使用用户的要求没有被考虑进去。
图3 用户“邻居”的形成过程
发现用户的最新邻居集合形成之后,可以依据若干个符合阈值要求的邻居集合对项目的评分来预测使用用户对各个项目的感兴趣程度。使用的预测公式为:
式(1)中:Wa,u为发现用户a与相邻的使用用户u的相似度;Ru为邻居u的平均评分值;k为一个规范化系数。
为了获得最相邻用户对项目的评分,需要运算发现用户与使用用户之间的相似度。运算用户之间相似度的方法主要有3种,即余弦相似性、相关相似性、修正的余弦相似性。在余弦相似性运算中,可以将用户对项目的评分视为n维项目立体空间上的向量,如果用户没有给项目评分,则评分值设为0.用户之间的相似性通过向量之间的余弦夹角度量。设定用户i、用户j在n维项目空间上的评分值分别表示为向量,那么,用户i与用户j之间的相似度sim(i,j)为:
式(2)中,分母用于平衡化,促使预测评分较多的用户在运算中保持与其他用户之间的平衡。在余弦相似性计算中,将用户没有给项目评分的分值定为0,这样能够提高运算效能,但是,在项目数量特别多且用户评价数据少的情况下,这样做会导致推荐程度的可信度降低。
设定用户i和用户j一同评价过的项目集合用Iij来表示,这样用户i与用户j之间的相似性sim(i,j)可以通过Pearson系数wi,j来衡量。Pearson系数用来衡量变量之间的平衡关系。用户i与用户j之间的相似性sim(i,j)为:
式(3)中:Ri,k和Rj,k分别为用户i和用户j对项目k的评分值;Ri和Rj分别为用户和用户在各自所有测评项目上的评分的平均值;K为用户i和用户j重合的项目数。
由于Pearson系数是从线性运算模型产生的,所以,它需要在满足一定的条件下才能使用,即预测评价值之间的关系是线性的,残差之间必须相互独立。
在余弦相似性计算中,没有考虑用户之间的测评尺度问题,例如用户甲给其最感兴趣的项目评分是4,而不是5,给印象最差的项目评分是1而不是2;用户乙给其最感兴趣的项目评分是5,印象最差项目评分是2.如果采取余弦相似性方法运算,2个用户的评价差异很大。修正的余弦相似性计算方法是通过减去用户对项目的平均评分值来改善以上缺陷的。设定用户i和用户j一同评议过的项目集合为Iij,Ii和Ij分别表示用户i和用户j评议过的项目集合,则用户i与用户j之间的相似性sim(i,j)为:
3 基于项目的协同推荐服务
基于项目的协同推荐服务,其基本点是项目之间有某种程度的关联性或相似性。通过用户对项目的评价分析,得出项目之间的相似性,或者发现项目之间的关联性,从而进行合理的推荐。项目之间的关联性分析归为基于关联挖掘的方法进行处理,本文将在基于模型的协同推荐技术中进行讨论。基于项目的协同推荐的处理方法是先依据用户—项目矩阵求出项目之间存在的关系,然后依据这些关系推出推荐给用户的结果,推荐给用户的结果通常是通过发现用户感兴趣的项目来完成的。与基于用户群的协同推荐技术一样,基于项目的协同推荐技术的关键是计算项目之间的相似度,从而选择相似的项目,如图4所示。计算项目i与项目j之间相似度的出发点是,先分离对项目进行过评价的用户群,然后通过相似度计算技术运算出项目之间的相似度。项目之间的相似度计算公式如前所述,主要有余弦相似性、相关相似性和修正的余弦相似性。
图4 基于用户评价的项目相似度处理示意图
通过相似度的计算方式明确了那些最相似的项目之后,接着就是根据发现用户的评价进行项目预测计算分值。Sarwar提出了2种预测计算方法,即加权和方法、回归方法。加权和方法是通过用户u对与项目i具有相似性的项目的评价之和来计算用户u对项目i的预期。每一个评价结果Ri均运用项目i与项目j之间的相似度来进行加权。这种预测值Pu,i可表示为:
回归方法与加权和方法相似,不过回归方法不是直接利用项目相似性的评价,而是根据回归模型利用评价的近似值。在实际情况中,2个评价向量可能是欧几里德距离,相离比较远,两者之间的相似度比较高。在这种情况下,使用余弦函数或系数方式计算的相似度会产生一定的误导。这样使用所谓的相似项目的原始评价会导致较大差错的预测。回归的根本点还是运用与加权和方法相同的公式,但是,这种方法不使用相似项目N的原始评价值Ru,n,而是依据线性回归模型使用它们的近似值R’u,n.用Ri和Rn来表示发现项目i向量和使用项目n向量,则线性回归方法可以表示为:
式(6)中:参数α和β是由2个评价向量同时决定的;ε为回归方法的计算误差。
以上讨论的基于项目的协同推荐的指导思想是,根据用户—项目评分来寻找和衡量与某一项目相似的项目集合。实际上,基于项目的协同推荐完全可以从项目之间被访问的关联程度大小出发来寻找具有最大相关程度的项目集合。在这种情况下,就可以使用数据挖掘技术中的关联规则来探寻项目之间的关联性。
4 基于模型的协同推荐服务
基于模型的协同推荐服务方法,是将用户的示例记录、项目的属性分析等,运用统计方法或机器学习方法挖掘数据,进而建立与用户群或项目集合相关的特征模型,从而利用模型来生产推荐。基于模型的协同推荐大多采用离线预处理的方式进行运算,这样可以加快推荐反馈的时间。当前,运用于协同推荐中模型建立的方法很多,主要有聚类方法、贝叶斯网络方法和关联规则方法等。
4.1 聚类方法
聚类方法是将具有相似兴趣的用户聚类成组,进行聚类分析后,对当前用户的推荐可以通过与当前用户同类的其他用户的选择或观点进行平均化处理来实现。聚类方法推荐结果的个性化稍差一些,但是,聚类一旦形成,最终的结果会很好,这是因为此时要分析的组数要少得多[4]。聚类方法可以被当作最近邻法中的第一步来缩小候选集。虽然将整体分为多个类会影响精确度或推荐结果,但聚类法是可以在精确度与推荐效率之间权衡的。由于聚类操作可以在离线状态下进行,所以,在线的推荐算法产生的推荐效率还是比较高的。Q.L.Li等运用基于项目的最邻近方法,使用K-means算法将项目聚类,选择发现用户已打分并且与发现用户在同一聚类的项目,将用户邻居限制在与目标项目同一聚类的项目中,分别计算项目之间的相似度,依据最近相邻法求出使用用户对项目的评分预测值。Rectree与这种方法相类似,它是基于用户的方法,先把用户群进行聚类,择取同一聚类的用户群作为聚类邻居,再进一步从聚类中明确某一用户的邻居。Ungar等提出了将用户、项目分别聚类的计算方法,通过数据样本来训练模型。
4.2 贝叶斯网络方法
根据概率论原理,协同推荐是让人们对一个用户有明确的认识,用来运算预测评分的期望值。假定预测评分是从0到m的整数值,则概率表达式为:
其中,概率表达式为确定的用户对一些项目的评分,根据式(7)计算出该用户对项目j评分为l的概率值。贝叶斯网络技术方法利用训练集构建相应的模型,模型可以通过离线运行得到,通过训练集得到的模型比较小,预测评分结果的精确度可以与最相邻方法媲美,因此,对模型的应用很快。贝叶斯网络方法比较适用于用户的兴趣变化较慢的情况。
Pennock等人在协同推荐过程中将一个用户看作一个聚类,n个用户就有n个聚类,依据用户给一些项目的评分,通过贝叶斯概率表达公式计算出一个用户属于n个聚类的概率,即该用户与其他用户属于相同个性类型的概率,然后求出该用户最感兴趣的项目的概率。这种方法既保持了传统的相似性计量方法的优点,又涵盖有概率意义,完全可以向用户解释推荐的结果。
4.3 关联规则方法
此方法在零售业被广泛应用,通过关联规则挖掘可以发现不同类别商品在销售过程中的相关性,并在个性化的协同推荐服务中得到应用和研究。用于协同推荐服务的关联规则方法最早是由Fu Budizk和Hammond提出的,他们在个性化Web网站应用研究中,运用Apriori算法通过挖掘用户浏览历史记录的关联性来推荐。算法先从聚集树发现匹配用户当前访问操作路径的关联规则,然后再根据推荐因子的大小确定推荐项,推荐因子定义为关联规则的置信度乘以距离因子。由于关联规则模型的生成可以离线进行,因此,可以保证推荐系统的实时性。Lin等对普通的关联规则挖掘方法进行扩展后将其运用于协同推荐中。在他们的算法中,关联规则的置信度定义为用户或者项目之间的相关系数,支持度则定义为该相关系数的显著性。关联规则可以与用户相关,也可以与项目相关。与用户相关的关联规则可以表示为:80%的用户A和用户B都感兴趣的项目会被使用用户所喜欢,25%的所有项目会被这3个用户同时感兴趣。具体表示公式为:{用户A感兴趣}AND{用户B感兴趣}=>{使用用户感兴趣}(C=80%,S=25%).
为每条关联规则给定一个分数,该分数为此规则的置信度与支持度的乘积。对于每一个项目,与此项目关联的分数为此项目相关的所有满足最小支持度和置信度的关联规则的分数之和。如果与项目关联的分数大于设定的阈值,则将此项目推荐给使用用户。与项目相关的关联规则可以表示为:80%同时感兴趣项目1和项目2的用户会感兴趣目标项目,25%的用户会同时对3个项目感兴趣,具体表示公式为:{感兴趣项目1}AND{感兴趣项目2}=>{感兴趣目标用户}(C=80%,S=25%).如果得到的关联规则的支持度大于自动调整的阈值,则将该目标项目推荐给使用用户。
Mobasher等将Web使用挖掘应用于协同推荐,从用户的访问数据中发现有用的模式,例如关联规则、序列模式、用户会话聚类等,然后从这些模式中挖掘出高质量的、有用的“总体使用概貌”。比如,提出通过对服务器日志进行事物聚类和关联规则超图分割聚类获取用户的共同浏览特征,再扫描所有的数据集,产生个性化的推荐。O’Sullivan等将协同过滤技术与基于推理的方法相结合,用于提高PTV(推荐电视节目的在线系统)的性能,通过关联规则挖掘方法抽取项目之间的关系,将得到的关联规则的置信度作为项目之间的相似度,从而得到一个相似度矩阵,然后利用得到的相似度矩阵来计算用户之间的相似度,这样会减少系统的稀疏性。
[1]李聪,梁昌勇.基于属性值偏好矩阵的协同过滤推荐算法[J].情报学报,2009,27(6):884-890.
[2]Zhang M L,Zhou Z H.Multi-instance Clustering with Applications to Multi-instance Prediction[J].Applied Intelligence,2009,31(1):47-48.
[3]李春,朱珍民.基于邻居决策的协同过滤推荐算法[J].计算机工程,2010,36(13):34-36.
[4]郑丹,王潜平.K-means初始聚类中心的选择算法[J].计算机应用,2012,32(8):2186-2188.
TP18
A
10.15913/j.cnki.kjycx.2018.01.019
2095-6835(2018)01-0019-05
〔编辑:白洁〕