推荐系统使用的算法汇总

什么是推荐系统?

好的推荐系统可以精确匹配用户兴趣,智能推荐内容/商品,有效帮助提升点击率,从而大幅提升网站流量/销量。

推荐系统其实就相当于精通交叉销售的“销售人员”,简单说来,就是向拥有本公司A产品的客户推销本公司B产品。比如说某客户在你这儿购买一款游戏机,你可以销售充电器或者电池给他。交叉销售的形式有很多种。

说到销售,我要向你推荐一本书,书名叫《影响力》-美国佬写的。这本书被称为史上最强大、最震慑人心、最诡谲的心理学畅销书。闲来没事可以读一读。

推荐系统通过对用户过去行为的分析,推荐针对某个用户感兴趣的内容。例如,视频网站通过用户过去观看视频的类型推荐视频,这样既可以满足用户的需求又可以增加网站浏览量。

本文主要汇总一下推荐系统使用的算法。顺序从简到繁。

#1 推荐最流行的内容

这是最简单的推荐系统,把最多人访问的内容推荐给用户。这是最快最简单的方法,但是缺点也很明显:

  • 这个方法没有使用到个人特质,没有针对个人
  • 每个用户看到的都是同一个内容,即使你对某某锅根本不感兴趣

但是这种方法在特定领域还是很管用的。例如新闻,新闻网站大多都有“热点新闻”,越流行排名越靠前。

#2 使用分类算法

我们首先提取用户和他感兴趣内容的某些特性(features),然后使用分类算法预测用户是否喜欢某个内容。

它的优点:

  • 针对个人
  • 用户历史纪录不多也能使用

它的缺点:

  • 特性不一定存在,或者太少,导致不能实现很好的分类算法
  • 随着人数和内容的增加,实现分类算法越难。

这个算法在实践中使用的并不多。

#3 推荐算法

这种方法是专门用来解决推荐问题的,它有主要有两种类型:基于内容和协同过滤。

基于内容的算法

原理:如果你喜欢某个内容那你也会喜欢相似的内容;相似的内容会被推荐。

在内容可以被很好的分类时非常实用。例如音乐,可以通过分析你常收听/下载音乐的类型推荐。同样适用于视频。

协同过滤算法

原理:如果我喜欢的内容有A、B、C、D,而你喜欢的内容有B、C、D、E,那么我极有可能喜欢E,而你极有可能喜欢A。因为我们的兴趣相似。

这个算法并不是基于内容,也不依赖其他附加数据,使得这个算法成为最常用的推荐算法。很多电商都在使用这个算法。

几种协同过滤算法:

  • 基于用户的协同过滤算法:基于用户的相同的兴趣。这种算法很准确但是非常耗费资源,因为需要计算每对用户,用户越多,计算用的时间越长。
  • 基于内容的协同过滤算法:和前一个算法类似,相反它计算内容的相似度。一旦我们计算出了内容相似数据库,就可以根据用户过去感兴趣的内容进行推荐。这种算法相比前一种算法更省资源。
  • 其他算法

开源推荐系统汇总:https://github.com/tiancode/list_of_recommender_systems

发表评论

电子邮件地址不会被公开。 必填项已用*标注