搜索引擎学习记录_2024
本文为学习笔记,基于王树森老师的书籍和视频、网上收集的资料做的整理
文档&书籍:【王树森】SearchEngine: 搜索引擎原理
视频地址:推荐系统 - YouTube
参考:wangshusen/RecommenderSystem、solidglue/Recommender_System、datawhalechina/fun-rec
博客:推荐 – chenpaopao、工业界真实的推荐系统-小红书
其实搜索和推荐比较相似,搜索多了个QP,比较大的一部分技术和指标比较相通,搜索比推荐另外搜索排序考虑的因素更多,如相关性、内容质量、时效性、个性化等,而推荐主要考虑个性化ctr
入门
入门文档:wangshusen/SearchEngine: 搜索引擎原理
- 垂直搜索:文档结构化、意图明显
- 通用搜索:没有结构化,检索难度大、意图难判断
Base
用户满意度
相关性:
定义:q 和 d 的关系
客观标准,不取决于用户u;语义上不是字面上;只需 d 命中 q 的一种主要意图
内容质量
TODO:打分模型
- EAT:专业性、权威性、可信赖,针对作者和网站。(对金钱、健康类的查询词尤为重要。
- 文本质量:针对文档本身
时效性
突发实效性【如汇率、政策】
识别方法:数据挖掘为主
一般实效性【如薅羊毛、黄金价格、相机测评】
识别方法:BERT 等
周期实效性【如双十一、春晚小品】
识别:不处理(表现突发时效性时会被挖掘到,只是可能会慢半拍或遗漏)、人工标注 or 数据挖掘识别周期
个性化
Relevance
定义与分档、评价指标、文本匹配、语义匹配。
query process
分词Tokenization:文本召回需要根据词(term)去倒排索引中检索文档。
实体识别NER:美团搜索中NER技术的探索与实践 - 美团技术团队
词权重Term Weight:必要时可以丢词处理;计算相关性时可以用来加权
类目识别:NLP识别(文档类目离线识别,搜索query在线识别)、召回排序将类目作为特征使用
意图识别:用于召回排序时考虑别的因素
- 实效性:考虑doc年龄
- 地域性:考虑地点(用户定位、query提及、doc定位)
- 用户名:识别后应检索用户名库
- 求购意图:识别后应检索商品库
- ….
改写:解决以下问题
- 语义匹配但文本不匹配
- 召回doc数量太少
Recall
从文档库(数亿)中快速检索数万篇可能与 q 相关的 d
文本召回:借助倒排索引,匹配q中的词和d中的词。
q 分词,对每个词检索倒排索引,求这些集合的交集;但交集可能比较少,所以需要对 q 做丢词或者改写
向量召回:将q和d分别表征为向量 x_q 和 z_d,给定x_q,查找相似度高的 z_d
一个塔算出查询词向量,另一个塔算出物品向量然后用Ann来匹配相似度
KV离线召回:对于高频查询q,离线建立q -> List
这样的key-value 索引。线上直接读取索引,获取 q 相关的文档。
Rank
排序依据:融合相关性、内容质量、时效性、CTR/CVR等多种分数。
To be continue…