往期文章:
本文同步发表于
- 知乎专栏: 倒排索引在召回中的应用
- 微信公众号: yanianthe的公众号: 倒排索引在召回中的应用
欢迎订阅,一起学习一起成长~
文章目录
1. 什么是倒排索引
倒排索引这个概念,在信息检索领域使用比较广泛。核心的需求是:如何从超大规模的内容库中召回匹配关键字的结果。
比如,在谷歌中搜索包含 ”推荐系统“ 关键字的内容。最直观的做法是针对数据库中所有内容一条一条匹配。但这样查找复杂度至少是O(n),面对成千上亿的海量数据,效率上远远达不到要求。
因此,搜索引擎常规做法都是预先针对内容建立一个关键字索引。记录关键字对应的文档Id,位置,甚至是权重(分数),查询的时候,直接到表中获取关键字的文档列表,倒排索引一般使用hash索引结构,查询复杂度O(1)。可以极大减少检索时间。
2.倒排索引在推荐系统中的应用
在个性化推荐领域,倒排索引同样承担着召回的大任。搜索场景中,关键字是用户主动输入,推荐系统中的"关键字",更多的是依靠用户当下场景,上下文以及浏览行为等。
2.1 内容召回
其中一个比较大的应用场景是内容召回,也叫CB类召回。
在工业级推荐系统中,经常会离线分析用户的行为,得到一份对不同标签的偏好值。做的细一些,还会根据时间,偏好等不同维度进行划分。
根据用户的不同画像系统,通过倒排索引召回,可以增加用户的内容丰富度,比如最近 原神比较火,用户也频繁点击观看,那么下一次推荐中,可以召回更多原神相关的内容。
内容召回的特点是: 用户兴