查询关键字理解第一步:给查询关键字分类,判断用户意图。
基本分类:导航目的、信息目的、交易目的
导航目的:达到某个网站,比如公司官网 26%
信息目的:搜集信息,比如信息检索 50%
交易目的:到达一个中间站点从而进一步完成“交易”,比如购物 24%
方法:多类分类问题,监督学习任务。
特征:查询关键字本身的信息,搜索引擎返回的查询关键字相关的页面本身的信息,用户的行为信息(用户在输入查询关键字以后会点击什么网站,会在哪些网站停留)
Question1: 在普通的现代搜索引擎上,每天可能有三分之一、甚至更多的关键字是之前没有出现过的。因此,如何处理从来没有出现过的关键字、如何处理长尾中的低频关键字,就成了让搜索结果的精度再上一个台阶的重要因素。
第二步:解析
查询关键字分割
类似中文分词的问题,或者看作从一个查询关键字到多个短语的多个二元决策问题(指某一个备选短语是否可以作为分割的短语)
方法:
1)尝试从查询关键字里面产生“N元语法”
2)基于短语”互信息“方法
3)基于CRF:对输出的复杂标签进行建模,尝试从特征空间建立到复杂标签的一个对应关系
查询关键字标注
比如苹果标注为水果,还是电子产品品牌的问题
方法:
1)《structural annotation of search queries using pseudorelevance feedback》利用PRF(pseudo-relevance feedback)的方法进行标注
2)CRF方法:构建一个有标注信息的数据集就变成了查询关键字标注的一个核心挑战
学习论文:《query to knowledge:unsupervised entity extraction from shopping queries using adaptor grammars》
第三步:扩展
主要目的:不仅仅是希望能够对用户输入的关键字进行理解,还希望能够补充用户输入的信息,从而达到丰富查询结果的效果。
比如:用户输错了字进行更正,补全用户输入的问题,提供一些”扩展选项“等等
一个被改写过的查询关键字,会提供更加好的用户体验和更加精准的搜索结果
对”精度“和”召回“的平衡,成了查询关键字扩展的一个重要的权衡点。
查询关键字扩展的另一个重要应用就是 对同义词和缩写的处理。
技术:核心是找到搜索结果意义上的”同义词“
1)根据查询关键字和查询结果之间的自然结合产生的同义效果。
需要对用户的搜索行为数据进行大规模挖掘。基本假设:两个查询关键字A和B下,用户点击了相似的网页,推断出A和B是同义的查询关键字。更加完整的做法:查询关键字和网页表示为图中的两类节点。图中边象征这些网页对应这个关键字的相关页面。
因此,寻找同义词就变成了如何在这个图上进行相似节点,特别是相似关键字节点的挖掘工作。
即二分图的聚类问题。
学习资料:《query suggestion using hitting time》利用二分图上的随机游走,以及随机游走所产生的到达时间
2)从海量的文本信息中分析词语之间的相关度,即embedding
学习资料:《query expansion with locallytrained word embeddings》