检索技术核心 20 讲
陈东
前数禾科技 CTO,前奇虎 360 商业化资深总监
21492 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 29 讲
检索技术核心 20 讲
15
15
1.0x
00:00/00:00
登录|注册

20 | 推荐引擎:没有搜索词,“头条”怎么找到你感兴趣的文章?

课堂讨论
重点回顾
多种召回方案的选择和排序
基于协同过滤的召回
基于内容的召回
推荐引擎的核心模块
推荐引擎的整体架构和工作过程
推荐引擎

该思维导图由 AI 生成,仅供参考

你好,我是陈东。今天我来和你讲讲推荐引擎。
我们每天都会接触推荐引擎,最常见的,就是当我们用手机浏览资讯类 App 的时候,经常会用到的“下拉刷新”功能。你会发现,每次刷新之后,这些 App 都能给你推荐你最关心的“头条信息”。
那这些资讯类的 App,是怎么在没有搜索词的情况下,仅凭下拉刷新就可以在海量的文章中检索出你感兴趣的内容,并且推荐给你的呢?这就和推荐引擎中的检索技术有关了。那今天,我就以资讯类 App 推荐文章为例,来和你聊一聊推荐引擎中的检索技术。

推荐引擎的整体架构和工作过程

我们知道,检索引擎的灵活程度和系统的检索约束条件有关。那我们先来看一下针对不同的引擎,系统的检索约束条件分别是什么。
在搜索引擎中,系统的强约束条件是用户输入的搜索词。而在广告引擎中,系统的强约束条件是广告主设置的定向要求。但是在资讯类 App 推荐引擎中,因为所有的用户操作只有“下拉刷新”这一个动作,所以外界输入的检索约束条件其实非常少。
因此,相比于搜索引擎和广告引擎,推荐引擎具有更灵活的检索能力,也就是可以使用更灵活的检索技术,来进行文章的召回服务。这也是推荐引擎相比于搜索引擎和广告引擎最大的不同之处。
那一个推荐引擎是怎么工作的呢?我按照功能划分,梳理出了推荐引擎的核心模块。
推荐引擎架构示意图
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

推荐引擎在资讯类App中的应用通过收集用户行为数据、挖掘用户兴趣和生成用户画像,以及对文章进行语义分析和生成文章画像,实现了个性化推荐。文章介绍了基于协同过滤的召回算法,包括基于用户的协同过滤和基于物品的协同过滤。基于用户的协同过滤通过寻找相似用户并推荐其喜欢的文章,而基于物品的协同过滤则是找出用户喜欢的物品并进行推荐。推荐引擎采用混合推荐法,结合多种召回技术,并使用分层打分过滤的排序方式来解决大量候选集的排序计算代价问题。最终,推荐引擎通过非精准打分算法、机器学习模型和精准的深度学习模型,选出最终的推荐结果。总的来说,推荐引擎实现了在没有搜索词的情况下,为用户推荐感兴趣的文章,为资讯类App的用户提供了个性化的阅读体验。文章还讨论了基于内容的召回和基于协同过滤的召回的特点,以及混合推荐法和多层打分过滤的应用。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《检索技术核心 20 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • 将第一步“寻找每个物品的相似物品列表”放在离线环节。具体的操作是以 Item ID 为 Key,以相似物品列表为 posting list,来生成倒排索引,再把它存入线上的 Key-value 数据库中 --------------------------------- 利用这种方法的时候,每个item 都会生成一个 posting list, 这样的每个商品都会保存 n 分,这样会不会浪费空间?

    作者回复: 如果每个posting list都存了所有的商品,的确会比较浪费空间,而且其实也没必要,因为最后只会选取top k个。因此,我们可以对posting list进行截断,仅保留相似度超过一定阈值的item就好了。这样就能大幅减少空间。

    2020-05-17
    2
  • 我们就要先找出最接近的 k1 个 Item 向量,然后用 Item 1 对 User1 的权重乘上每个 Item 和 Item 1 的相似度, -------------------------- 这个应该是: 每个 Item 对 User1 的权重乘上每个 Item 和 Item 1 的相似度

    作者回复: 并不是哦。在基于物品的协同过滤中,对于要推荐的item,我们之前并不知道这个item和user1有什么关系,我们知道的是两个信息: 一个是user1对item1的打分(记为w),另一个是item1和item的相似度(记为s),因此,user1和item的相关性,就是w*s

    2020-05-17
    1
  • 易企秀-郭彦超
    假如user1评价过item1与item2而通过基于物品的协同过滤得到item1与item2都与item3相似,那么user1对item3的打分是如何计算的?

    作者回复: 我的文中有写: 要查找和 Item 1 相似的物品,我们就要先找出最接近的 k1 个 Item 向量,然后用 Item 1 对 User1 的权重乘上每个 Item 和 Item 1 的相似度,就能得到这 k1 个 Item 的推荐度。 同理对于 Item 2,我们也可以找出 k2 个 Item,并计算出这 k2 个 Item 的推荐度。最后,我们将 k1 个 Item 和 k2 个 Item 进行合并,将相同 Item 的推荐度累加,就能得到每个 Item 对于 User 1 的推荐度了。

    2021-01-28
  • 易企秀-郭彦超
    多路召回的结果是如何排序的 热点与模型的后选列表排序纬度是什么

    作者回复: 所有的结果放一起排序的时候,其实就涉及到前面介绍过的机器学习排序的思想了。机器学习会基于大量的维度,进行综合排序打分。

    2021-01-28
  • 范闲
    1.关于第一个问题,其实有点疑问。每个item的向量实际上是不同用户偏好构成的。最终对不同item求出来实际上对于某个item,用户偏好相近的程度 2.整体技术上的架构是类似的,但是在场景上区分很大。

    作者回复: 1.第一个问题,的确,最后针对某个用户推荐的时候,我们是需要具体计算和这个指定用户的相关性的。不过我在文中也说过,item based方案的实现会分为两部分,第一部分是离线构建起相似item的倒排表,第二部分才是在线上环节,根据具体用户,找出推荐item。我在这道题中,其实只要求做第一步,给出每个item对应的posting list即可。如果你想把第二步对具体用户推荐也完成的话,可以以用户1为例子,看看会推荐出什么item。

    2020-05-15
  • 知错正在改
    老师老师😭,我输入检索错了
    2023-12-06归属地:广东
收起评论
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部