基于综合兴趣度的协同过滤推荐算法

jopen 8年前

1 概述

电子商务推荐系统最大的优点在于它能收集用户的兴趣资料和个人信息,根据用户兴趣偏好主动为用户做出个性化推荐。推荐技术指的是如何找出用户感兴趣的商品并列出推荐清单,在用户信息获取差别不大的情况下,推荐技术成为决定一个推荐系统性能的关键,其中推荐算法是推荐技术的核心[1]。

协同过滤技术是实际应用中使用最广泛的推荐技术,包括Amazon.com 在内许多网上书店都在使用协同过滤技术。协同过滤是一种基于用户间关联性的推荐算法,该推荐方法将购买习惯或兴趣相同的用户归类在同一个群体中,同群体内的用户彼此之间可以分享信息,互相推荐商品。应用协同过滤技术的著名的推荐系统包括GroupLens/NetPerceptions[2], Ringo/Firefly[3], Tapestry[4]等。协同过滤技术存在的不足主要表现为最近邻居的准确性问题,即在客户对商品评分数据比较少的时候,单纯地使用客户的注册兴趣信息和评分数据难以准确地确定最近邻居,从而导致推荐质量降低,这种问题是协同过滤技术本身无法克服的,需要对其进行改进。

本文针对协同过滤算法中的最近邻居判断准确性问题,综合显性兴趣度、隐形兴趣度和预测兴趣度3 种用户兴趣指标提出了综合兴趣度的概念,并将这种基于综合兴趣度的协同过滤方法应用于一种图书推荐系统中。实验结果表明,该方法提高了计算用户最近邻居的准确性,进而对推荐系统的推荐质量起到了明显的优化作用。

2 基于综合兴趣度的协同过滤方法

协同过滤方法的关键在于确定用户的最近邻居,确定最近邻居的基础是计算用户之间的相似性,兴趣度是计算用户相似性的重要指标。一般来说,用户相似性计算方法包括余弦相似性、修正的余弦相似性、相关相似性等[5]。传统的兴趣度计算方法主要考虑用户提供的注册信息和显性商品评分,即显性兴趣度,由于显性兴趣不能完整地体现用户真实兴趣,因此上述3 种方法在单纯采用显性兴趣度计算用户相似性方面均存在一定的缺陷[6]。采用余弦相似性度量时,对于未评分商品的兴趣评分都设为0,即兴趣度相同,但事实上用户对未评商品类的兴趣度不可能完全相同。修正的余弦相似性采取了对未评分项目设置平均评分值的改良措施,但仍未有效解决问题。

相关相似性度量仅对都有评分的项目进行度量,这在有共同评分项目较多的情况下较为准确,若在共同评分项目较少时,则偏差可能较大。

在心理学中,人的兴趣包括主观的表述、客观的描述及基于知识和经验有可能发生的兴趣预期。具体到推荐系统中,主观的兴趣表述可以理解为用户在兴趣调查表中主动提供本人的兴趣倾向,这种表述相对固定,属于显性兴趣度。用户的浏览行为反映了用户的实际需要,浏览的行为不断变动往往表示原有兴趣的调整,这是用户兴趣的客观描述,属于隐性兴趣度。

在用户的未评分项目中,用户未来的评分可通过分析项目的特性和用户的兴趣规律进行预测,这是根据已有资料对用户兴趣的合理预期,属于预测兴趣度。一些学者在研究中提到了利用用户浏览行为计算用户隐性兴趣度[7]或用商品间的关联信息预测用户对某些商品的评分情况[8]的思想,但这些方法仅考虑了用户兴趣中的一部分,并没有完整地描述用户兴趣。

