随着互联网技术的发展,内容的创建和分享变得越来越频繁,用户获取信息的渠道和信息的数量也越来越多,在如此多的信息时找到感兴趣的信息相当不易,搜索引擎的出现,为用户搜寻信息,提供了一条简便途径。

但通过日常的使用也不难发现,搜索引擎并不能解决所有问题,一方面,某些查询并不太好描述,另一方面,用户本身的需求并不太明确(也许就是想随便看看),在大型的系统中(如电商),“推荐”系统应运而生。

推荐系统原理图

recommendation-system

recommendation-system

根据不同的维度,推荐系统分为不同的类型:

  • 以用户维度区分,可分为:
    • 大众化推荐
    • 个性化推荐
  • 以数据源维度区分,可分为:
    • 基于用户基本信息,即人口统计学的推荐(Demographic-based Recommendation)
    • 基于物品属性,即基于内容的推荐(Content-based Recommendation)
    • 基于用户偏好,即基于协同过滤的推荐(Collaborative Filtering-based Recommendation)
  • 以推荐模型维度区分,可分为:
    • 基于用户和物品
    • 基于关联关系(如本子和笔经常一起销售)
    • 基于用户模型,学习用户偏好,推荐感兴趣内容

以上各大类并不冲突,只是基于不同的维度,对推荐系统进行的划分。

 

基于人口统计学的推荐

基于人口统计学的推荐实现比较简单,只需要根据用户C的属性(年龄,性别等等),找到与其相似的用户A(可以有更多用户),并把用户A喜欢的物品A推荐给用户C,如下图:

demographic-based-recommendation

demographic-based-recommendation

 

基于内容的推荐

基于内容的推荐是比较广泛的推荐机制,主要的原理是根据物品的属性特征,寻找相似的物品,进行推荐

用户A喜欢电影A,电影A的类型是爱情+浪漫,那么,寻找到另外的符合爱情+浪漫类型的电影C(还可以有更多),推荐给用户A,如下图:

content-based-recommendation

content-based-recommendation

 

基于协同过滤的推荐

基于协同过滤的推荐原理是根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,然后再基于这些关联性进行推荐。

 

基于用户的协同过滤推荐

基于用户的协同过滤推荐原理是根据用户的偏好,找到与之偏好相似的“邻居”,用“邻居”的偏好物品进行推荐

用户A喜欢物品A和物品C,用户C喜欢物品A,物品C和物品D,则用户A和用户C相似,用户C是用户A的“邻居”,把用户C的偏好物品D推荐给用户A,如下图:

collaborative-filtering-based-recommendation-user

collaborative-filtering-based-recommendation-user

 

基于物品的协同过滤推荐

基于物品的协同过滤推荐原理是根据所有用户对物品的偏好,相似的物品,用相似物品进行推荐

用户 A 喜欢物品 A 和物品 C,用户 B 喜欢物品 A,物品 B 和物品 C,用户 C 喜欢物品 A,得出结论物品C和物品A类似,喜欢物品A的人可能也喜欢物品C,把物品C推荐给用户C,如下图:

collaborative-filtering-based-recommendation-item

collaborative-filtering-based-recommendation-item

 

然而,如此多的推荐模型,如何选用正确的模型给用户推荐内容?!当下某剧很火,某手机很畅销,就直接向用户推荐这些内容?当然,这可以称得上一种“推荐”,但绝不是好的推荐,好的推荐应该基于用户偏好,它不仅能帮助达成潜在的交易,也能提升用户的体验。

 

下面说明常见的协同过滤原理

协同过滤,顾名思义,有协同,也有过滤;协同,简单的说,东西好不好,听大家的,新电影上映了,要不要去看,先问问身边看过的人,再做打算,过滤,有那么个朋友,电影的口味就是与众不同,他的意见,应该谨慎对待,可以适当忽略。

协同过滤的一般步骤:

1.收集用户偏好

2.偏好数值化

3.计算相似度(用户相似度或物品相似度)

4.推荐

 

下面是使用Apache Mahout实现用户推荐的一个例子

Apache Mahout 是 Apache Software Foundation (ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序

mahout原理图
mahout

mahout原理图

 

 

Post Navigation