医疗搜索中的 query 词权重算法探索
来源: 丁香园大数据
前言
计算query词权重(术语权重,也称作Term Necessity,Query Term Weight)是IR研究中的一个基本问题,属于Query解析的一部分。熟悉倒排索引的同学都知道,文档通常以词的粒度建立索引。所以对于词的解析,在Query解析中属于非常重要的工作。其中,不仅包括正确识别目标词,还包括围绕目标词的各种特征。
考虑以下场景,当Query只包含一个词时,用户需求单一,仅仅是对于某个事物相关的内容,比如 “考研”这样的Query,本身没有更多的限制,所以与这个话题相关的文档都基本符合预期;
当Query文本中包含不止一个词时,问题的复杂程度就发生指数级的增长。用户的搜索有更具体的需求,最直观的体现于文本长度增长,围绕目标词有了更多的补充、限制。同时Query的语序也相较文章类文本更加自由。
可以简单总结存在以下下几种情况:1. 实体词的属性(比如 “血粘度 的 判断标准”);2. 多个实体词组合成完整的语义(比如“2020年 执业医师 考试大纲”);3. 目标与多个实体同时相关(比如“北京 疫情”);4. 包含复杂逻辑的句子(比如 “为什么说肝病、垂体或甲状腺功能低下会使EPO产生不足呢?”)
想要满足以上所有情况,对系统的智能水平要求非常高,不管是学术界还是工业界,都在持续努力实现真正的短文本理解。本文介绍的Query词权重计算技术当然解决不了所有问题,它的重点在于,在整个pipeline中为召回阶段做一些贡献。而它的假设非常朴素:
当Query存在多个词时,每个词的重要程度是不同的,在基于词召回的基础上,对词设立优先级,以此达到近似Query原始的语义
举个例子,考虑Query为“血粘度 的 判断标准”,回忆我们在开篇提到的,索引的构建通常是以词为颗粒度。Query中的“血粘度”和“判断标准”在一般情况下是等价的,系统并没有倾向性。所以系统可能会返回用户仅包含“判断标准”的文档。当然,主流的搜索引擎(比如ES、Solr等)会利用一些统计指标做些优化(比如常见的BM25算法),但是这需要文档集中各个词分布符合理想预期。比如说,理想情况下“血粘度”的逆文档频应该比“判断标准”更高,在全局统计量的意义上应该更显著。遗憾的是,在很多case上是无法满足的。Query词权重计算想要解决的就是弥补全局统计量精度缺失的问题,放在上面这个例子中,就是即使系统无法满足完全包含“血粘度” 和 “判断标准”同时命中的需求时,退一步可以优先满足命中“血粘度”的情况,以保证在主题上的相关性。
丁香园团队希望能基于医疗背景下的搜索场景,找到提升搜索准确度的词权重算法。本文将结合过往关键词抽取等算法,介绍各类实验思路。
一. 基于统计的词权重模型
基于query和document之间的统计特征(词频, 共现,点击等),得到query的词权重分布,是直接且效果最显著的方法。
《Term Necessity Prediction》
词出现在相关文档中的概率是概率检索中的一个基本量,因为它衡量了术语的出现对文档相关性的必要程度。以往研究通常要么将这个概率设为常数,要么根据这个术语的文档反频率来估计它,这两种方法都不是非常有效的。本文分析了影响词权重的几个因素,如词的主题中心性、同义性和抽象性,并为每个因素设计了相应的特征,使得能够从训练数据中有监督地学习(回归模型)词权重。
《A flexible supervised term-weighting technique and its application to variable extraction and information retrieval》
传统的术语权重方案旨在提高检索任务的查全率和准确性。基于这些考虑,以往研究认为任何加权方案都至少需要三个主要因素:
- 术语在文档中的存在的局部因素
- 与每个术语相关联的全局值,它表示该术语在文档集中的使用频率,以这种方式对频繁使用的术语进行惩罚
- 归一化因子
尽管在许多情况下无监督权重方法效果显著,但这些方法并未充分利用”有监督”信息(例如:文档类型标签,文档热度标签等)。本文则是总结和设计了大量利用”有监督”信息的统计型术语权重方法,并将他们进行整合。
其中,互信息(MI),卡方,信息增益(IG),增益比(GR)原理相同,即每个类别下信息越丰富的术语,在该类正例和负例中分布也较多。而逆类频率因子(ICF),IDF变体—逆文档频率类别排除因子(IDFEC)则不仅限于区分,还加入不同的惩罚机制,使同类正负样本区别更大。基于概率的Prob算法将权重分为两类:描述能力和区分能力,如果该术语出现在许多类别的文档中,则描述能力比率会增加,而如果该术语仅出现在该类别的文档中,则区分能力比率会增加。关联频率因子(RF)因子则考虑了跨类的术语分布,即如果正例中的高频项的集中度高于负例中的高频项的集中度,对分类的贡献越大。
基于标记的文档集,提出了一种”有监督 “模型,可以根据术语的描述能力和区分能力对其进行加权。最后,描述性值和区分性值被组合为一个通用量度,该通用量度通过使用可调参数允许独立支持检索的不同方面,例如最大化精度或查全率,或在两者之间取得平衡。
通过在FDD函数中使用大于1的N值,可以使描述性相关性的权重高于判别性相关性(通过更多地强调有助于实现良好回忆的术语),而小于1的权重性描述性相关性则低于判别性相关性。
《Query Term Weighting Based on Query Performance Prediction》
本文提出了一种利用query扩展前后搜索结果(QPP)来计算query中词权重的方法。方法很巧妙的考虑到了同一个词在不同query中权重分布可能不同的问题,利用真实的搜索召回,使得词的权重不局限于本身的类型和语义,根据给定词对query搜索性能的影响来对其进行加权。
对于给定的术语,query将使用该单个术语进行扩展,然后获取相应的搜索结果。通过评估query扩展前后结果列表的质量来估算出该术语对query性能的边界影响。本文提供了一种检索后的QPP方法,用于估计这种“之前”和“之后”对query性能的影响。通过预测query性能的相对差异(正值,负值或无),确定给定词相对于原始query的重要性。为了最小化query drift风险,应该仔细选择用于扩展的术语。本文使用RM3关联模型来推导可以用来扩展给定术语的词。
二. 基于关键词提取的词权重算法
虽然充分的考虑到了共现,召回等特征,但前提是统计特征本身准确性要高,并且词本身的语义也并未考虑,模型灵活度和可扩展程度低,因此将这些特征融入关键词提取算法是一种很好地解决方式。
《MIKE: Keyphrase Extraction by Integrating Multidimensional Information》
不难发现,基于传统的textRank进行词权重计算,缺点非常明显,即文本长度太短导致的图算法基本是无用的,结果就是所有词的weight都相等。为了解决这个问题,扩充语义环境,在图模型初始化过程中就赋予大量的特征。
传统的监督式关键短语提取模型取决于标记的短语的特征,而流行的非监督式模型主要依赖于词图的结构,候选词作为节点,边捕获词之间的共现信息。然而,将所有这些多维异构信息系统地集成到一个统一的模型中是相对未曾探索过的。在本文中,专注于如何有效地利用多维信息来提高关键短语提取性能(MIKE),其中包括词共现,文档主题分布,Word2Vec。与现有的基于图的关键短语提取算法相比,MIKE充分利用了候选词之间的共现性、候选词的特征和候选词的主题特征,通过大幅度修改转换概率矩阵和重置底层词图概率向量,优化随机游走模型。这使得词图随机游走过程语义更丰富。(公式一为利用共现优化边特征,最终对转换概率进行修改;公式2为利用主题,词特征优化点特征,最终对重置概率进行修改)
《Keyphrase Extraction Using Knowledge Graphs》
添加主题特征,虽然可以拉大词之间的权重,但针对前言中提到的第四种情况,则必须引入知识图谱,本文则借助知识图谱中的实体,关系以及图结构,优化PageRank算法,进行关键词抽取工作。
给定一个文档,首先选择候选关键词。然后,基于语义相似度对关键词进行聚类,以覆盖更多的主题。每个簇中的关键项都链接到知识图中的实体。对于每个簇,以映射的实体作为锚节点,通过从知识图谱中提取h-hop键项图来映射输入文档中的键项与键项的关系,将所有聚类对应的所有关键项图合并成一个完整的文档图。对完整的文档图应用个性化的PageRank,得到每个候选关键词的排名得分。候选短语的PPR分数是关键字的PPR分数之和。并将另外两个短语特征(短语频数和第一次出现位置)与短语PPR评分相结合,得到最终的短语得分,并选择排名前K的短语作为关键短语。
加入知识图谱结构不仅解决了短文本上下文不足的问题,还极大地丰富了原有的图结构,做到合理性的语义环境扩展,使得词之间不仅是共现,而是包含isA,isProperty等实体关系的知识网。
![](https://img.6aiq.com/e/1bc90edd893e43b49dc529ac41758bb0.png
医疗搜索中的query词权重算法探索)
《SIFRank: A New Baseline for Unsupervised Keyphrase Extraction Based on Pre-Trained Language Model》
除了领域知识,部分搜索关键词同时也具有普遍的语义,如新闻类query。因此为获得更多的语义特征,也是query词权重模型需要攻克的难题。传统的关键短语提取模型很难包含大量的外部知识信息,但是随着预训练语言模型的兴起,出现了解决这一问题的新方法。本文提出了一种SIFRank的预训练语言模型的无监督关键字短语提取算法。SIFRank结合了句子embedding模型SIF和自回归预训练语言模型ELMo,在短文档的关键词提取中具有最佳性能。
本文选择句子embedding模型SIF来获得名词短语(NP)和文档的embedding,根据SIF理论,对于d文档,s语句的生成是一个动态随机游走过程。第k个单词wk在步骤k生成。假设所有单词的生成都是由单个主题cd决定的。对于给定的句子,句子embedding是主题embedding的最大似然估计,它决定了整个文档。因此,计算候选关键字embedding与文档embedding之间的距离就是计算候选关键字与文档主题之间的相似度。论文中提出了两个“平滑”假设。一个是假设上下文决定有些词是否出现。另一个假设是高频词(停用词)的出现与句子的主题无关。基于这些假设,以cd为主题的s句的生成概率为:
为了更好地适应不同领域的任务,在句子embedding计算过程中改变了单词的权重函数。该权重是公共语料库和领域语料库的加权和:
最终由文档和名词短语之间的相似度计算(SIFRank)得到关键词:
《TeKET: a Tree-Based Unsupervised Keyphrase Extraction Technique》
与以往基于图的关键词抽取模型不同,TeKET在图结构上做了很大的改动,即由原来的图结构变为树结构,目的是解决以往模型的一些缺点:
textRank:无法对不同的词进行聚类获取一定的主题信息;理想情况下,关键词是中心度度量值最高的词语,即没有将目标从捕获单个节点连接的质量和数量切换为考虑节点组的密度和内聚性;许多有价值的关键短语可能位于层次结构底端。
TopicRank和MultipartiteRank:属于同一主题的词语权重相同;主题生成过程中存在error propagation;聚类错误(可能将候选关键词短语错误地分配给相似的主题)导致在选择最具代表性的候选样本时会出现错误。
在传统的无监督关键字提取技术中,候选关键字直接送到排名阶段。相反,在候选关键词阶段和排序之间若加入一个中间阶段,可以减轻对不必要关键词的排序负担。基于三种假设:
- 假设1:二元决策图(binary decision strategy)和词频可以决定哪些词是关键词
- 假设2:候选词集中,通过计算一个词n-gram的内聚性和频率,来可以缩小候选词的范围
- 假设3:候选词集中,通过计算一个词n-gram的内聚性和频率,来可以扩大候选词的范围
KePhEx树基于候选关键字扩展(假设3)或收缩(假设2)或保持相同状态(假设1)。使用KePhEx树进行关键短语提取的优点有三个:可以从候选关键短语中提取高质量关键词;关键短语提取过程灵活性更高;通过计算关键字中单词相对于根的凝聚力值来辅助排名。
在不同种类的树型数据结构中,KePhEx树属于二叉树。同样,尽管二叉树存在多种变体,但它与其他变体不同,因为树中每个节点的位置和级别都是固定的。同样,与其他变体不同,上层节点(包括根节点)的所有前置节点也都是固定的。之所以如此,是因为一个好的关键词是一个连贯的、连续出现在文本中的单词序列。KePhEx树中的每个节点都包含CI和μ值。CI提供了两个优点:(i)有助于找到关于树根的各种单词的内聚性,这是对关键短语进行排序的一个重要因素;(ii)当μ值会根据该词是否为候选关键短语而增减,为关键短语提取过程提供灵活性。
最终将关键词抽取问题过程重新定义为:构建树结构,树结构基本操作(剪枝,增加节点);更新μ值;抽取关键词。
三. 神经网络模型在词权重上的应用
基于统计的词权重模型可以很好的贴合不同领域下的搜索,但是意味着大量的特征需要线下计算,神经网络模型就能很好地解决这一问题。
《Towards Beer Text Understanding and Retrieval through Kernel Entity Salience Modeling》
本文提出了一个使用神经网络对实体显著性进行端到端估计的核心实体显著性模型(KESM)。给定文档中带注释的实体,KESM使用知识丰富的embedding表示实体,并使用内核交互模型对实体和单词之间的交互进行建模。通过KESM结合交互模型的核得分来估计实体显著性,并使用大量显著性标签对整个模型(包括知识丰富的embedding和内核交互模型)进行端到端的学习。
KESM还通过建模候选文档中查询实体的显著性来改进ad hoc搜索。给定一个查询文档对及其实体,KESM使用其内核来建模查询实体与文档中的实体和单词的交互作用。然后,将内核得分合并为排名特征,并将这些特征组合起来对文档进行排序。在ad hoc搜索中,KESM既可以在没有排名标签的情况下进行端到端的训练,也可以先对显著性任务进行预先训练,然后作为显著性排序特征提取器进行搜索
《Context-Aware Sentence/Passage Term Importance Estimation For First Stage Retrieval》
频率是一种用于识别query或文档中术语重要性的常用方法。但这是一个微弱的信号,尤其是当频率分布平坦时,例如在长query或文本长度为句子/段落长度短的文档中。本文提出了一个深度上下文化术语权重框架,该框架学习将BERT的上下文化文本表示形式映射到句子和段落的上下文感知术语权重。当应用于段落时,DeepCT-Index会产生术语权重,可以将其存储在普通的倒排索引中以进行段落检索。当应用于query文本时,DeepCT-Query会生成一个加权的词袋query。两种类型的术语权重都可以由检索算法直接使用。
DeepCT包含两个主要部分:通过BERT生成上下文的词向量,以及通过线性回归预测术语权重。DeepCT通过回归训练,旨在最大程度地减少预测权重与目标权重之间的均方误差(MSE)
由于预测结果范围是[0,1],为了应用到现有的检索模型中,将其缩放到可以与检索模型一起使用的整数范围。即将上述y值转化为为TFDeepCT,以表示这是代表query中term重要性:(实际上,最后这一步可能决定词权重这一特征在排序或检索模型中的效果)
四. 如何做出适合丁香园搜索的词权重模型
对于一个医疗领域的搜索,首先应背靠强大的医学知识体系。无论是在文本打标签,还是词权重,对于知识图谱的灵活运用是决定领域搜索的关键。其次,结合业务特点定制算法。如前言中的例子,可能在一般的通用搜索中并不明显,但是在医疗领域搜索中却非常常见。
模型采用基于知识表示的textRank模型,利用实体词的知识表示(实体和关系)加重实体词在query中的重要性,同时也采用了一些统计特征,如tfidf,属性词表,停用词表等,降低其他词的权重,从而拉大词之间的权重差距。为辅助排序效果,对原始的权重进行TFDeepCT策略,进一步拉开差距,但是对原本分词效果不好(“青岛滨海学院附属医院”应该是一个词,但是分词结果为“青岛 滨海 学院 附属医院”,这导致最终结果会对这几个词中的某一个词着重搜索)和词差距不大的query(2019考研试题,这实际上算是一个名词短语,其实并不存在谁最关键)不进行TFDeepCT。同时为使用更多的统计特征,上述模型基础上复现MIKE,加入了点击,主题分布,query-搜索结果共现等特征。
后期还计划化将知识图谱结构和TeKET融入到词权重算法当中,进一步贴合医疗领域知识特点。
总结
本文主要从不同角度分析了医疗搜索中常见的问题,并针对问题介绍了如何更好的实现query词权重算法。在实验过程中,一直存在的壁垒是:一个好的词权重分布在排序或者检索模型中起不到相应的作用。因此后续的工作不仅要对原模型不断优化,更多的是考虑词权重特征如何与其他排序或检索模型特征在归一化过程中,保留原有的权重分布。
参考文献
[1]《Term Necessity Prediction》
[2]《Query Term Weighting Based on Query Performance Prediction》
[3]《A flexible supervised term-weighting technique and its application to variable extraction and information retrieval》
[4]《MIKE: Keyphrase Extraction by Integrating Multidimensional Information》
[5]《Keyphrase Extraction Using Knowledge Graphs》
[6]《SIFRank: A New Baseline for Unsupervised Keyphrase Extraction Based on Pre-Trained Language Model》
[7]《TeKET: a Tree-Based Unsupervised Keyphrase Extraction Technique》
[8]《Towards Beer Text Understanding and Retrieval through Kernel Entity Salience Modeling》
[9]《Term Necessity Prediction》
[10]《Context-Aware Sentence/Passage Term Importance Estimation For First Stage Retrieval》
[11]《Learning to Reweight Terms with Distributed Representations》