当前位置:网站首页 > 技术博客 > 正文

五大推荐系统算法



如果说互联网的目标就是连接一切,那么推荐系统的作用就是建立更加有效率的连接,推荐系统可以更有效率的连接用户与内容和服务,节约了大量的时间和成本。

我们在网上冲浪时,常常被大量的物品信息所淹没。从海量信息中找到自己想要的信息,实属不易(如面对淘宝各种各样的打折活动不知所措)。在经济学上,有一个经典的名词叫“长尾效应”,该效应的内容是:从人们需求的角度上看,大多数的需求会集中在某一小部分,而这部分我们可以称之为流行,而分布在剩余部分的需求是个性化的、零散的和小量的需求。这就意味着,有大量资源是鲜有人问津的,这不仅造成了资源利用上的浪费,也会使口味偏小众的用户被流行的内容所淹没。

进入互联网时代后,信息量已处于爆炸的状态。如果把所有内容都展示出来,用户肯定无法全部接收,这必然会造成信息过载,信息的利用率将十分低下。因此就需要推荐系统来帮我们把低价值的信息给筛选掉。

好的推荐系统总是能给用户推荐出想要的内容,让用户更频繁地访问站点,增强用户黏度。

当系统成功推荐了一个用户感兴趣的内容后,我们对该用户的兴趣爱好就越清晰。当我们精准地描绘出每个用户的形象后(精准的用户画像),就可以为他们定制出一系列个性化的定制服务,让拥有各种各样需求的用户都能在我们平台上得到满足。

如果把推荐系统简单拆开来看,推荐系统主要是由数据、算法、架构三个方面组成。

推荐的框架主要有以下几个模块

推荐算法其实本质上是一种信息处理逻辑,当获取了用户与内容的信息之后,按照一定的逻辑处理信息后,产生推荐结果。热度排行榜就是最简单的一种推荐方法,它依赖的逻辑就是当一个内容被大多数用户喜欢,那大概率其他用户也会喜欢。但是基于粗放的推荐往往会不够精确,想要挖掘用户个性化的,小众化的兴趣,需要制定复杂的规则运算逻辑,并由机器完成。

推荐算法主要分为以下几步:

例如在抖音与快手的分发中:抖音强平台基于内容质量分发,快手轻平台基于社交和兴趣分发,抖音:内容质量>关系>双向互动。快手:内容质量 约等于 关系 > 双向互动。抖音基于将内容从小流量开始,其中表现优质的内容将不断的进入更大的流量池中,最终进入推荐池,形成 90 天+精品召回池,最终的结果也是优质内容的热度随着时间推移逐渐累积增加,头部内容的集中度很高。

来源:方正证券《抖音 vs 快手深度复盘与前瞻-短视频 130 页分析框架》

2.1.1 召回策略

2.1.2 精排策略

精排模型的不同类别

精排模型的基本原理

参考:Learning and Reasoning on Graph for Recommendation

推荐算法大致可以分为以下几种类型:

更多内容查看

项目原链接:https://blog.csdn.net/sinat_/article/details/

专栏链接:

2.2.1 基于流行度的算法

基于流行度的算法非常简单粗暴,直接根据内容的PV(Page View,访问量)和UV(Unique Visitor,独立访客)等数据来进行热度排序来推荐给用户。常见场景有热歌榜、微博热门话题、知乎热榜等等。

这种类型的算法特点是简单,适用于刚注册不久的用户(冷启动)。但是其缺点也很明显,无法针对特定的用户进行个性化的推荐,也就意味着一百个读者只能读出同一个哈姆雷特。当然,也可以进一步对基于流行度的算法进行改进,使推荐内容拥有一定程度的个性化,例如加入用户分群特性,只把热榜上的体育新闻推荐给体育迷,只把热榜上的娱乐新闻推荐给喜欢看八卦新闻的用户。

2.2.2 协同过滤算法

协同过滤算法(Collaborative Filtering)是一种十分常用的算法,在很多购物平台中都会用到。协同过滤算法有两种类型,分别是基于用户(User)和基于物品(Item)的协同过滤算法。

a.基于用户的协同过滤算法
b.基于物品的协同过滤算法

一个简单的基于用户的协同过滤算法例子。首先我们根据用户对物品的评价构建出一个用户和物品的关联矩阵,如下:

图中的行是不同的用户,列是不同的物品,单元格(x,y)的值则是x用户对y物品的评价(或喜爱程度)。我们可以把某一行视为某一个用户对所有物品偏好的向量,这样把用户向量化后,就可以计算出每两个用户之间的向量距离了,这里我们使用余弦相似度来作为向量距离。

如果我们要为用户1推荐物品,则需要找出与用户1相似度最高的K名用户(设K=2)评价的物品,并且去掉用户1已经评价过的物品,最后按照评价大小进行排序,推荐出N个物品(设N=2)给用户1。

同样地,接下来举一个简单的基于物品的协同过滤算法例子。

基于物品的计算方式大致相同,把用户和物品的关联矩阵中的某一列视为所有用户对该物品的评价,这样把物品向量化后,就可以计算出物品之间的相似度矩阵。

最后,如果我们要为用户1推荐物品,则需要先找到用户1评价最高的物品。然后找到与该物品相似度最高且用户1未有评价过的N(设N=2)个物品,将其推荐给用户1。

2.2.3 基于内容的算法

上面提到的两种算法看起来很好很强大,通过进一步改进也能克服各种缺陷。但是有一个问题是,如果我是《哈利波特》的粉丝,我曾经在商城买过一本《哈利波特与魔法石》。这时商城的书库又上架了一本《哈利波特与死亡圣器》,显然,我应该会很感兴趣。然而上面提到的算法这时候就都不太好使了,因此基于内容的推荐算法就因运而生了。

基于内容的推荐算法能够很好地解决冷启动问题,同时也不会受热度的限制,因为它是直接基于内容进行匹配的。然而,它也会存在一些缺陷,如过度专业化(over-specialisation),该缺陷会一直给用户推荐内容相关的物品,而失去了推荐内容的多样性和让用户接触新内容的机会。

c.基于内容的推荐系统demo

更多内容查看

项目原链接:https://blog.csdn.net/sinat_/article/details/

专栏链接:

2.2.4 精排模型——逻辑回归为例

2.2.5 融合算法

实际上,现实世界的推荐系统往往都不会只用某一种算法来构建。一些比较大型的系统甚至会融合数十种算法。我们可以通过加权、变换、层叠等多种方法来综合不同算法的推荐结果,或者是在不同的计算环节(如召回,排序等)中运用不同的算法来混合,达到更贴合实际业务的需要。

2.3.2 推荐效果评估

更多内容查看

项目原链接:https://blog.csdn.net/sinat_/article/details/

专栏链接:

计算物品最相似的其他物品,直接用于I2I相似推荐,或者U2I2I推荐

以文章为例,进行内容相似推荐,一般需要以下几个步骤:

更多内容查看

项目原链接:https://blog.csdn.net/sinat_/article/details/

专栏链接:

版权声明


相关文章:

  • c语言指针数组与数组指针2024-11-26 15:01:05
  • idea maven换源2024-11-26 15:01:05
  • 什么是倒排索引技术2024-11-26 15:01:05
  • 背包问题例题讲解2024-11-26 15:01:05
  • js判断数据类型typeof2024-11-26 15:01:05
  • linux中chmod是什么意思2024-11-26 15:01:05
  • 一句话木马教程2024-11-26 15:01:05
  • 程序员如何接私活2024-11-26 15:01:05
  • 左移右移运算符号2024-11-26 15:01:05
  • 串口调试助手使用说明2024-11-26 15:01:05