第一章 推荐系统算法简介(共九章)
2026/6/20 14:37:35 网站建设 项目流程

参考书籍:

《互联网大厂推荐算法实践》

首先要有全局视角,而不是只停留在模型算法上,因为参与推荐系统的除了算法工程师之外,还要前端、后端、产品、运营等多个团队的通力合作。

现代推荐系统影响着我们生活的方方面面,它的作用就是在信息过载的情况下,主动在人和信息之间建立高效的连接

1.1 推荐系统的运行方式

以一个简化的推荐系统为例

其中有两个角色,一个是用户(User),一个是物料(Item)

用户是推荐系统服务的对象,也是推荐系统的重要贡献者,用户的行为为推荐系统提供数据支持。

物料是被推荐的信息和内容,比如商品,视频等。

建立推荐系统的步骤如下:

1)给物料打标签,标签可以人工生成也可以由算法生成,比如b站上随便一个视频

点开就可以看到它的标签

2)建立倒排索引,类似一个hashmap,键是标签,值是列表,包含所有被打上这个标签的视频。

比如我们点击上面的‘经典老歌’标签

3)推荐系统接受一个用户的推荐请求,提取出用户ID后,从数据库中检索出该用户的兴趣爱好。比如该用户的兴趣爱好是{‘经典老歌’:0.7,‘喜剧’:0.3}

4)召回(实现方式之一):使用用户的感兴趣的标签在倒排索引中检索

5)排序:系统猜测用户对召回的视频的喜爱程度,并将最可能喜欢的视频排在最显眼的位置

6)截断:只保留前端界面能够显示的视频

7)用户交互:用户看到了视频界面,并进行观看点赞等行为,推荐系统将用户行为计入日志

8)系统更新:推荐系统根据日志更新用户的兴趣爱好和视频质量(未来推荐别的用户的可能性)

1.2 推荐系统架构

1.2.1 功能架构

1. 召回

召回的候选集非常大,可以达到百万级规模,所以召回要‘快’,只要能找到和用户兴趣比较匹配的物料就可以。

召回主要依赖‘离线计算+在线缓存’的模式,物料在离线状态下已处理好,处理结果被存入数据库并建立好索引,但是离线处理时,用户信息和物料信息不能出现交叉。在线缓存时,只需花费在索引中的检索时间,时间开销非常小。

为了弥补离线处理时信息不能交叉的问题,召回模块一般采用多路召回的方式,每路召回关注其中的一个侧面。

2. 粗排

粗排的目标是过滤召回结果的90%。

一方面可以使用更复杂的模型,一方面用户信息和物料信息仍然不能出现交叉,主流的模型仍然依赖‘离线计算+在线缓存’的模式。

3. 精排

精排的目标是精挑细选几十个物料,重点是提升预测精度,要让物料信息和用户信息充分的交叉。精排是研究的重点。

4. 重排

重排是不可或缺的,目标是调整精排结果的顺序,确保推荐结果丰富多样。

1.2.2 数据架构

上图为Lambda架构

  • 将数据请求拆分为冷、热数据两个子请求

冷数据:已经存储在hadoop分布式文件系统上的数据

热数据:还未来得及落盘在hadoop分布式文件系统上的数据

  • 针对冷数据的子请求,由离线层(定时扫描日志)批量完成计算,其结果由近线层(快速查询)缓存并快速查询
  • 针对热数据的子请求,由在线层(实时分析计算)基于流式算法进行处理
  • 汇总冷热数据分别获得的子结果,得到最终的计算结果

1.3 搜广推的区别和联系

联系:

  • 都遵循召回粗排精排重排
  • 都遵循Lambda架构
  • 很多算法通用

区别:

  • 搜索场景会显式表达意图,而推荐由系统观察用户意图
  • 搜索对结果准确性的要求更加严格,广告对结果的准确性要求最高,而推荐的结果发散性更高
  • 广告的转化链条最长(从点击到下单才算一次完整的转化),建模难度最高。但是广告的候选集规模很小,降低了一些系统复杂度。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询