2018年12月15日
本章内容
本章分为4个部分
- 简单回顾信息检索的核心该你那:倒排索引和布尔检索
- 讲解O2O场景下查询理解核文档召回的设计与实现要点讲解O2O场景下查询理解核文档召回的设计与实现要点
- 专注于搜索用户引导,讲解辅助用户输入查询的多个方面及其在O2O场景下的思考专注于搜索用户引导,讲解辅助用户输入查询的多个方面及其在O2O场景下的思考
- 本章小结:从宏观上阐述美团搜索在查询理解核用户引导方面的主导思想本章小结:从宏观上阐述美团搜索在查询理解核用户引导方面的主导思想
用户输入查询理解
用户输入查询理解分为六个部分:
- 意图识别
- 实体识别
- 词权重计算
- 查询改写
- 相关性计算
意图识别
可以看成是分类、聚类、主题分布的问题
分类问题:文中推荐使用二分类,相对于多分类有更好的扩展性,但是需要设计好评估的指标
实体识别
实体识别主要使用的模型:隐马尔科夫模型、条件随机场、支持向量机、最大熵
词权重计算
可以使用三种计算方法:
- TF-IDF
- 优点:实现简单
- 缺点:静态得分,不会根据不同的场景考虑不同的相对重要性
- 基于规则打分
- 结合词性来打分
- 基于统计学习
- 训练样本的获得:人工样本 ,用户点击共现
- 用户点击共现的思路:查询词中出现在被点击的文档的展示字段的词项为正样本,其余词项为负样本。
查询改写
例子:
查询词:西直门宾馆。宾馆,其实还有快捷酒店、客栈、旅店、旅馆、旅社
查询词:陕西美食,包含肉夹馍、凉皮、牛羊肉泡馍
替换:同义词,缩写词
删除:Term Selection(实体模板——序列标注;Classification——监督学习)
扩展:语义(LDA,Word Embedding)无监督学习;词项(上位词,下位词)知识发现;链接分析,点击二部图,Simrank++,Session挖掘——用户行为标注
对齐:Machine Translation——点击Q-T命中
相关性计算
使用的是BM2.5
按照词项权重做分层排序,将全部词项求交命中的结果置于最顶层,尔后依次去掉一个或多个词项,按照去掉词项的数量分层排序,每一层内又依靠词项权重重排优先级。
用户搜索引导
用户搜索引导根据搜索的状态分为三种:
- 搜索前引导:热词,历史搜索词,默认搜索词
- 搜索中引导:查询补全
- 搜索后引导:相关搜索推荐
搜索前引导
构建词库,包括:默认搜索词和热词,用户的历史搜索词
美团是一个系统来实现
排序层:
- L1层:规则排序层,通过场景规则对结果集整体进行排序,比较少考虑个性化
- L2层:学习排序层,LRT技术对L1层排序靠前的数百条结果进行个性化的调整。Skip Above方式(第N条结果发生指定的用户行为,前N-1条被浏览却未发生用户行为的结果被认为是负样本)L2层:学习排序层,LRT技术对L1层排序靠前的数百条结果进行个性化的调整。Skip Above方式(第N条结果发生指定的用户行为,前N-1条被浏览却未发生用户行为的结果被认为是负样本)
- L3层:后处理层,展现结果前的最后处理。出现特定场景下的运营,系统效果健壮性的一种保障。L3层:后处理层,展现结果前的最后处理。出现特定场景下的运营,系统效果健壮性的一种保障。
查询中引导
最重要的是用户搜索日志——新词也能够从日志中解析出来,反馈者热点的变化
考虑用户输入的方式:自左向右依次输入文本
构建前缀召回:
- Trie树
- HashTable:键值对,响应时间快,但是空间大HashTable:键值对,响应时间快,但是空间大
- 倒排索引倒排索引
分为三类:
- 普通前缀:火——》火锅
- 拼音前缀:h、huo、huog拼音前缀:h、huo、huog
- 简拼前缀:hg——》火锅简拼前缀:hg——》火锅
排序层:
- 粗排层
- 学习排序层学习排序层
- 人工逻辑层人工逻辑层
接下来需要实现
- Python调用ES的驱动
- 意图识别的分类、LDA
- 实体识别的条件随机场、LSTM模型
- 文章相关性:BM2.5
- 词权重:TF-IDF、word Embedding
- 查询补全:Trie树(普通前缀,拼音前缀,简称前缀)
- 查询改写:同义词,点击二部图