博客專欄

        EEPW首頁 > 博客 > 達摩院SPACE大模型:知識注入與知識利用(1)

        達摩院SPACE大模型:知識注入與知識利用(1)

        發布人:數據派THU 時間:2022-11-20 來源:工程師 發布文章

        以下文章來源于DataFunTalk ,作者李永彬

        本文主要針對兩個主題:知識注入和知識利用,講解該模型的創新點與改進。


        今天的介紹會圍繞下面四點展開:


        • 預訓練語言模型 VS 預訓練對話模型

        • “無知識不對話”:知識是對話的基礎

        • 半監督預訓練:一種新的知識注入方式

        • Proton:預訓練模型中知識利用的探索



        01、預訓練語言模型 VS 預訓練對話模型


         1. 大規模語言模型


        圖片


        過去幾年 NLP 領域的重大進展,主要是大型預訓練模型出現與大規模使用。預訓練語言模型有了很大的發展,出現了很多變種。但是,本質上都還是語言模型,如上圖右邊的流程圖所示,輸入基本上為網絡上的自由文本,模型基本上都是 Transformer 結構,優化的目標基本上都是 MLM(掩碼語言模型)。


        圖片


        預訓練語言模型對整個 NLP 領域帶來巨大進步,到了對話領域之后,可以進一步的提取對話領域更為獨特的特征。如上圖所示,左側的網絡上的自由文本為大規模預訓練模型所需要的語料,右側的表示對話的語料,直觀上看,已經有很大的不同。


        圖片


        對話是對語言的高級應用,主要有以下幾個特點:


        ①口語化,表述隨意,不一定符合語法、句子不完整、噪音較多、有很多 ASR 錯誤。

        ②分角色多輪次,至少兩個參與主體,輪次間存在省略、指代、狀態繼承、狀態遺忘等。

        ③垂直知識約束,每個對話任務有自己的知識約束,模型需要針對性地利用起來。

        ④深層語義理解,需要深入理解語言,Intent-Slots/ 邏輯推理等等。

        ⑤講究對話策略,為完成特定任務目標,需要知道應該怎么說。


         2. 預訓練語言模型 VS 預訓練對話模型


        圖片


        基于對話數據獨有的特點,在預訓練模型的基礎上,發展出獨特的預訓練對話模型。如上圖左側表示的預訓練語言模型,其優化的目標是回答什么樣的句子更像自然語言;而上圖右側表示的是預訓練對話模型,從端到端的角度看,其優化的目標是需要回答給定對話歷史,什么樣的回復更合理。這就是預訓練語言模型與預訓練對話模型的一個很大的不同點。


        3. 預訓練對話模型進展


        對話主要分三塊:對話理解、對話策略、對話生成。2021 年初,預訓練對話模型已經有了較多發展。如下圖所示,對話理解領域,2019 年 PolyAI 提出了 ConveRT 模型、2020 年 Salesforce 提出了 TOD-BERT 模型、2021 年 JingDong 提出了 DialogBERT 模型。


        圖片

        圖片


        面向理解的預訓練對話模型的出現,對于對話理解方面,相對于預訓練語言模型,帶來了巨大的提升,如上圖所示,EMNLP2020 上的一篇文章(Probing Task-Oriented Dialogue Representation from Language Models)的實驗結果,表明預訓練對話模型和預訓練語言模型相比,在對話理解任務上,可以提升 10% 以上的效果;在表征學習上,也能學到更好的表示,有更好的聚類效果。這一點可以通俗的理解,因為當前的預訓練模型(包含語言與對話模型)本質上是數據驅動出來的,那么,對話數據訓練的預訓練模型,自然比從自由文本上訓練出來的模型在對話領域更具表現力。


        圖片


        除了對話理解以外,還有一塊是對話生成領域。


        2019 年 Microsoft 提出了 DialoGPT、2020 年 Google 提出的 Meena、2020 年 Facebook 提出的 Blender、2021 年 Baidu 提出的 PLATO-2 等,這些模型的出現的話,對對話生成方面的質量也帶來了很大的提升。如下圖所示,Facebook的Blender模型,從 2018 年到 2020 年,在 A/B Test 勝率從 23% 提升到了 49%。


        圖片


        以上是對整個預訓練對話模型的簡單介紹,對理解本文提出的模型有很大的幫助。總體上,預訓練語言模型的出現,大幅度提升了 NLP 所有任務的效果,而基于預訓練語言模型的預訓練對話模型,進一步提升了對話領域的 NLP 任務的效果。所以,基于預訓練對話模型的智能對話已經成為一個基座模型。


        02、“無知識不對話”:知識是對話的基礎


        對話還有一個非常大的特點,就是強依賴于知識。換而言之,知識是對話的基礎。


        圖片


        由上圖的對話體系架構可以看出,上層的主流對話引擎,比如多輪對話、圖譜問答、表格問答、QA問答、文檔問答、閑聊(Chit-chat)等,其劃分的依據就是底層知識的不同。舉例而言,多輪對話引擎,主要是基于對話流程圖;圖譜問答,依賴于知識圖譜的知識等。除了這些顯著的知識,想要做好智能對話,還需要一些其他的知識,比如人類標注知識、世界知識、各種常識等。


        這里以一個辦理汽車保險的任務為參考案例。這個任務是一個流程類的任務,即辦理一個保險是有步驟,有流程的。首先,校驗個人和證件信息,包括身份證、駕駛證、行駛證等;然后開始驗車,生成驗車結果:如果驗車結果不通過,則告知驗車不合格原因,流程結束,結果為不能辦理汽車保險;如果驗車結果通過,則進行后續步驟,填寫保單,包括車險險種、被保險人信息等,然后交保險費,并獲得保險存根。


        這是一個典型的流程類任務,需要通過任務型對話進行處理。流程類知識的一個顯著特點,大多是情況下,任務的順序是不可變的。比如,不能先做第三步,再做第一步,這樣整個流程是不對的,執行不下去的。流程類知識的第二個特點就是,流程類知識打開每一步看的話,又包含了很多其他的知識。比如第一步,要校驗個人和證件信息,比如姓名,對于中國人,基本上都是漢字,而且字數都在 2-10 個字以內,這些屬于世界知識或基本常識,以及身份證號,大陸身份證都是 18 位的等,都是世界知識里面的范疇。而且,為了訓練出一個可用的任務型對話,需要一定量的標注數據,而這些標注的數據,蘊含了人類的知識。比如意圖、類別,以及情感等的標注,都是將人類的知識,顯式的寫在了數據上,從而形成新的知識。綜上所述,整個對話都是圍繞知識展開的,無知識,不對話。


        圖片


        前面做了基本的引入和介紹,一方面,針對智能對話,預訓練對話模型已經成為基礎模型;另一方面,對于整個對話系統來講,都是圍繞著知識展開的。所以,我們(達摩院 Conversational AI 團隊)過去一段時間的研究和探索,都是圍繞著這兩點展開。主要的思路是將知識和預訓練對話模型結合起來。具體來看,如上圖所示,將任務拆成兩個子任務:一個子任務是我們如何把知識注入到預訓練對話模型,讓模型有更好的知識容量;另一個子任務,在應用方面,將在預訓練對話模型中學到的大量的知識,顯式地抽取出來,和下游任務更好的結合和使用。圍繞這兩個方面,本文將重點分享一些探索性的工作。


        03、半監督預訓練:一種新的知識注入方式


         1. 標注知識


        圖片


        第一部分主要關于知識注入。如何將知識注入到模型中,本文提出一種新的方式,半監督預訓練方式。


        圖片


        首先回顧一下知識。知識中有一種非常重要——標注知識。離開標注知識,很難將 NLP 任務做好。在人工標注的知識中,包含大量任務相關的知識。示意圖分類、意圖匹配、實體識別、對話策略、情感等,這些標簽數據,都是將人類的知識,顯式地表現在數據上。人工標注的知識有如下特點:


        第一,對提升具體任務效果至關重要,雖然現在 Few-Shot 等小數據量標注很熱門,但是,這種不需要標注數據或者少量標注數據的模型,尚未滿足業務上線的要求,所以,標注數據對于提升任務作用非常大;


        第二, 任務相關,數據分散。即在A任務上標注的數據,在 B 任務上并不能使用,需要重新標注;


        第三,總量較小。相對于無監督數據往往幾千萬,幾億條,有標注的數據,可能只有幾百條、幾千條等。


        如何將這些分散的標注數據,匯總到一塊,將其中蘊含的知識,注入到預訓練對話模型,提高模型的能力?本文即針對這個問題進行了研究和探索。如果可以實現這樣的操作,即可實現知識遷移,將在A任務標注的數據的知識,用到B任務上,從而提升B任務的效果。好處如下:第一,解決冷啟動問題;第二,在達到相同準確率的情況下,需要的標注數據更少。


        圖片


        首先,回顧一下預訓練模型的發展。預訓練模型在圖像領域首先使用,而且是基于有監督的數據。而當 Bert 等預訓練模型提出后,開始從大量的無監督數據中進行預訓練,即通過自監督學習。預訓練模型以前有兩種手段:一個是對有監督數據進行監督學習;另一個是對無監督數據進行自監督學習。今天面對的任務是大量的無監督數據和小量的有監督數據,我們提出了半監督學習,通過半監督的方式,將有監督數據和無監督數據結合起來,如上圖所示,我們提出了一個 SPACE(Semi-supervised Pre-trAined Conversation ModEl)模型。


        圖片


        半監督的概念已將發展很多年了,這里提出的半監督方式和以前的半監督方式是有所不同的,主要區別在于:過去,半監督將半監督和有監督結合一起,用于降低知識標注成本;現在,我們主要是半監督和自監督結合,向預訓練模型注入知識。


         2. 預訓練對話模型發展


        圖片


        基于我們提出的半監督模型的理念和框架,再來看一下預訓練對話模型的進展。如何將半監督的思想融入到預訓練對話模型,在一個具體的業務場景進行實驗和落地。由上圖可以知道,圍繞著對話理解和對話生成,有很多機構做了很多的模型,但是對于對話策略做的非常少,基本上沒有相關研究。但是,對話策略非常的關鍵和重要。


        圖片


        那么,什么是對話策略?在對話理解和對話生成之間,存在著對話策略。對話策略就是根據對話理解的結果,以及結合歷史的狀態,來決定如何回復下一句話。


        舉例而言,兩個人 A 和 B,在對話過程中,A 不斷地說,B 可以一直回復,嗯,好的,對對。這就是一種對話策略,B的策略表示我在聽,我聽懂了。還有一種策略,B 在聽的過程中,有部分聽不懂,需要反問其中某個點等;以及對于 A 說的某些地方有些疑問,進行澄清等,也是一種策略。所以,對話策略是保證一段對話可以順利進行很關鍵的一步。


        學術界對對話策略的定義是 DA(Dialog act),由上圖所示,在不同時間,DA 的定義與名稱不盡相同,整個對話策略雖然發展了很多年,但是存在復雜和不一致等缺點。導致今天應用起來比較麻煩。


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 霞浦县| 新化县| 汉源县| 洮南市| 达孜县| 福鼎市| 平安县| 牡丹江市| 青海省| 津南区| 宁津县| 翁源县| 云阳县| 荔浦县| 象州县| 镇远县| 郁南县| 西峡县| 福州市| 拜泉县| 新闻| 湖北省| 武穴市| 嘉鱼县| 丽水市| 和平县| 贵定县| 永州市| 葫芦岛市| 永清县| 正安县| 威远县| 宝丰县| 仁怀市| 西藏| 新乐市| 庐江县| 蕉岭县| 揭西县| 库尔勒市| 辽阳县|