0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

通過Token實現(xiàn)多視角文檔向量表征的構建

深度學習自然語言處理 ? 來源:NLP工作站 ? 作者:劉聰 ? 2022-07-08 11:13 ? 次閱讀

寫在前面

今天給大家?guī)硪黄?a target="_blank">ACL2022論文MVR,「面向開放域檢索的多視角文檔表征」,主要解決同一個文檔向量與多個語義差異較大問題向量語義不匹配的問題。通過「插入多個特殊Token」實現(xiàn)多視角文檔向量表征的構建,并為了防止多種視角間向量的趨同,引入了「退火溫度」的全局-局部損失,論文全稱《Multi-View Document Representation Learning for Open-Domain Dense Retrieval》。

該篇論文與前兩天分享的DCSR-面向開放域段落檢索的句子感知的對比學習一文有異曲同工之妙,都是在檢索排序不引入額外計算量的同時,通過插入特殊Token構建長文檔的多語義向量表征,使得同一文檔可以與多種不同問題的向量表征相似。

8665290c-f08c-11ec-ba43-dac502259ad0.png

并且目前的檢索召回模型均存在一些缺陷:

Cross-encoder類模型(BERT)由于計算量太大,無法在召回階段使用;

Bi-encoder類模型(DPR)無法很好地表現(xiàn)長文檔中的多主題要素;

Late Interaction類模型(ColBERT)由于使用sum操作,無法直接使用ANN進行排序;

Attention-based Aggregator類模型(PolyEncoder)增加了額外運算并且無法直接使用ANN進行排序。

867ad496-f08c-11ec-ba43-dac502259ad0.png

模型

868cedd4-f08c-11ec-ba43-dac502259ad0.png

通常向量表征時,采用特殊字符[CLS]對應的向量表征作為文本的向量表征。為了獲取文檔中更細粒度的語義信息,MVR引入多個特殊字符[VIE]替代[CLS]。

對于文檔來說,在文本前插入多個字符[],為了防止干擾原始文本的位置信息,我們將[]的所有位置信息設置為0,文檔語句位置信息從1開始。

對于問題來說,由于問題較短且通常表示同一含義,因此僅使用一個特殊字符[VIE]。

模型采用雙編碼器作為骨干,分別對問題和文檔進行編碼,如下:

其中,表示鏈接符,[VIE]和[SEP]為BERT模型的特殊字符,和分別為問題編碼器和文檔編碼器。

如上圖所示,首先計算問題向量與每個視角的文檔向量進行點積,獲取每一個視角的得分,然后通過max-pooler操作,獲取視角中分值最大的作為問題向量與文檔向量的得分,如下:

為了防止多種視角間向量的趨同,引入了帶有退火溫度的Global-Local Loss,包括全局對比損失和局部均勻損失,如下:

其中,全局對比損失為傳統(tǒng)的對比損失函數(shù),給定一個問題、一個正例文檔以及多個負例文檔,損失函數(shù)如下:

為了提高多視角向量的均勻性,提出局部均勻性損失,強制將選擇的查詢向量與視角向量更緊密,原理其他其視角向量,如下:

為了進一步區(qū)分不同視角向量間的差異,采用了退火溫度,逐步調整不同視角向量的softmax分布,如下:

其中,為控制退火速度的超參,為模型訓練輪數(shù),每訓練一輪,溫度更新一次。注意:在全局對比損失和局部均勻損失中,均使用了退火溫度。

實驗

如下表所示,MVR方法對比于其他模型,獲取了更好的效果。

86a9f596-f08c-11ec-ba43-dac502259ad0.png

并且,通過實驗發(fā)現(xiàn),當視角個數(shù)選擇8時,MVR模型效果最佳。

86d99328-f08c-11ec-ba43-dac502259ad0.png

針對Global-Local Loss進行消融實驗,發(fā)現(xiàn)當沒有局部均勻損失和退火溫度時,會使得效果下降;當兩者都沒有時,效果下降更加明顯;并且一個合適退火速度,對訓練較為重要。

86ef0b4a-f08c-11ec-ba43-dac502259ad0.png

相比于其他模型來說,在文檔編碼階段和檢索召回階段的速度基本沒有影響,但由于需要存儲多個視角向量,因此造成存儲空間變大。

8705501c-f08c-11ec-ba43-dac502259ad0.png

并且,對比了簡單的句子切割或者等片段截斷方法獲取一個文本的多個向量表征,發(fā)現(xiàn)其效果均不理想,與DCSR一文觀點一致。

87189046-f08c-11ec-ba43-dac502259ad0.png

總結

該論文為了對長文檔更好地進行向量表征,引入多個特殊字符,使其生成「多種不同視角的向量表征」,解決了同一個文檔向量與多個語義差異較大問題向量語義不匹配的問題。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編碼器
    +關注

    關注

    45

    文章

    3647

    瀏覽量

    134702

