074 | 现代推荐架构剖析之二:基于多层搜索架构的推荐系统
洪亮劼
该思维导图由 AI 生成,仅供参考
周一,我们讨论了基于线下离线计算的推荐架构,这也是最简单的一种推荐架构。我们了解了这种架构的优劣势,以及能够做的一些方案。
今天,我们来看另外一种也很常见的推荐系统架构,那就是基于多层搜索架构的推荐系统。
推荐架构需要解决的问题
周一我们详细讨论了推荐架构需要解决的问题,今天做一个简单的回顾。
推荐系统解决三个需求。
第一,推荐系统架构能够在一两百毫秒内给用户提供当前的推荐结果,即实时呈现推荐结果。
第二,推荐系统架构需要对用户和系统的交互结果做出响应。
第三,推荐系统架构需要考虑用户群体的覆盖率问题。
我们周一次讲到的基于离线计算的推荐架构,可以很好地解决第一个问题。解决思路就是先计算好所有的结果,然后存在某种存储空间里,当用户来到网站的时候,再直接显示事先已经计算好的结果。然而,这样的架构在第二和第三个需求面前,就显得有些捉襟见肘了。
基于多层搜索架构的推荐系统
我们前面在介绍搜索系统的时候,多次提到了多层搜索架构。一起来回顾一下这种架构。
首先,我们有一个索引,能够根据某些特性(比如关键字)来把所有的文档存储到里面,方便随时检索。
第一层或者叫第一轮打分,是发生在索引这个层面,我们通过一些简单的流程或者函数,往往是线性函数或者布尔值函数,来获取最相关的几百最多几千个文档。
紧接着,第二层或者叫第二轮打分,就是一个重排序的过程。这个时候,我们往往只需要针对几百个文档进行打分,所以可以使用相对比较复杂的函数,比如基于决策树的模型或者深度模型,以得到最终的结果。
有些时候,在第二轮打分之后,还有后面的轮数,主要是针对一些不同的商业规则,比如结果的多样性等等。
多层搜索架构可以支持搜索结果,自然地,对第一个需求,也就是在规定的时间内返回结果,有很好的支持。在搜索里面,用户输入查询关键词以后,大多数情况都希望能够快速得到结果。一般来说,我们把在所有文档里查找相关信息分解为两个步骤,先查找一个大概相关的集合,然后再在这个集合里进行重排序。特别是第一个步骤,往往是在索引上并行进行的,因此速度也相对比较快。
那么,多层搜索架构如何来解决第二和第三个需求呢?
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
基于多层搜索架构的推荐系统是一种常见的推荐系统架构,它通过多层搜索和重排序的方式来实现推荐结果的实时呈现、对用户反馈的响应以及对新用户和新物品的支持。该架构首先利用索引进行初步筛选,然后通过多轮打分和重排序的过程得到最终的推荐结果。这种架构能够快速返回结果,并且能够相对容易地根据用户反馈进行更新,同时对新用户有天然的支持。然而,对于新物品的支持仍然是一个挑战,因为需要重新建立索引。总的来说,基于多层搜索架构的推荐系统能够较好地满足推荐系统架构的需求,但在新物品的支持上还存在改进空间。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《AI 技术内参》,新⼈⾸单¥98
《AI 技术内参》,新⼈⾸单¥98
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(4)
- 最新
- 精选
- 林彦除了搜索引擎用到的关键字外,可以使用用户或物品的属性和类别,如标签,主题,类簇,潜在语义做索引,还有人物,地理位置,书名,影视剧,历史事件和热点事件等实体也可以用来做索引。2018-04-061
- 永夜在我们实际应用过程中,越是近期行为尤其是用户刚刚触发的行为,指向的推荐效果最好。看了您的文章,我意识到还有一个行为置信度的问题。2018-04-09
- damonhao推荐系统根据用户画像构建索引2018-04-06
- 微微一笑对于构建索引,我尝试过将倒排信息存储在hbase,发现在召回阶段需要多次查询,效率不高;现在正在尝试将倒排信息存储在redis中。请问老师有什么建议?2018-04-04
收起评论