〇、说明
推荐系统之所以称为系统,是因为它更多的是一个实际应用工程系统。而工程系统非常注重经验,这里并没有什么经验可谈,只是将我了解和理解的推荐系统以一种尽可能简单的方式整理出来。
一、由来
Web1.0时代,网络信息较少;人与互联网的交互很少;信息交互主要是从互联网到人的单向流向;最主要的信息检索方式是门户网站。
Web2.0时代,个人成为互联网内容的重要来源;互联网信息量爆炸式增长;信息交互的特征是人和互联网双向流动;最主要的信息检索方式是搜索引擎。
Web3.0时代,移动互联网、物联网,更加丰富了互联网的内容和形式;信息量继续爆炸式增长,人本身和工具、物品都成为信息的来源,人和互联网以相互侵入的方式共存。随着数据库技术发展数据积累越来越多;随着计算能力的不断扩展,数据分析发挥的作用越来越凸显;随着人工智能和机器学习的发展,人与信息的交互以更加智能的方式出现。推荐系统就是这种智能交互方式的一种。
二、推荐系统是做什么的
推荐系统利用特殊的信息过滤技术,将不同的物品或内容推荐给可能对它们感兴趣的用户。[1]
三、推荐机制
以什么标准或原则将物品和内容推荐给用户,则是指不同的推荐机制。常用的推荐机制如下,而他们都各自有其优缺点。
1、基于人口统计学的推荐(Demographic-based Recommendation)
考察用户之间的内在相似度,将相似用户喜爱的其他物品推荐给当前用户。
[1]2、基于内容的推荐
考察内容之间的内在相似性,基于用户以往的喜好记录,将与用户以往喜好的内容相似的内容推荐给用户。
[1]基于内容的推荐可以用来给用户做用户画像建模,进而可以做出准确度更高的推荐。
其实基于人口统计学的推荐和基于内容的推荐,它们的内在机制是相同的,都是根据对象(人活着内容)的相似性来做推荐。
3、基于用户的协同过滤的推荐
[1]协同过滤不考虑用户和商品的内在特征,考查用户和商品之间通过购买建立的联系,从而衡量用户之间或者商品之间的相似性,将相似用户喜爱的其他物品推荐给当前用户。协同过滤推荐是当前应用最为广泛的推荐机制。
基于用户的协同过滤,考察用户通过购买与商品建立的联系,衡量用户之间的相似性。
比如上图,用户A和用户C都购买了商品A和商品C,可以说用户A和用户C相似;而用户C购买了商品D,而A没有购买;则可以将商品D推荐给用户A。
4、基于内容的协同过滤推荐、
基于内容的协同过滤,考察用户通过购买与商品建立的联系,衡量商品之间的相似性。
比如上图,商品A和商品C同时被用户A和用户C购买,可以说商品A和商品C相似;而用户C购买了商品A,而没有购买商品C;则可以将商品C推荐给用户C。
基于用户的协同过滤和基于内容的协同过滤的本质是一样的,都是通过用户和商品之间的联系计算相似性。如果将这种联系抽象成矩阵,则这两种计算相似性的方向一个横向,而另一个纵向。
5、SVD
在实际工程应用中,用户购买商品的矩阵往往是巨大而稀疏的,导致计算量非常大。奇异值分解(SVD)是一个有效的降维和特征提取方法,简化相似性的计算。计算完相似度,就可以使用协同过滤来推荐。
6、混合机制
通过不同的混合方式(加权、分层等),组合使用以上推荐机制。
四、推荐系统的几个问题
1、相似性度量
无论哪种算法,一般都会使用相似性度量。我在另一篇笔记中整理了一下常用的相似性度量,《相似性度量》。
2、冷启动问题
无论是基于内容的推荐还是基于用户的推荐,都会面临新加入的商品或用户的冷启动问题,需要使用不同的推荐机制解决这个问题。
网友评论