1. 程式人生 > 其它 >DeText: A Deep Text Ranking Framework with BERT論文筆記

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、實體等)表示成向量,應用於文字相似度匹配場景下的一個演算法。