个性化推荐系统综述
上个月写过一篇产品推荐的文章,详情请见《我所了解的产品推荐》,内容很泛,多为工作心得。本周读了几篇相关的论文,收获颇多,分享点干货。
以下内容摘自《个性化推荐系统的研究进展》,该文发表于2009年1月的《自然科学进展》专题评述,作者是刘建国、周涛、汪秉宏。
我略去了具体的算法和许多公式,重点看原理、思路和比较。
互联网技术的迅速发展使得大量的信息同时呈现在我们面前,传统的搜索算法只能呈现给所有的用户一样的排序结果,无法针对不同用户的兴趣爱好提供相应的服务。信息的爆炸使得信息的利用率反而降低,这种现象被称之为信息超载。个性化推荐,包括个性化搜索,被认为是当前解决这个问题最有效的工具之一。推荐问题从根本上说是代替用户评估它从未看过的产品,这些产品包括书、电影、CD、网页、甚至可以是饭店、音乐、绘画等等。
个性化推荐系统通过建立用户与信息产品之间的二元关系,利用已有的选择过程或相似性关系挖掘每个用户潜在感兴趣的对象,进而进行个性化推荐。高效的推荐系统可以挖掘用户潜在的消费倾向,为众多的用户提供个性化服务。 一个完整的推荐系统由3个部分组成:
- 收集用户信息的行为记录模块
- 分析用户喜好的模型分析模块
- 推荐算法模块
推荐算法模块是最核心的部分。根据推荐算法的不同,推荐系统可以分为如下几类:
- 协同过滤(collaborative filtering)系统
- 基于内容(content-based)的推荐系统
- 基于用户-产品二部图网络结构(network-based)的推荐系统
- 混合(hybrid)推荐系统
- 其他
1. 协同过滤系统
第一代被提出并得到广泛应用的推荐系统。如amazon的书籍推荐,Jester的笑话推荐,等等。
1)核心思想:利用用户的历史信息计算用户之间的相似性——>利用与目标用户相似性较高的用户对其他产品的评价来预测目标用户对特定产品的喜好程度——>根据喜好程度来对目标用户进行推荐。
在计算用户之间相似度时,大部分都是基于用户对共同喜好产品的打分。最常用的方法是Pearson相关性和夹角余弦。
协同过滤推荐系统的算法可以分为两类,基于记忆(memory-based)&基于模型(model-based)。前者是根据系统中所有被打过分的产品信息进行预测,注重于预测用户的相对偏好而不是评分绝对值;后者是收集打分数据进行学习并推断用户行为模型,再对某个产品进行预测打分。
2)优点:
- 发现用户潜在的兴趣偏好,推荐新信息
- 能推荐难以进行内容分析的产品
3)缺点:
- 由于是基于用户对产品的评分,所以对新用户进行推荐或者是对用户推荐新产品,精度不高
- 随着用户量的增多,计算量呈线性增加,影响系统的性能
2. 基于内容的推荐系统
是协同过滤技术的延续与发展。
1)核心思想:分别对用户和产品建立配置文件——>比较用户与产品配置文件的相似度——>推荐与其配置文件最相似的产品。
例如,在电影推荐中,基于内容的系统首先分析用户已经看过的打分较高的电影的共性(演员、导演、风格等),再推荐与这些用户感兴趣的电影内容相似度很高的其他电影。基于内容的推荐算法根本在于信息获取和信息过滤。因为在文本信息获取与过滤方面的研究较为成熟,现有很多基于内容的推荐系统都是通过分析产品的文本信息进行推荐。 在信息获取中,最常用的是TF-IDF方法。
2)优点:
- 能处理新用户、新产品的问题(冷启动)
- 实际系统中用户对产品的打分信息非常少,基于内容的推荐系统可以不受打分稀疏性问题的约束
- 能推荐新出现的产品和非流行的产品,发现隐藏信息
- 通过列出推荐内容的特征,可以解释为什么推荐这些产品,使用户在使用时具有更好的用户体验
3)缺点:
- 受到信息获取技术的约束,例如自动提取多媒体数据(图形、视频流、声音流等)的内容特征具有技术上的困难
- 如果两个不同的产品恰好用相同的特征词表示,这两个产品就无法区分
- 如果一个系统只推荐与用户的配置文件高度相关的产品,那么推荐的只能是与用户之前购买过的产品非常相似的产品,无法保证推荐的多样性
3. 基于网络结构的推荐算法
仅仅把用户和产品的内容特征看成抽象的节点,所有算法利用的信息都藏在用户和产品的选择关系中。
1)核心思想:建立用户—产品二部图关联网络
对于任意目标用户i,假设i选择过所有的产品,每种产品都具有向i推荐其他产品的能力,把所有i没有选择过的产品按照他喜欢的程度进行排序,把排名靠前的推荐给i。
在同样的用户喜好程度下,推荐冷门的产品要比推荐热门的产品意义更大。在同样精确度下,推荐的产品数量越少越好。
提高精确度的方法还有:
- 去除重复性
- 通过引入耦合阈值(即只考虑相似性大于或等于给定阈值的用户以及和这些用户连接的产品)
2)优点:开辟了推荐算法研究的新方向
3)缺点:
- 同样面临着新用户新产品的问题。新用户或新产品刚进入系统时没有任何选择或被选信息,系统无法与其他用户或产品建立关联网络
- 受到用户选择关系建立时间的影响,如果把用户与产品的所有关联关系都考虑在内,无法区分出长期兴趣和短期兴趣点,过多地考虑长期兴趣点会使系统无法给出满足用户短期兴趣的产品,大大降低推荐准确度
4. 混合推荐
将上述几种推荐方法有机结合,实际的推荐系统中最常见的是基于协同过滤和基于内容的。
1)独立系统相互结合
独立的应用协同过滤,基于内容和基于网络结构的算法进行推荐,然后将两种或多种系统的推荐结果结合,利用预测打分的线性组合进行推荐。或者,只推荐某一时刻在某一评价指标下表现更好的算法的结果。
2)在协同过滤系统中加入基于内容的算法
利用用户的配置文件进行传统的协同过滤计算,用户的相似度通过基于内容的配置文件计算得出,而非共同打过分的产品的信息。这样可以克服协同过滤系统中的稀疏性问题,另外,不仅仅是当产品被配置文件相似的用户打了分才能被推荐,如果产品与用户的配置文件很相似也会被直接推荐。
5. 其他方法
1)关联规则分析:关注用户行为的关联模式。如买了香烟的人大多会购买打火机,因此可以在香烟和打火机间建立关联关系,通过这种关系推荐其他产品。
2)基于社会网络分析的推荐算法:如利用用户的购买行为建立他对产品的偏好相似性,依此向用户推荐产品并预测产品的销售情况,从而加强用户黏性。