HDCT全称Context-aware Hierarchical Document Term weighting framework,即上下文层级文档词权重框架,是一种为搜索提供词权重的一种方式。它是我上一篇分享的DeepCT的进阶版,DeepCT介绍链接如下:刘聪NLP:检索系列文章之DeepCT论文笔记。
论文全名:Context-Aware Document Term Weighting for Ad-Hoc Search
论文地址:paper
论文代码:code,不过代码还没放出来,也不知道什么时候放出来。
由于是进阶版,建议读者阅读该论文笔记时,先阅读一下DeepCT的论文笔记。一些任务细节,在这篇中就不做过多介绍了。
与DeepCT相比,该篇论文主要为了解决长文档问题,打破BERT的最大字符长度512的限制,提出了新的框架结构;并且提出了多种label构建的方式,将其进行融合,共同作为目标词语权重。如图1所示。
解决长文档问题:在文档检索时,文档内容有时会很长,上千字上万字都有可能。如果想要使用BERT模型去预测每个词的权重,就需要解决512个token的长度限制。简单直白地做法,就是对文档切割成段落,将段落长度控制在512个token内,预测之后,再将每个段落融合起来,变成原来的文档。
Passage-Level Term Weighting
该论文中的段落切割,按照连续句子将文档进行切割,词的个数控制在300左右。词权重的预测与DeepCT一致,将经过BERT得到的上下文词embedding(一个包含了词语在特定语境中的句法和语义信息的特征向量)通过线性地变化成一个词语的重要性得分:
其中,
为了使
其中,
并且论文采用两个后处理步骤:(1)处理BERT的子词,使用第一个子词来代表整个词的权重;(2)当一个词在段落中出现多次时,使用对多次出现的词的最大值作为该次的词权重。
最后使用bag-of-words vector表示段落p,如下:
Document-Level Term Weighting
一个文档由多个段落组成,而一个词在文档中的重要性应该是它在每一个段落中的重要性的加权和,如下:
其中,
这两种策略如图所示,在不同数据集上表现不一样,所有还是要根据数据来规定具体的方案。
多种弱监督方法构建标签的方式:在监督学习中,标签的质量决定了模型的上线。在该篇论文中,提出了三种弱监督方法构建label,使词权重的标签更加精准。
Supervision from Document Content
一个普适的检索系统应该仅从自身的文档集合中能够构建较好的搜索引擎,因此,第一种label构建的策略是从文档本身挖掘标签。
在许多域中,文档的结构是多样的,包含各种文本信息(引用字段),比如标题、关键字和链接等;各种研究表明,这些引用字段类似于真实的用户查询,相当于提供了一个简短的摘要,说明文档是关于什么的以及它可能满足哪些搜索意图。这些简短、具有高度代表性的字段提供了证据,说明哪些术语在文档中具有高度重要性。
论文中定义,
其中,
Supervision from Relevance
当搜索问题和搜索结果的相关文档可用时,它们能够提供更多关于用户的搜索意图和兴趣的丰富信息。为了使文档词语权重与用户搜索数据中的模式保持一致,该论文提出了基于相关性的弱监督标签。一个训练文档
其中,
Pseudo-Relevance Feedback
在某些情况下,搜索问题是可用的,但是搜索结果的相关文档是不可用的。因此,该论文提出了基于伪相关性反馈的弱监督标签生成策略。它需要一个现有的检索系统,例:BM25,来为搜索问题检索相关的文档。对于每个搜索问题,检索出top K个相关的文档,而这些文档认为与该问题具有伪相关性。然后收集文档的伪相关查询,构建
其中,
总结
个人认为,该篇论文是对DeepCT的一种改进吧,更加符合我们真实搜索系统的场景。有相关问题的小伙伴,可以留言或私聊我呦,可以一起探讨~~~~
以上就是我对该篇论文的理解,如果有不对的地方,请大家见谅并多多指教。如果喜欢的话,希望可以多多点赞,关注。
广告时间,哈哈哈哈。推荐几篇本人之前写的一些文章:
刘聪NLP:短文本相似度算法研究
刘聪NLP:阅读笔记:开放域检索问答(ORQA)
刘聪NLP:NEZHA(哪吒)论文阅读笔记
刘聪NLP:UniLM论文阅读笔记
刘聪NLP:UniLM-v2论文阅读笔记
喜欢的同学,可以关注一下专栏,关注一下作者,还请多多点赞~~~~~~