原文標題:ACL2022 | MVR:面向開放域檢索的多視角文檔表征

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    通過工業(yè)智能網(wǎng)關實現(xiàn)中間變量表達式的快速配置

    ,出現(xiàn)告警可能是多個變量達到條件而觸發(fā)的,就需要對中間變量進行配置。 對此,物通博聯(lián)提供基于工業(yè)智能網(wǎng)關實現(xiàn)中間變量表達式的快速配置操作。用戶可以根據(jù)生產(chǎn)現(xiàn)場的應用需求,靈活配置中間變量表達式,
    的頭像 發(fā)表于 10-08 17:10 ?258次閱讀
    <b class='flag-5'>通過</b>工業(yè)智能網(wǎng)關<b class='flag-5'>實現(xiàn)</b>中間變<b class='flag-5'>量表</b>達式的快速配置

    量表接入能源監(jiān)測平臺實現(xiàn)遠程監(jiān)控節(jié)能管理

    在這個信息化、智能化的時代,節(jié)能減排已經(jīng)成為全球共識。如何在保障生活質量的同時,最大限度地節(jié)約能源? 熱量表是一種用于測量供暖或制冷系統(tǒng)中熱能消耗的設備。通過加裝塊熱量表,可以精確地
    的頭像 發(fā)表于 07-22 10:42 ?289次閱讀

    通過工業(yè)智能網(wǎng)關實現(xiàn)CJ188水表數(shù)據(jù)采集

    的集中抄表系統(tǒng),是工商業(yè)能耗數(shù)據(jù)采集的協(xié)議通道。 對此,物通博聯(lián)提供基于工業(yè)智能網(wǎng)關的CJ188數(shù)據(jù)采集解決方案。通過將工業(yè)智能網(wǎng)關通過串口接入水表、燃氣表、熱量表、冷量表等儀表設備,
    的頭像 發(fā)表于 06-04 10:32 ?379次閱讀
    <b class='flag-5'>通過</b>工業(yè)智能網(wǎng)關<b class='flag-5'>實現(xiàn)</b>CJ188水表數(shù)據(jù)采集

    請問STM8L052R8的USART2中斷向量在哪?

    我現(xiàn)在在使用STM8L052R8,在使用手冊中介紹有3個USART串口,但中斷向量表中只有USART1有中斷向量,那么另外兩個串口不能使用中斷接收嗎?沒有中斷發(fā)送可以,但沒有中斷接收,臣妾沒有辦法用??!請各位達人解答一下怎么使用另外兩個串口?先謝謝了。
    發(fā)表于 05-09 06:33

    先楫6880如何實現(xiàn)bootload + APP應用跳轉

    ,通過boot來判斷是哪種啟動方式。 因此,內存管理是保證程序正確運行的前提。在實現(xiàn)bootload跳轉的前提無非兩個問題: (1).app程序跳轉的地址。 (2).app程序的中斷向量表。 2.
    發(fā)表于 04-26 16:03

    STM32F103CB將中斷向量表放到RAM后就不正常了,為什么?

    Code284funtion_inram.o(i.USART2_IRQHandler) 然后在main()的開始中設置中斷向量表到RAM中: NVIC_SetVectorTable
    發(fā)表于 04-25 08:08

    請問中斷向量重復定義怎么處理?

    。可以編譯通過,但因為中斷向量表有錯,程序在SystemClock_Config();后 就跑飛了。 如果去除其中一個定義,則程序不會跑飛。請問遇到這種情況怎么處理?
    發(fā)表于 03-28 06:45

    STM32F429的工程標準庫移植到HAL庫后中斷向量表異常的原因?

    STM32F429的工程標準庫移植到HAL庫后中斷向量表異常
    發(fā)表于 03-20 06:02

    stm32cubeide更改ld文件中的Flash偏移和中斷向量表的宏VECT_TAB_OFFSET后,編譯出來的bin文件與之前不同為什么?

    我用的是stm32cubeide,芯片為STM32G491,修改了ld文件的Flash偏移和中斷向量表的宏VECT_TAB_OFFSET,對比修改前后的bin文件,發(fā)現(xiàn)有部分地方不同,請問這個是正常的嗎?
    發(fā)表于 03-19 06:16

    鴻蒙開發(fā)【編譯構建】講解

    編譯構建是將應用/服務的源代碼、資源、第三方庫等,通過編譯工具轉換為可直接在硬件設備上運行的二進制機器碼,然后再將二進制機器碼封裝為HAP/APP軟件包,并為HAP/APP包進行簽名的過程。其中
    發(fā)表于 02-27 17:41

    利用知識圖譜與Llama-Index技術構建大模型驅動的RAG系統(tǒng)(上)

    向量數(shù)據(jù)庫是一組高維向量的集合,用于表示實體或概念,例如單詞、短語或文檔。向量數(shù)據(jù)庫可以根據(jù)實體或概念的向量表示來度量它們之間的相似性或關聯(lián)
    的頭像 發(fā)表于 02-22 14:07 ?1154次閱讀
    利用知識圖譜與Llama-Index技術<b class='flag-5'>構建</b>大模型驅動的RAG系統(tǒng)(上)

    請問PSOC4的中斷向量表在哪查看?

    如題,PSOC4的中斷向量表在哪查看?謝謝
    發(fā)表于 02-06 06:22

    什么是中斷向量偏移,為什么要做中斷向量偏移?

    當MCU中有兩段或以上程序的時候(第一個程序為用戶BootLoader程序,其他的為APP程序,這個在前期視頻《什么是ISP?什么是IAP》中有講過),APP程序中都需要做中斷向量偏移,那么什么是中斷向量偏移,為什么要做中斷向量
    的頭像 發(fā)表于 01-30 09:47 ?1823次閱讀
    什么是中斷<b class='flag-5'>向量</b>偏移,為什么要做中斷<b class='flag-5'>向量</b>偏移?

    “tc1.3”編譯報錯不允許使用向量表編號TriCore?怎么解決?

    “tc1.3” TriCore? 不允許使用矢量表編號
    發(fā)表于 01-22 08:33

    M453VG6AE中斷向量表起始地址是多少呢?一共有多個中斷向量呢?

    芯片:M453VG6AE 這款芯片中斷向量表起始地址是多少呢?一共有多個中斷向量呢?
    發(fā)表于 01-17 08:13