zoukankan      html  css  js  c++  java
  • DeText: A Deep Text Ranking Framework with BERT论文笔记

    1. 论文是基于什么问题提出来的

      在搜索排序框架中设计NLP的部分计算用户query和候选document之间相关性,这对于搜索产品系统中的在线服务是十分低效的。本文主要讨论如何通过架构层面的设计,在线上实时应用中嵌入BERT类的复杂模型。

    2. 解决该问题有什么困难点

      因为如BERT这类模型需要很高的计算能力,使用时需要花费大量时间,所以如何通过架构层面的设计,在线上实时应用中嵌入BERT类的复杂模型是主要的困难点。

      通过独立的计算query 和 document 嵌入,可能会失去queries 和documents 在词级之间的关联性,所以需要权衡开发基于BERT的排序模型的准确性和高效性。

    3. 论文提出了什么方法

      提供了个新的模型设计,采用表示结构(representation-based)的基于BERT的排名模型。

      并将该方法扩展到一个通用的排名框架DeText,可以灵活地应用于不同的搜索产品

    4. 具体的模型设计为什么能够解决该困难

    在DeText 框架中,文本嵌入层可以使用CNN/LSTM/BERT。如果用的是CNN/LSTM,在Token Embedding 层,token是一个单词,在BERT中,token是subwords,再在文本嵌入层中使用对应的NLP模型。
    

    在在线部署中,如何通过框架结构层面的设计来嵌入BERT类的复杂模型呢?

    采用文档预计算来进行搜索排名(离线的),对于离线文档嵌入使用BERT预先计算的,并保存在嵌入存储中。嵌入存储是key-value存储,每天定时刷新。输入搜索index后,从预计算的嵌入存储中获取document 嵌入的document id。这样可以只在query时进行BERT在线计算,由于document text比 query text大的多,所以可以明显减少在线的计算时间。

    DeText-CNN 采用的不同的在线集成策略:对源和目标进行实时推理。实时推理可以简化在线系统设计,而不需要预计算或刷新document 嵌入。

    该框架中,使用两边排名模式(two pass ranking box)来限制延迟。在MLP层中,只有一个Hidden layer,没有deep features,所以速度很快。排名后,只有排名靠前的数百个document会被发送到DeText-CNN模型。

    1. 最后总结下论文的创新点

      提供了一种结构来支持NLP排序,并且具有下列优点:

      1.支持最先进的语言模型(CNN/BERT/LSTM)2.效果和效率之间达到平衡。3.提供模块化配置提高灵活性。

      双向的排名框架有两个好处:

      1.易于实施和部署

      2.MLP排名器可以过滤掉大量无关文档

      3.延迟有限,CNN可以适用于少量人群

    2. 分析下他所对比的方法的不足的原因

    1.DeText-MLP、DeText-CNN、DeText-LiBERT:由于DeText-MLP不使用任何文本嵌入,所以DeText-CNN比他要好一些。DeText-LiBERT能够进一步提高NDCG的分数。由上述两个模型表明,深度学习模型能够捕捉大量语义文本匹配,是因为对人为特征制作功能的必要补充。

    2.DeText-BERT(BASE)、DeText-LiBERT:在人员搜索和工作搜索方面,LiBERT的表现要比BERT要好一些。因为LiBERT需要域内数据的预处理且LiBERT的参数只有BERT(BASE)的1/3.

    一些补充

    基于交互(interaction based)模型和基于表示(representation based)模型

    representation based model: query 和 document 先各自计算表示向量,再计算相似度。优点是document的表示向量可以离线计算存储,降低实时处理的计算量。缺点是由于交互时只有高层级的抽象语义表示,无法进行局部文本片段的匹配。

    interaction based model:query 和 document从一开始就合并处理,中间过程不产出独立表示向量,直接给出相似度得分。优点是效果好,缺点是计算负担大。

    领英选择了representation based model

    DSSM

    全称Deep Structured Semantic Model,利用深度神经网络把文本(句子、Query、实体等)表示成向量,应用于文本相似度匹配场景下的一个算法。

  • 相关阅读:
    python中的time模块
    CSS 布局
    8 Function类型
    2 node 核心
    1 node 简介
    13 对象
    JS 算法一
    JS 模块化
    1 谈谈section标签
    JS 练习一
  • 原文地址:https://www.cnblogs.com/jev-0987/p/14952406.html
Copyright © 2011-2022 走看看