基于协同过滤与目标函数优化的多样性增强推荐算法实现
2016-04-21周庆芳
周庆芳
摘 要:互联网通信技术和社会化媒体的大力发展使得每个人既可以是信息的接收者,也可以是信息的创造者。本文着重介绍了目前应用最为广泛的协同过滤技术,并在协同过滤算法实现的基础上,利用一些通用的开源数据集以及常见的评估指标对算法实现的效果做展示和分析,以完成对解决推荐系统的精确性与多样性两难问题的探讨。
关键词:协同过滤、二次优化、多样性
中图分类号:TP312 文献标识码:C 收稿日期:2015-12-09
一、基于协同过滤的推荐算法
1.基于用户的协同过滤
基于用户的协同过滤算法是目前应用广泛且效率较高的一种个性化推荐算法。它主要基于3 个假设。[1]
(1)用户是可分的。
(2)用户对不同商品的评价包含了用户的兴趣信息。
(3)用户对未知商品的评价将和同类用户的评价相似。
算法通过分析用户对项目的历史行为数据(如评分、购买、浏览等),生成与当前用户行为、兴趣最相近(对相同产品有历史行为)的用户集,然后利用他们对其他一些项目的评分来预测当前用户对那些项目的评分,从而产生推荐列表。
2.基于项目的协同过滤
经过前述基于用户的协同过滤算法后获得的推荐候选列表,进一步做基于项目的协同过滤。其算法过程与前面相似,不过相似度的计算是针对推荐候选列表中的项目以及目标用户历史已接触过的项目集合。主要步骤如下。
(1)输入准备。同上一节相反。向量表示中的每个评论过项目的用户对该项目的评分。
(2)针对项目的最近搜索。同上一节相似,仍然利用上述相似度计算公式,但是计算结果为项目与项目的相似度。
(3)推荐产生。同上一节相似,将上述推荐候选列表中每个项目与目标用户的评分向量进行相似度计算后排序,获取前Top-K个项目作为推荐结果。但是为了后续推荐结果的筛选,本文在这里的算法实现不会进行取K个的操作,而是直接保留整个候选推荐项目列表。
上述基于用户的协同过滤主要利用了用户—项目之间的关系,省略了对项目的建模,能够避免对于复杂项目内容分析不完全或不准确的问题,具有简单易实现、性能较好、个性化、自动化程度高等优点。
二、多样性增强算法
1.多样性及其方法简介
一个好的推荐系统能够开拓用户的视野,就像一个凹透镜,可将用户的兴趣发散出去。当然,正如前面所述,精确性与多样性时常是个鱼与熊掌不可兼得的难题,所以这种发散也最好是在极可能不影响到精度的前提下进行的。近年来针对提高推荐系统多样的研究中,主要存在以下四类方法。[2]
(1)信息物理方法:将物理学中的物质扩散(Mass Diffusion )和热传导(Heat Conduction)理论应用到个性化推荐系统中。
(2)二次优化方法:采用启发式策略对传统推荐算法得到的候选推荐列表进行二次优化。
(3)社会化网络方法:信息推荐中社会关系往往比推荐内容与用户喜好的匹配程度更加重要。
(4)时间感知方法:作为情境的一种,时间信息很容易采集,并且对提高推荐系统的时序多样性具有重要的价值。
2.二次优化的目标函数建立
为了提高推荐列表的多样性(Diver sity),一种可行的方式就是在从候选推荐集合筛选时,不仅使用考虑相似度大小的Top-K方法,同时将多样性考虑在内。说明不相似度d(i , j)的计算依赖于相似度s(i ,j )的计算,而相似度的计算已经在前文公式中进行定义,所以最终的Top-K筛选过程是在每次从候选集合P中筛选项目到推荐列表R中时,逐一计算候选集合P中的每个项目,并且选取项目c使得Quality最大的,放入推荐列表R中。
三、小结
本文主要研究了推荐系统的Top-K推荐列表选择的多样性增强问题。为了避免向用户推荐过度同质化的内容,在考虑推荐内容时,不应该仅仅以推荐精准度作为唯一指标,推荐内容的多样性同样是提高用户体验、增加用户粘度的重要指标。因此,本文所实现的贪婪选择算法,它可以在损失一定精准度的条件下实现推荐列表的内容多样性目标。
参考文献:
[1] 宋真真,王 浩,杨 静.协同过滤技术在个性化推荐中的应用[J].合肥工业大学学报(自然科学版), 2008,31(7):1059-1063.
[2] 安 维,刘启华,张李义.个性化推荐系统的多样性研究进展[J].图书情报工作,2013,57(20):127-135.