<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【關(guān)于 Sentence-BERT】 那些你不知道的事

          共 1934字,需瀏覽 4分鐘

           ·

          2021-07-07 03:07

          作者:楊夕

          項目地址:https://github.com/km1994/nlp_paper_study

          論文:Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks

          個人介紹:大佬們好,我叫楊夕,該項目主要是本人在研讀頂會論文和復(fù)現(xiàn)經(jīng)典論文過程中,所見、所思、所想、所聞,可能存在一些理解錯誤,希望大佬們多多指正。

          論文地址:chrome-extension://ikhdkkncnoglghljlkmcimlnlhkeamad/pdf-viewer/web/viewer.html?file=https%3A%2F%2Farxiv.org%2Fpdf%2F1908.10084.pdf

          動機

          • 方法一:BERT使用交叉編碼器:將兩個句子傳遞到變壓器網(wǎng)絡(luò),并預(yù)測目標值;

            • 問題:由于太多可能的組合,此設(shè)置不適用于各種對回歸任務(wù)。在n = 10000個句子的集合中找到相似度最高的對需要BERT n·(n-1)/ 2 = 49 995 000推理計算。在現(xiàn)代V100 GPU上,這大約需要65個小時。類似地,對于一個新問題,找到Quora的超過4,000萬個現(xiàn)有問題中最相似的一個可以建模為與BERT的成對比較,但是,回答單個查詢將需要50多個小時。


          • 方法二:解決聚類和語義搜索的常用方法是將每個句子映射到向量空間,以使語義相似的句子接近。研究人員已開始將單個句子輸入BERT,并得出固定大小的句子嵌入。最常用的方法是平均BERT輸出層(稱為BERT嵌入)或通過使用第一個令牌的輸出([CLS]令牌);

            • 問題:就像我們將要展示的那樣,這種常規(guī)做法產(chǎn)生的句子嵌入效果很差,通常比平均GloVe嵌入效果更差。

          解決方法

          為了緩解此問題,我們開發(fā)了SBERT。siamese network 體系結(jié)構(gòu)使得可以導(dǎo)出輸入句子的固定大小矢量。使用余弦相似度或Manhatten / Euclidean距離之類的相似度度量,可以找到語義上相似的句子。這些相似性度量可以在現(xiàn)代硬件上非常高效地執(zhí)行,從而允許SBERT用于語義相似性搜索以及聚類。 在10,000個句子的集合中查找最相似的句子對的復(fù)雜性從使用BERT的65小時減少到計算10,000個句子嵌入(使用SBERT約為5秒)和計算余弦相似度(?0.01秒)。通過使用優(yōu)化的索引結(jié)構(gòu),可以將找到最相似的Quora問題從50小時減少到幾毫秒。

          方法介紹

          對 BERT 的輸出添加 三種 pooling operation

          • Using the output of the CLS-token;

          • computing the mean of all output vectors (MEANstrategy);

          • computing a max-over-time of theoutput vectors (MAX-strategy)

          針對不同的任務(wù),建立三種目標函數(shù)

          • Classification Objective Function(上圖左)

          1. 獲取到 兩句話 的 句子向量 u 和 v;

          2. 將 u 、v 和二者按位求差向量 |u-v| 進行拼接;

          3. 拼接好的向量乘上一個可訓(xùn)練的權(quán)重 Wt;

          • Regression Objective Function (上圖右)

          目標函數(shù)是MSE-loss,直接對兩句話的句子向量 和 計算余弦相似度,然后計算。

          • Triplet Objective Function

          在這個目標函數(shù)下,將模型框架進行修改,將原來的兩個輸入,變成三個句子輸入。給定一個錨定句 a ,一個肯定句 p和一個否定句 n ,模型通過使 p和a 的距離小于 n和a 的距離,來優(yōu)化模型。使其目標函數(shù)o最小,即:

          實驗結(jié)果

          模型效果對比實驗

          消融實驗

          本實驗檢測了不同pooling方法和不同特征concat手段對結(jié)果的影響。最終發(fā)現(xiàn),特征concat方式對結(jié)果有較大的影響,而pooling方法影響不大。特別的是,加上u*v這個特征后,效果反而會有所下降。

          計算開銷試驗

          該實驗衡量了不同的句子Embedding生成方法的速度。從圖中可以看出,在CPU上運行時,InferSent的速度比SBERT大約快65%;但切換到可并行的GPU后,transformer可并行的優(yōu)勢就顯現(xiàn)出來,當SBERT采用聰明的batch size時,它的速度比InferSent快~9%。


          瀏覽 165
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  伊人在线观看视频网站 | 无码视频免费在线观看 | 在线观看日批 | 欧美三级网站 | 91视频久久久久久 |