因此,本文提出了结合显性兴趣度、隐性兴趣度(统称为已有兴趣度)和预测兴趣度的综合兴趣度的概念,综合兴趣度能使用户间的相似性度量更为准确,更完整地反映用户的兴趣倾向。基于综合兴趣度的协同过滤方法包括以下步骤:

  • 获取用户对商品的兴趣评分,结合对用户浏览行为的分析得到已有兴趣度;
    </li>
  • 结合已有兴趣度和预测兴趣度,分析用户之间兴趣的相似程度,选取一群与用户有相近兴趣的最近邻居;
  • 从最近邻居感兴趣的商品中,预测用户对某一商品的喜好,最终产生推荐结果。
  • 2.1 已有兴趣度的获取

    很多早期的协同过滤系统往往只采用显性兴趣度产生推荐,显性评分的信息一般较为准确,但由于用户注册时一般填写的项目不多,用户有共同显性评分的项目更为稀少,若单独以此进行用户相似程度的比较,误差较大,因此需要综合隐性评分,提高用户间相似程度判定的准确性。已有兴趣度的获取包括显性兴趣度获取和隐性兴趣度获取2 部分。

    显性兴趣度来源于用户的显式评分,需要用户有意识地表达自己对商品信息的认同程度。一般的协同过滤推荐方法常用整数值 (如1~9 等级)来表示喜欢的不同程度,本算法以规范化成0~1 的兴趣度表示。设Re(i,j)为用户i 对全部n 个商品类中的商品类j 的显性兴趣度,1 表示全部显性兴趣,则有:

    隐性兴趣度来源于用户对商品的浏览行为信息。在用户-商品矩阵中,评分数据为用户浏览过该商品的次数,0 表示尚未发生兴趣,次数越多则兴趣越高。隐性兴趣度的获取方法较为简单,可从用户的浏览记录库中得到隐性兴趣度。对于某个商品类的隐性兴趣评分,可用用户浏览的该商品类在其整个浏览记录中的比例表示。设Ri(i,j)表示用户i 对全部n个商品类中的类j 的隐性兴趣度,1 表示全部隐性兴趣,则有:

    通过上述的方法得到显性兴趣度和隐性兴趣度后,将两者结合,形成用户的已有兴趣度,以线性关系结合这2 个兴趣度,得到用户i 对商品类j 的已有兴趣度:

    其中,α 为显性兴趣度的比重参数,α 取值越大则显性兴趣度越为重要;m 表示在浏览记录数据库中该用户浏览商品的总数。

    2.2 综合兴趣度的获取与最近邻居的形成

    在获取综合兴趣度之前,首先必须获得预测兴趣度,本文利用商品的属性分类关系和顾客所购物的关联性,建立商品的属性向量表达式和顾客的兴趣向量表达式,从而预测用户对某未评分商品的兴趣度。首先将所有的商品分类,建成一个有阶层的分类树,每个商品属于分类树的最底层中的其中一类,最底层的每一类对应一个商品属性,然后将所有属性构成每个商品的属性向量。属性权重的设定根据商品在分类树中所在的类别与其他类别的分类关系,及类别之间的关联规则。其中,关联规则是根据顾客的购买记录在各层类别中的分布,挖掘每一层中同层类别之间的关联规则。假设在全部n 个商品类中,每个商品类作为特征项,则任一商品类j 可以表示为一个n 维特征向量:

    其中, Ps, j 为第s 个特征项的权重,本系统将Ps, j 的取值规定为

    其中,C(s)和C( j ) 表示商品类s 和j 的父类;s⇒j 表示s和j 之间存在强关联关系。得到每个类的特征向量后,就得到类间的一种关联关系,通过这种关系,可以利用已评分类预测未评分类。设经用户i 已评分的类集合用Ai 表示,k ∈Ai,未评分商品类m∉Ai,Ri,k 表示用户i 对已评分类k 的兴趣度,那么用户i 对未评分的类j 的预期值Pri,j 为

    规范化处理使全部的预期兴趣度为 1,则用户i 对未评类j 的预期兴趣度i, j Rp 为

    为了结合已有兴趣度和预期兴趣度,设定系数β (0≤β ≤1)以平衡已有兴趣度与预期兴趣度的比例,得到综合兴趣度:

    判别 2 个用户是否是邻居需要比较这2 个用户的兴趣相似性,相似性度量方法常用的有余弦相似性、修正的余弦相似性和相关相似性等。

    由于按照本文的方法可得到较为完整的兴趣评分,因此本文采用余弦相似性作为度量方法。设用户i 和用户j 在n维类上的兴趣度分别表示为向量i 和j,则用户i 和用户j 之间的相似性sim(i,j)为

    其中, ‘Ri,d 和’Rj,d 分别表示用户i 和用户j 对类d 的兴趣度。

    寻找最近邻居的目标就是对每一个用户u,在整个用户空间中查找用户集合D=(d1,d2,…,dk),使得u ∉D,并且d1 与u 的相似性sim(u,d1)最高,d2 与u 的相似性sim(u,d2)次之,依此类推。

    2.3 推荐结果的产生

    通过上述的相似性度量方法得到目标用户的最近邻居 后,需要利用最近邻居的观点为目标用户产生相应的商品推荐 。常用的预测目标用户未评分项目评分的方法是综合最近邻居对未评分项目的评分,作为目标用户对预测项目的评分。

    本文采用最频项推荐为目标用户产生Top-N 推荐:在浏览记录库中,扫描目标用户每个最近邻居的浏览记录,对其浏览的商品进行计数,选择出现频率最高且目标用户尚未浏览过的前N 个商品作为推荐内容。设目标用户u 浏览商品的集合为A,最近邻居浏览商品的集合为D,候选推荐商品的集合

         C=D-A,候选商品b ∈A,那么候选商品b 对于用户u 的推荐度Recb,u 为

    其中, d ,bd CCount∈ Σ为浏览过商品b 的的最近邻居的数目;Sumc为最近邻居总数。

    3 实验及结果分析

    为了验证本系统的推荐效果,在小范围内进行了实验,用平均绝对偏差作为测量标准对协同过滤推荐的实验结果进行了度量,并通过对比分析验证了基于综合兴趣度的方法的有效性。

    3.1 实验过程与评价标准

    为了方便测试,实验前系统录入了约 1 000 本计算机书籍,邀请了某公司82 个员工参与实验,实验期为1 个月。实验的前20 天为用户自由浏览时间,系统不产生推荐,要求实验用户进行注册及填写显性评分,实验的后10 天系统为注册用户产生推荐清单,并要求用户对每个推荐书目进行满意程

         度反馈。

    本文评价协同过滤推荐效果时,采用平均绝对偏差(Mean Absolute Error, MAE)作为测量推荐系统满意度的公式,MAE 用于测量推荐值与实际评价值之间的偏差,可以直观地度量推荐质量,MAE 越小,推荐质量越高[9]。本实验用户u 的平均绝对偏差为

    其中,n 为Top-N 的推荐总数; pu,i 为实际评分; qu,i为相应的预测评分。

    3.2 实验结果分析

    系统得到实验数据后,分别在推荐 Top-10, Top-20 和Top-30 的范围内,将实验用户的推荐结果及其反馈的满意度进行比较,然后分别利用平均绝对偏差公式对基于综合兴趣度的方法和传统的基于显性兴趣度的方法进行计算。计算的结果如表1 所示,对比分析如图1 所示。

    从图1 可知,MAE 值在0.12~0.17 之间,表明系统能起到较好的推荐效果,随着Top-N 数量增多,MAE 值呈下降趋势,表明了Top-N 中N 值较大时用户满意度高。

    传统的协同过滤方法仅使用显性兴趣度作为用户相似性的计算指标,其计算最近邻居的准确度较低,从实验结果可看出其MAE 值较高,推荐质量不高。

    本文的推荐方法使用了综合兴趣度作为用户相似度的计算指标,实验表明在相同条件下MAE 值有了明显的降低,可见基于综合兴趣度的推荐方法能够有效地提高协同推荐系统的推荐质量。

    参考文献

         [1] Varian R. Recommender Systems[J]. Communications of the ACM,1997, 40(3): 56-58.

         [2] Resnick P, Iacovou N, Suchak M. Grouplens: An Open Architecturefor Collaborative Filtering of Netnews[C]//Proc. of the Conference on Computer Supported Cooperative Work. Chapel Hill, NC, USA: [s. n.], 1994: 175-186.

         [3] Shardanand U, Maes P. Social Information Filtering: Algorithms for Automating “Word of Mouth”[C]//Proc. of the ACM CHI Conference. Denver, Colorado, USA: [s. n.], 1995.

         [4] Goldbergd N D, Oki B M. Using Collaborative Filtering to Weave an Information Apestry[J]. Communications of the ACM, 1992, 35(12): 61-70.

         [5] Sarwar B M, karypis G, Konstan J A, et al. Item-based Collaborative Filtering Recommendation Algorithms[C]//Proc. of the 10th International World Wide Web Conf.. Hong Kong, China: [s. n.], 2001: 285-295.

         [6] 邓爱林, 朱扬勇, 施伯乐. 基于项目评分预测的协同过滤推荐算法[J]. 软件学报, 2003, 14(9): 1621- 1628.

         [7] 陈东林, 聂规划. 基于商品属性隐性评分的协同过滤算法研究[J]. 计算机应用, 2006, 26(4): 966-968.

         [8] 白丽君, 刘君强. 一种解决协作过滤中矩阵稀疏性问题的算法[J]. 情报学报, 2005, 24(2): 199-202.

         [9] Breese J S, Kadie C. Empirical Analysis of Predictive Algorithms forCollaborative Filtering[C]//Proc. of the Conference on Uncertainty in Artificial Intelligence. Madison, Wisconsin, USA: [s. n.], 1998.

    本文作者:秦光洁,张颖 (长安大学信息工程学院,西安 710064)

    </div>