《07語音與自然語言處理.pdf》由會員分享,可在線閱讀,更多相關《07語音與自然語言處理.pdf(39頁珍藏版)》請在三個皮匠報告上搜索。
1、107語音與自然語言處理2 斯坦福 SAIL 負責人 Christopher Manning:基于深度上下文詞表征的語言結構發現整理:智源社區何灝宇Christopher Manning,斯坦福人工智能實驗室(SAIL)主任,斯坦福大學語言學和計算機科學系機器學習領域、斯坦福人類中心人工智能研究所(HAI)副主任。Manning 的研究目標是以智能的方式實現人類語言的處理、理解及生成,研究領域包括樹形 RNN、情感分析、基于神經網絡的依存句法分析、神經機器翻譯和深度語言理解等,是一位 NLP 領域的深度學習開拓者。他是國際計算機學會(ACM)、國際人工智協會(AAAI)、國際計算語言學會(AC
2、L)等國際權威學術組織的 Fellow,曾獲 ACL、EMNLP、COLING、CHI 等國際頂會最佳論文獎,著有統計自然語言處理基礎、信息檢索導論等自然語言處理著名教材。Christopher Manning 的演講主題是“Linguistic structure discovery with deep contextual word representations”,即“基于深度上下文詞表征的語言結構發現”。在演講中,Christopher Manning 根據對語言學結構的學習程度,將語言模型分為三個發展階段:早期基于概率統計、無法學習語言結構的黑暗時代(Language Models
3、in The Dark Ages);之后則是啟蒙時代的神經語言模型(Enlightenment era neural Language Models),特點是具備一定學習語言結構的能力;2018 年始,基于Transformer 結構的大參數量預訓練模型(Big Language Models)大行其道,Manning 發現預訓練語言模型的參數中包含著非常多的語言結構信息,并在本次演講中進行了詳細的解析。一、語言模型:用數學給語言建模在報告中,Christopher Manning 首先引出了語言模型的概念。語言模型是對自然語言進行數學建模的工具,它提供了一種能夠用數學模型去表示自然語言的方法
4、?,F如今通用的語言模型大多采用序列化概率模型的思想,比如在給定的語境下預測下一個詞出現的概率。圖 1:根據語境預測下一個詞語言模型如 N-Gram 語言模型、基于循環神經網絡的語言模型及預訓練語言模型等都在不同的任務上被廣泛使用,且能達到理想的效果。然而,這些語言模型真的學到了語言結構嗎?還是說它們僅僅是在句子層面上學習詞的概率分布?Manning 給出了他的答案。3二、黑暗時代:N-Gram 語言模型N-Gram 語言模型,是通過統計數據中給定詞在長度為 n 的上文的條件下出現的頻率來表征這些詞在相應語境下的條件概率,如圖 2:N-Gram 例子N-Gram 語言模型是神經網絡出現之前構建語
5、言模型的通用方法,該方法雖然通過引入馬爾科夫假設,但是其參數量依然很大。另外,N-Gram 語言模型通過平滑和回退策略解決數據稀疏的問題。但是 N-Gram 語言模型學到了多少人類語言的結構信息?有些語言學家們認為幾乎沒學到。雖然這樣的模型可能會包含一些簡單的常識性知識,比如“船”通常會與“沉沒”、“起航”等詞共同出現,或者模型會學習到一些簡單的詞法,比如類似于“冠詞-形容詞-名詞”這樣的句子,但是 N-Gram 語言模型對于“名詞”這樣的詞性概念和語言結構規則是沒有概念的。因此,在那個時代,如果想要讓模型學習到語言結構,必須通過人工標注的方式獲取特定語言結構的訓練數據,然后訓練相應的分類器。
6、采用這一方法固然是能讓語言模型學習到語言結構,但是標注成本太高且數據的遷移性差,似乎并不是一個好的解決方案。圖 3:人工標注的語法Manning 隨后表示,想要讓語言模型學習到自然語言的結構知識,只學習字面上的信息是遠遠不夠的,但幸好,自 N-Gram 語言模型之后,基于神經網絡的語言模型取得了長足的進步。三、啟蒙時代:神經網絡賦予語言模型新的方向得益于神經網絡和深度學習帶來的強大學習能力,神經網絡語言模型展現出了比 N-Gram 語言模型好得多的效果,這其中最為人熟知的便是基于循環神經網絡的語言模型,例如詞向量模型、LSTM 模型等。詞向量模型通4過把高維度的稀疏向量嵌入到低維度的分布式向量
7、,從根本上解決了維度災難問題。而 LSTM 則是基于循環神經網絡,通過“門”的機制解決長距離依賴的問題,這樣的模型結構在處理語句這種序列化數據時就有著天然的優勢。Manning 提到,N-Gram 和過去的大多數模型都解決不了語句中的長距離依賴問題,但我們可以期待神經語言模型做到這一點。圖 4:預測詞 removed,需要用到句子中距離較遠的詞 stump 而不是通過 N-Gram 在近距離取上下文同時,Manning 還展示了通過樹結構的神經網絡捕捉語句結構的一個研究成果。事實上,Manning 早期的深度學習工作一直致力于構建樹形模型,因為在他看來,樹形模型更能捕捉到語言不同于線性的視覺或
8、者信號處理的結構特點。他們建立的 TreeLSTM 能夠在一定程度上學習到如何去構建語句的語法樹,該模型在細粒度情感分類、語義關系分類等任務上也取得了更好的效果,但比提高準確率更重要的是,語言模型終于開始學習語言結構了。圖 5:語法樹四、大模型時代:Transformer 模型帶來巨大突破2018 年,大參數量的預訓練語言模型一個接一個的出現,為自然語言處理帶來了突破性的進展。5圖 6:預訓練語言模型在這些預訓練模型中,除了 ELMo,其他的模型都應用了 Transformer 結構,原因是 Transformer 的結構使得模型在 GPU 上進行大規模訓練成為可能,而模型的參數量也越來越大,
9、達到十億甚至百億級別。由于時間原因,Manning 只對 Transformer 結構進行了一個大概的描述:Transformer 的輸入是句子中的詞以及詞的位置編碼,通過一層線性變換,每個詞得到 Query、Key、Value 三個低維向量。通過對三個向量做 Attention 運算,從而計算出句子中的每個詞應該對句子中的其他詞付出多少“注意力”。不僅如此,Transformer 結構中還引入了“多頭”機制,“多頭”機制認為句子中的上下文信息可以從多個方面進行挖掘,因此 Transformer 使用了多個權重矩陣對 Query、Key、Value 向量進行 Attention 運算,從而達到
10、通過多個權重矩陣學習多重語義信息的目的。圖 7:Transformer 的結構這些基于 Transformer 結構的預訓練語言模型在自然語言處理的很多領域都產生了巨大的影響,顯著地提高了多個 NLP 任務的準確率。那么,動輒幾十億參數的預訓練模型們可以學習到多少語言結構呢?在本次演講中Manning 選取了其中最著名的 BERT 模型進行了分析。6根據對 Transformer 結構的理解可以知道,Attention 運算是通過點積加權的方式計算兩個向量的相關性,從而得到句子中的每個詞對其他詞該付出多少“注意力”。通過分析這個注意力結果,Manning 發現,在 BERT 的多個“頭”中,有
11、幾個“頭”是能夠通過無監督或自監督的方式學習到和依存句法相關的信息的。圖 8:BERT 模型中每個詞對其他詞的注意力,顏色越深表示注意力越強如上圖的左半部分,賓語 sell 和 stocks 會將注意力更多地指向動詞 considered 和 recommending,而在上圖的右半部分,限定詞(冠詞等)the、in,形容詞 huge、new 等,它們更多將注意力指向名詞 language、law、flight、time 等。如果對這四個例子中的語句進行依存分析,我們會發現左圖中的詞 sell、stocks 與動詞considered、recommending 構成了直接賓語的依存關系,而右圖
12、中的詞 the、in、huge 等都是名詞 laguage、law 等的前置修飾語,它們構成了語句中的限定詞依存關系??梢钥吹侥P痛_實在一定程度上學習到了依存句法信息。事實上,“多頭”機制不僅學習到了句法結構,也學習到了語句中的共指關系。下圖中左邊的例子中,she、her、Kim 實際上指的是同一個人,從模型中的注意力分布也可以看到這種關系。右圖同理。圖 9:BERT 模型中的某些“頭”學習到的共指關系7Manning 表示以上的這些發現證明,預訓練語言模型能夠對語言的符號結構進行建模,因為不管是依存句法還是共指關系其實都是一種用符號表示語法的方法,這是一件很酷的事情。但如果模型能夠直接對語言
13、結構進行建模,那就更好了。隨后,Manning 提出了一個問題:在 BERT 模型的向量空間中是否蘊含著語法樹結構?為了驗證這個問題,Manning 對 BERT 模型產生的詞向量進行了探索,希望這些基于深度上下文的詞表征能夠帶給我們答案。那么,如何根據詞向量去構建這些樹呢?Manning 假定句子中詞向量間的 L2 距離作為樹中結點之間的距離,根據這個距離構建一棵最小生成樹,并將這個最小生成樹作為模型學習到的語法樹,最后用該樹去與人工標注的語法樹進行驗證。值得一提的是,在不同的語境下,一個詞可能會有不同的含義,那么每個詞向量就可能會包含著多重語義信息。在實驗時,Manning通過對詞向量進行
14、線性變換從而將詞向量映射到一個低維的空間,這個低維的向量就包含了原詞向量在特定語境下的語義信息。實驗結果表明,BERT 根據上下文詞表征構建的樹效果非常好,在許多場景下都可以達到人工標注的精度。如下圖中,根據 BERT 向量空間構建的最小生成樹,與本篇文章圖 5 所提到的語法樹完全一致。圖 10:根據 BERT 向量空間構建的最小生成樹圖 11:用 BERT 做語法分析樹能夠達到和人工標注相似的結果根據這樣的實驗結果,Manning 總結道,像 BERT 這種基于深度上下文詞表征的語言模型,與之前的語言模型8相比有了一個大轉型,不論是形態上還是學習效果上。模型中大量的參數使得神經網絡不再僅僅去
15、學習詞與詞之間的表面聯系,而是有了學習語法結構的能力。至于為什么模型會去主動學習語法結構,Manning 也給出了解釋,他認為模型之所以會去主動學習語法結構,是因為學習語法結構能夠幫助模型更好地完成預測任務,也就是說,模型本質上依然是在提高預測能力,由于學習到語法結構有助于更好地預測,模型就會利用參數去學習語句的語法結構。接下來,Manning 做了另一個更有趣的探索,探索不同種類語言的 BERT 模型是否學到了相似的語法信息。做法如下,使用一種語言(如英語)的 BERT 模型的語法空間表示去驗證另一種語言(如法語),如果驗證成功,那么就說明 BERT 模型編碼不同種語言的語法是采用的是相近的
16、方法。圖 12:兩種語言的語法空間聚類結果上圖是實驗結果,相似顏色的淺色代表英文,深色代表法語,可以看到聚類效果明顯,這表明 BERT 模型在建模不同語言的語法信息時采用的方法是相近的。演講最后,Manning 提出了如下幾點思考。1.基于無監督或自監督學習的上下文詞表征模型能夠成功學習到語言結構,取得這樣的成功證明了語言模型的學習實際上是一個信息量豐富的通用任務。2.既然語言模型已經能夠學習語言結構,那過去幾十年耗費人力標注語言學數據算是一個錯誤嗎?3.基于深度上下文詞表征的語言模型已經從之前的基于統計的關聯學習模型轉型,開始主動探索語言結構。4.在下個十年,語言模型的任務是否應該更多地將重
17、心放在接地語言學習(Grounded Language Learning)上?9 華盛頓大學教授 Mari Ostendorf:基于顯式上下文表征的語言處理整理:智源社區何灝宇Mari Ostendorf,于 1999 年加入華盛頓大學,電子與計算機工程系的系統設計方法學特聘教授,語言學和計算機科學與工程學的兼職教授。IEEE,ISCA 和 ACL 的院士,華盛頓州立科學院院士以及愛丁堡皇家學會會員。Ostendorf 教授目前的研究專注于探索在多方上下文的場景下理解和生成語音及文本的動態模型。Mari Ostendorf 本次演講的主題是Contextualized Language Pro
18、cessing with Explicit Context Representation。在本次演講中,Mari 介紹了她的研究成果基于顯式上下文表征的語言處理方法。該方法通過將上下文信息做顯式的表征處理,從而達到在文本信息中能夠有效融合上下文信息的目的。下面是 Mari Ostendorf 本次演講的精彩要點。一、語言模型為何需要上下文上下文在語言理解的過程中扮演著重要的角色,需要指出的是,這里提到的上下文并不僅僅指語句序列中的“前”和“后”,這里的上下文是指包括語境和情境在內的多種與語句相關的因素。語言對上下文的依賴表現于:演講中的語句會依賴于演講主題;日常交流時的語句會依賴于交流雙方的社
19、交背景,等等。人類可以自如地在不同語境中進行切換,但是計算式的語言模型在處理不同種類的上下文時性能退化會非常嚴重?,F如今解決這一問題的方法是使用更多的數據來對模型進行微調,但 Mari 認為,我們還可以更有效地使用上下文中包含的信息。上下文有很多形式,但大體上可以分為兩大類,第一類是語境(Language Context)有關的上下文,也就是按字面意思理解的語句序列的“前”和“后”;第二類是情境(Situational Context)有關的上下文,包括語句的來源,對話的地點,對話的形式、對話的主要任務等等。在本次演講中,Mari 主要介紹了如何通過神經序列化語言模型去表征情境有關的上下文,以
20、及把它們與文本信息相結合的機制。同時,Mari 將情境有關的上下文分成了兩類,一類是全局上下文,通常由元數據組成,這類上下文能夠覆蓋一整段文本,比如說對話者的身份以及對話時間這種通用的信息,在對話過程中是不會發生變化的。還有一類是動態上下文,通常是由連續的數據組成,比如說語音或者視頻。Mari 對于這兩類上下文分別給出了她的表征方法。二、全局上下文的表征方法訓練數據與實際數據的領域不匹配是一個存在已久的問題,目前解決這個問題的方法是使用更多的數據對模型進行調整。比如 RoBERTa 模型是在 160GB 的大數據量上進行訓練的,但是當將該模型應用到一個全新領域的時候仍然需要使用該領域的數據進行
21、微調。這樣的方法雖然效果不錯但并沒有從根本上解決這個問題,且每次切換到一個新的領域都需要使用更多的數據。Mari 認為,許多時候我們其實能夠知道數據屬于哪個領域,但是現有的語言模型并沒有有效利用這一點。比如說,當我們處理一段法庭上辯論的腳本,對于這樣的腳本,我們恰巧知道每段文字是由誰說得,我們也知道說話的人是不是法官或者是律師,而且我們應該也有一些與案件相關的背景文件。這三種信息都是原數據中就有的,Mari 認為可以將這三種信息看作三個變量,通過線性變換將10這三個變量映射成能夠表征上下文的向量。這一變換過程與現如今的詞向量技術類似,只不過輸入不再是獨熱編碼(One Hot)而是一個由多個參數
22、組成的元組(Tuple)。圖 1:三個變量以元祖的結構進行向量化表達一旦上下文信息被表示成向量,就可以有許多方法去將該向量融合進神經網絡。比如將上下文的表征向量與詞向量或者句向量拼接起來。Mari 教授在演講中提到了她的方法,將上下文表征向量作為輸入,對 RNN 的權重向量進行修正。圖 2:上下文表征向量 c 與權重向量進行融合具體做法為,使用兩個排序矩陣 L 和 R 與上下文表征向量 c 進行全連接運算。由于上下文表征向量 c 是一個低維稠密的向量,且 L 和 R 的維度與原本 RNN 的權重向量的維度相同,因此全連接運算后會得到一個與之前向量的維度完全相同的新的權重向量,從而達到使用上下文
23、表征向量對權重向量進行更新的目的。由于上下文是全局的,那么 L 和 R 兩個排序矩陣是具有通用性的,因此對于所有上下文向量 c,都可以通過 L 和 R 提前計算出需要被更新的那部分權重向量,這樣一來,將上下文表征向量融合進權重向量的計算代價就降低了很多。Mari稱這樣模型結構為 FactorCell Model。圖 3:FactorCell Model 的模型結構11這種融合方式有許多優點。第一,排序矩陣 L 和 R 作為超參數會去控制上下文信息與文本信息融合的程度,當數據量發生變化時,這兩個矩陣起到了縮放融合程度的作用。第二,實驗發現增大排序矩陣的影響要比增大權重向量的維度更有效。第三,這個
24、方法應用在大量不同情境下效果更好,因為它能夠學習到多種上下文之間的相似程度。Mari 教授同時還展示了該方法在 9 個數據集上進行實驗的結果,她發現,對于有大量上下文的數據來說,通過該方法對 RNN 權重向量進行更新是及其有效的。傳統的通過 Softmax bias 融合上下文向量的方法對于主題模型類的問題是足夠的,但是對于以字為主要對象的語言模型來說并沒有顯著的作用。同時,實驗中還發現,該方法與傳統方法相比,將不同種類的上下文向量輸入進模型,得到的結果在細粒度上是有差別的。圖 4:兩種模型在多種語境下的結果。SB 代表傳統的 Softmax bias 方法,FC 代表該演講中的方法 Fact
25、orCell Model,*代表不同語境三、從多模態角度對動態上下文進行表征能夠采用前文所述方法對上下文信息進行融合的前提是,我們可以在對話開始之前就了解全局的上下文信息,從而做到能夠以一種顯式的方式對上下文信息進行表征。然而,在處理動態場景(如語音信號)時,我們并不能夠提前知道這段對話的上下文信息,比如在語音對話開始前,我們沒法知道每段話是由哪個人說的,也沒法知道說話的人的情緒和意圖是什么。在這種情況下,之前提到的處理全局上下文信息的方法是無法奏效的。Mari 教授向我們介紹了一種全新的方法,她認為語音中的韻律和語調都攜帶著有用的信息,比如韻律和語調可以用來劃分句子,在英文對話中,韻律和語調
26、還能夠體現出講話人的意圖和情感。在現實生活中,人類在聽一段語音時會通過講話者語調的高低判斷這個人的情緒以及講話人的目的,但是傳統的語音轉文字技術卻并沒有有效利用這部分信息。沒有有效利用這部分信息的根本原因是,像語調這種情境信息沒法顯式地表示出來,不同的人在不同的背景下說不同的話時,語調都會有很大的差別。如果想要將語調這種上下文信息與文本信息相融合,首先需要解決怎樣顯式地表征這種上下文信息。需要了解的是,這是一個多模態問題,因為語調來源于語音信號,而文本信息來源于文字。Mari 教授將這一多模態問題與圖像描述(Image Caption)這一多模態問題進行類比,為我們展現了她在處理這12一問題時
27、的思路。圖像描述問題的主要任務是對特定的圖片進行文字描述,在這個問題中,文字和圖片構成了多模態,二者包含的信息互有補充,同時,文字和圖片中也包含了許多冗余的信息,這與語音問題中語調和文字的特點相類似。文字描述任務中,為了解決冗余信息,通常會規定文字描述依賴于一些圖片中的邊框,也就是說文字只去描述那些圖片中被邊框框起來的部分。對應到語音問題中,Mari 將語調中的重音或者斷點看作邊框,這些部分是講話者在語調中最想要表達出來的信息。圖 5:圖像描述問題中,文字描述會專注于圖片中被邊框框起來的部分想要解決多模態問題還需要思考的一個問題是怎樣制定學習策略,也就是說多個模態之間如何通過學習緊密結合在一起
28、,Mari 教授提出了一種歸一化的方法。具體做法是,給模型提供一段文本,模型會先去預測這段文本的語調在這段話中的分布情況,然后模型會對比預測值與觀測到的實際語調之間的歸一化差分指數 Z,這個指數就用來作為語調特征。最終得到的語調特征是一個低維稠密向量,方便進行深度學習的計算。根據語調特征的定義,我們可以發現它表示的是文本信息中并不包含但卻存在于語音信號中的那部分信息,也就是動態上下文中包含的情境信息,Mari 稱部分信息為Innovations。13圖 6:多模態上下文信息的表征方法基于以上的的方法,在文本順滑(Disfluency Detection)任務上做了實驗,實驗結果表明,原始的未經
29、處理的語調信息用于文本順滑任務效果并不好,但使用歸一化差分后的語調特征卻能夠達到與純文本相近的效果。Mari 也表示,如果將這部分語調信息與文本信息結合起來會有更多的應用價值。圖 7:文本順滑任務的實驗結果四、總結通過本次演講,Mari Ostendorf 為我們清晰展現了對上下文進行顯式表征的方法,本文做了如下總結:1.語境信息不匹配的問題在自然語言處理的很多應用場景都有著不同程度的負面影響,然而在很多場景下,比如本次演講中提到的全局上下文,我們是可以提前對上下文信息進行顯示表征的。因此語境信息不匹配的問題可以通過對上下文信息進行向量表示,再有效地將上下文信息與文本信息進行融合來解決。2.除
30、了我們熟知的詞向量,其他種類的上下文信息(語境、情境等)也可以通過同樣的方式被表示成低維稠密的向量。3.常用的使用上下文信息的方法是將表示上下文的向量與詞向量或者句向量進行拼接,其實還可以有其他的更有效的方法,如本次演講中提到的多模態融合方法。4.還有更多種類的上下文信息和語言模型結構等待研究者們去進行探索。14 微軟亞洲研究院副院長周明:預訓練模型在多語言和多模態任務中的應用整理:智源社區徐武濤微軟亞洲研究院副院長周明本次的報告主題為預訓練模型在多語言和多模態任務中的應用。在報告中,周明詳細闡述了預訓練模型的原理,以及預訓練在多語言、多模態等任務中的應用。在報告最后,周明強調,“預訓練模型會
31、帶來新的研究機會”。周明,微軟亞洲研究院副院長、國際計算語言學會前會長、中國計算機學會副理事長、中國中文信息學會常務理事,中國多所大學的博士生導師。他也是首都勞動獎章獲得者。在微軟亞洲研究院,周明博士長期領導自然語言處理方面的研究工作,主編了機器翻譯,智能問答等技術專著,并且籌劃組織了 NLPCC、語言與智能高峰論壇等學術會議,主導創建了 ACL 的亞洲分部。以下是智源社區編輯對周明演講的要點整理。一、預訓練模型的基本原理最近 NLP 領域最重要的進展就是預訓練模型了。它通過自監督學習機制從語料庫學習與任務正交的知識,然后再用某一具體任務的標注數據對神經網絡進行微調。具體而言,包括如下幾個步驟
32、:(1)預訓練步驟,獲得與具體任務正交(就是無關)的預訓練模型;(2)第二個步驟是微調,針對具體任務修正網絡。圖 1:預訓練模型,NLP 的新范式15訓練數據可以是文本、文本-圖像對、文本-視頻對。預訓練模型的訓練任務可以使用自監督學習技術(如自回歸語言模型和自動編碼技術),可以訓練單語言、多語言和多模態的模型。此類模型經過微調之后,可用于支持分類、序列標記、結構預測和序列生成等各項技術,也可以支持文摘、機器翻譯、圖片檢索、視頻注釋等應用。為什么我們要做預訓練模型呢?首先,預訓練模型是一種遷移學習的應用,利用幾乎無限的文本,學習輸入序列的每一個成員的上下文相關的表示以及整體的輸入序列的表示,它
33、隱式嵌入了一般語言知識。第二,它可以將從開放領域學到的知識轉移到下游任務,以增強低資源任務和低資源語言任務。第三,預訓練模型在幾乎所有 NLP 任務中都取得了目前最佳的成果。最后,這個預訓練模型+微調機制具備很好的可擴展性,在支持一個新任務的時候,只需要利用該任務的標注數據進行微調即可,無需對任務本身的領域知識進行調整。下面介紹預訓練模型的幾個關鍵技術。圖 2:以 Transformer 作為主干首先是 Transformer 技術。它是目前所有預訓練模型的基礎技術。對每一個輸入序列的 Token,引入了自注意機制得到其上下文相關的表示,同時利用多頭機制得到多個側面的特征表示。如圖 2 左圖所
34、示。輸入層每一個Token 的詞向量和其位置向量疊加后,通過自注意模型計算與其他 Token 的相似度,把所有 Token 的詞向量加權平均得到本單詞的動態表示,再經過殘差網絡引入上一層信息來增強輸入。通過前饋神經網絡,經過一個非線性變化得到輸出隱狀態向量。這個過程可經多層變化。這樣每一層有多個隱變量,每一個隱變量對應一個輸入序列的 Token。在最后一層就可得到每一個 Token 的編碼。然后在解碼輸出的時候,當前狀態的隱狀態,與編碼層的隱狀態進行自注意力計算,然后再經過非線性輸出一個隱狀態的向量,解碼也可以經過多層。最后一層經過 Softmax 得到每一個詞的輸出概率。右邊顯示了如何來計算
35、自注意向量中的權值,每一個權值都是當前這個詞跟其他詞計算的相似度得到的全值向量,每一個詞新的多維向量表示,就是所有跟它連接的所有詞的加權求和表示。16圖 3:通過自監督學習的預訓練第二個關鍵技術是自監督學習。自監督學習是一種無監督學習的形式,數據本身提供監督。在預訓練的模型中,AR(自回歸)語言模型 和 AE(自動編碼器)是最常用的自監督學習任務,其中,自回歸語言模型旨在通過自回歸模型估計文本的概率分布(就是語言模型,前面的詞序列對寫一個詞的預測概率)。自動編碼器旨在從損壞的輸入,比如遮掩了句子某個詞、或者打亂了詞序等等,重建原始數據。通過這些自監督手段來學習單詞的上下文相關表示。圖 4:通過
36、區分性訓練進行微調在具體任務時候,微調旨在利用其標注樣本對網絡的參數進行調整。舉例來講,我們使用基于 BERT 判斷兩個句子是否語義相同。輸入是兩個句子,經過 BERT 的預訓練,可以得到每個詞所對應的隱狀態,表征每一個詞的語義。我們可以簡單地用預訓練模型的第一個隱節點 CLS 預測分類標記(C)。預測損失可以反傳給 BERT再整體進行微調。17圖 5:自然語言的預訓練模型發展路線圖這是預訓練模型的發展路線圖,我列出了最有代表性的模型,這里簡要介紹一下。Word2Vec,第一個使用大規模語料庫計算詞嵌入的模型,訓練的結果是詞的嵌入,是一個靜態表示。ULMFiT,是第一個使用 RNN 基于語言模
37、型訓練的上下文相關的預訓練模型。CoVe,利用翻譯任務來訓練編碼器-解碼器,并使用編碼器作為預訓練模型。ELMo,使用雙向 LSTM 合并兩個方向的隱狀態獲得上下文相關表示。GPT,采用語言模型進行訓練,它是基于 Transformer 的單向預訓練模型。BERT,是基于 Transformer 的基于掩碼的預訓練模型。MT-DNN,基于 BERT 增加了一些任務進行多任務訓練。MASS,使用編碼-解碼器來訓練預訓練模型。UNILM,嘗試同時支持語言理解和生成任務。XLM,是一種支持多語言的 BERT 模型。Unicoder,引入若干新的任務改進了 XLM。BART,是一種編碼-解碼器模型,通
38、過還原損壞的句子訓練。mBART,將 BART 理念擴展到多語言。這里給大家介紹一下預訓練模型的基本的過程,以 BERT 為例。BERT 是基于 Transformer 的預訓練模型。它的基本模型(BERT Base)為 12 層的 Transformer;當然還有一個大型模型(BERT Large)為 24 層模型。這里說明一下幾個關鍵地方:1.針對一個數據集合,BPE 工具自動獲得該數據集的 Token 的集合,取頻率最高的前 N 個 Token 作為詞表。其他的 Token 都看作是 UNK(Unknown Word);2.對數據集合的每一個數據,通過 BPE 做 Tokenize,形成
39、 Token 的序列;3.訓練時候,每一個 Token 有一個多維向量表示,比如 1024 維。隨機初始化;184.計算預測的損失,然后反向傳播來調整各層的網絡參數。也包括每一個 Token 的多維向量表示;5.最后訓練的結果包括:每一個 Token 的多維向量表示,每一層的網絡參數,各個 Attention Model 的參數等。6.在用預訓練模型的時候,把輸入序列 Tokenize 之后,對每一個 Token,從詞典中得到多維向量表示。然后根據每一層的網絡參數,計算輸出。BERT 的訓練任務有兩個,第一個使用了掩碼語言模型,就是蓋住某一個詞,讓網絡猜這個詞是什么。這里當然有一些猜錯,猜錯的
40、時候,計算它的損失,利用損失來調整網絡。BERT 還有一個訓練任務,叫 NSP,對下一句的預測,旨在預測這兩個句子中組成的對,第二個句子是否在原文中是第一個句子的下一句,預測的損失也回傳網絡,調整網絡參數,最后得到預訓練的結果。圖 6:UniLM 模型(Dong et al.2019)UniLM 是由我們小組(微軟亞洲研究院)開發的,是一種先進的預訓練模型,用于語言理解和生成任務。首先它是一個 Transformer 的機制,用了三個任務訓練:(1)掩碼語言模型(就是自編碼)類似于 BERT,利用左右詞匯預測被蓋住的詞;(2)自回歸語言模型,類似 GPT,利用已有的詞序列預測下一個詞;(3)編
41、碼-解碼模型,利用輸入句子和已經輸出的詞來預測接下來的詞。這三個任務進行多任務訓練。通過一個掩碼矩陣控制哪些詞可以進行 Attention。訓練得到的模型具備了理解和生成兩種能力。在 GLUE 任務集合、文摘生成和答案抽取等任務上都取得了當時最好的水平。預訓練模型已廣泛應用于產品,比如提高搜索的相關性等;也可以用于問題生成,給定一個文本,生成關于這個文本的若干問題。二、預訓練模型在多語言任務中的應用有的時候,我們要訓練多語言的任務,比如有 N 種語言,A、B、C、X,每一種語言都可能有自己的單語言庫,有時候雙語之間也存在一些并行的語料庫,我們把它加在一起,來訓練一個共同的語言模型一個19跨語言
42、的預訓練模型。圖 7:跨語言預訓練其中來自兩種不同語言的單詞,如果具有相似的含義,將聯系在一起。然后,對某些語言,如果有帶標注的數據,我們便可以在與訓練模型的基礎上進行微調,得到的模型應用于其他語言也能起到了一定效果。如果其它語言也有自己的標注數據的話,還可以進行進一步微調,使效果得到進一步的提升。圖 8:XLM 模型(Lample and Conneau,2019;Conneau et al.,2019)XLM 是把 BERT 擴展到多語言理解任務的一個預訓練模型。XLM 中使用了兩個任務。第一個是掩碼(屏蔽)語言模型,與 BERT 中類似,但輸入是來自多種語言的句子。通過共享所有語言的模型
43、參數和詞匯,XLM 可以獲得跨語言功能。第二個任務是 TLM(翻譯語言模型),它叫做翻譯,但卻并沒有考慮對譯關系??梢哉J為就是多語言句子對照句對,看作一個語言,去訓練掩碼語言模型。20圖 9:Unicoder 模型(Huang et al.,2019)我們在此基礎上,開發了一個叫做 Unicoder 的預訓練語言模型,增加了跨語言訓練新任務。除了在單語句子上進行單詞和短語層面的“掩碼語言模型”,以及對雙語句子進行掩碼語言模型(稱作翻譯語言模型)之外,我們增加一個新的訓練任務:在利用了 Giza+做了單詞對齊之后,通過預測兩個單詞的對譯關系是否存在,或兩個句子是否是一個互譯的句子,進行網絡訓練,
44、進一步提升預訓練的效果。這個任務可以在單詞級別做、短語級別做,也可以在句子級別做。不僅僅正例,也引入了反例,通過對比式學習,加強學習效果。圖 10:Unicoder-2 模型(Liang et al.,2020)最近,我們還將 Unicoder 擴展到跨語言生成任務中。這個預訓練模型,Unicoder-2,做了如下任務訓練:給定來自多語言語料庫的輸入句子,我們首先打亂其句子,通過文本加噪音,然后通過解碼器嘗試恢復。解碼時候可以用傳統方法每次僅僅預測一個 Token,也可以通過我們最近的 Prophet(先知)網絡預測兩個 Token 或多個 Token,然后取第一個詞輸出,再接著預測下一個位置
45、的 Token。這樣做預測能力有新的提高。21圖 11:多語言任務評測數據集 XGLUE我們建立了多語言任務的評測數據集 XGLUE。上圖是 XLGUE 中的 11 個下游任務。其中包括 NER、POS 等等?,F在 XGLUE 已經發布。這些任務現在涵蓋 19 種語言。大家可以登錄 XGLUE 的 Leader board,自己提交任務,查看自己的任務排名。圖 12:各個預訓練模型在 XGLUE 上的評測結果22上圖,我們在 XGLUE 上評測了多個跨語言預訓練模型(包括 MBERT、XLM、XLM-R 和 Unicoder),并在表中列出比較結果??梢钥吹?,我們的 Unicoder 在許多理
46、解和生成任務上實現了最佳的平均性能。圖 13:多語言問答技術在 Bing 搜索上的應用多語言預訓練模型可以把英語的模型擴展到其他語言。英語的標注數據比較多,而其他語言往往缺少標注數據。因此,利用多語言預訓練模型,可以把英語的模型做好之后,在其它語言上面也能體現出一定程度的問答能力。比如這里展示了問答系統。英文問答數據微調訓練的 QA 在法語、德語上也有很好的效果。圖 14:多語言新聞標題生成我們也可以用跨語言或多語言的預訓練模型生成新聞標題。同樣也是在英語標注集合微調訓練之后的系統,也可以生成其他語言的標題。23總結一下。多語言預訓練模型緩解了多種語言的資源短缺問題,能夠幫助多語言搜索/QA/
47、廣告/新聞/文本摘要/低資源神經機器翻譯等取得新的提升。當然,多語言預訓練模型也仍然面臨許多挑戰:首先,最有效的預訓練任務仍然是掩碼語言模型(在多語種或雙語語料庫上),我們要拓展出新的任務以便充分利用多語言/雙語的特點;第二,詞匯表比單語言的預訓練模型(例如 BERT/RoBERTa)大得多,單語三萬,多語就能達到 25 萬。這樣一來,要學的模型參數就會增加很多,訓練的開銷更大。而且 25 萬詞表,表達多語言詞匯的覆蓋度依然不夠;第三、有的語言對有詞匯、語法的同源關系,遷移學習效果好,比如英語的微調結果對法語、意大利語、西班牙語比較好,而對漢語的效果不太明顯。因此下一步可以考慮在語系內部進行多
48、語言模型訓練。三、預訓練模型在多模態任務的應用下面介紹預訓練模型在多模態任務中的應用。圖像-語言預訓練模型的目的,可以是用于理解或者生成,這里僅介紹理解用的預訓練模型。做法如下:圖 15:圖像-語言預訓練模型(ViBERT、Unicoder-VL、VL-BERT、UNITER)給定一個包含一幅圖片和對應的 Caption(就是文字描述)的數據庫。比如有這個例子包括圖片和對應的文字描述。首先對這個數據庫進行預處理,用 Faster-RCNN 得到圖片每一個對象 Label 的分布,和對象的輸出向量表示(Softmax 之前的輸出向量表示)。一個圖片的所有對象按照從左到右,從上到下的順序排列,可以
49、形成一個序列,和文本序列排列在一起。我們可以用 BERT 方式訓練一個預訓練模型,比如掩碼的方式,蓋住文字段的某一個 Token,來預測這個Token;或者蓋住對象序列的某一個對象,來預測這個對象的輸出向量與原始向量的相似度。24現有工作基本都基于大致相似的網絡結構。我們是最早發表這方面工作的團隊之一。我們增加了一個新的訓練任務,即預測對象的輸出向量,是否可以還原為對象的原始向量,取得了不錯的效果。圖 16:各個模型的評測結果對比在 Flickr30K(Image Retrieval 和 Captioning 的數據集),給定 Text 從 1K 的圖片(給定)排序得到最優的匹配。反之對 Im
50、age2Text 亦然。MSCOCO 是微軟提供的數據集,進行 Image2Text 和 Text2Image 兩個任務的評測。預訓練數據集大家都一樣,大概是 300 多萬的 Image-Caption 對。ViLBERT 來自 facebook;UNITER 來自微軟產品組;Unicoder-VL 由于增加了新的訓練任務(如前述),預訓練模型對圖片和文本的編碼能力有所提升,得到了較好的效果。圖 17:GQA 評測結果25GQA 是來自斯坦福的一個視覺推理和問答評測集:給一個圖片和一個問題,從一個固定的答案候選集合(3000條)中找出一個最優的結果。一般采用的神經網絡設計,會將問題和 Imag
51、e 作為輸入,在網絡輸出層使用TokenCLS 通過前向網絡和 Softmax,對 3000 個答案候選進行排序。目前我們提交的結果排在第一名。我們首先使用了預訓練模型,發現結果都要好于不用;其次,Unicoder-VL 模型由于前述的原因(比如增加了訓練任務),體現了較好的預訓練性能;另外,我們對 Query Understanding 進行了 Parser,得到了邏輯表達式,并表征了 Entity 之間的邏輯關系,在網絡輸入端,我們增加了這個邏輯表達的序列用于微調,從而得到了比較好的效果。這里有很多有趣的應用,比如給定一個 Query,找到最相關的 Image。圖 18:視頻-語言預訓練同
52、樣的,也可以對 Video-NL(視頻-自然語言)對進行預訓練,對于每一個 Video 片斷和對應的 NL 描述(語音識別結果),我們排列在一起,Vdieo 可以按時序進行切分,比如說每一秒切分一下,通過一個 S3D 的工具,使每一個 Video Clip 輸出一個向量表示,這樣就得到一個 Video 的編碼,文本的序列和 Video 的序列排列在一起,進入一個 Transformer,Transformer 可以三層、四層或更多層,后面跟一個解碼層,這樣利用 Encoder-Decoder 結果來做預訓練。這里使用了四個任務進行預訓練:Video-text alignment 任務用來判斷輸
53、入的 Video Clip 和 Text 是否相互描述。Masked language model 任務用來預測 transcript 里面被 mask 掉的單詞。Transcript generation 任務基于輸入的 Video Clip,生成對應的 Video Transcript,這時候還有 NL 段置空了。Masked frame model 任務用來預測被 mask 掉的 Video Clip 對應的 Video Feature Vector。我們把 Unicoder-VL 擴展到 Video,用上述的方法進行訓練。跟其他的工作比較,我們把理解和生成放在一個預訓練模型里面來做,這
54、樣既可以做理解,也可以做生成。26圖 19:視頻-語言數據集預訓練的語料,目前大家都采用 HowTo 100M,作為預訓練的語料,它是從 Youtube 上抓取的 1.2M 視頻,切分成 136M 的視頻片段,根據時間軸配上文字說明(Youtube 自帶的)。下游任務的微調,使用了 YouCook2 的菜譜視頻,還有一個微軟發布的 Video-Caption 數據集 MSR-VTT。下游任務包括視頻搜索和視頻 Caption 生成。檢索任務:給定 NL 的 Query,從一個固定視頻片段中搜索最匹配的視頻片段。Caption 任務:給定一段視頻,加上 Transcript,生成對應的 Capt
55、ion。和 Google 的 VideoBERT、CBT 還有百度的 ActBERT 相比較,我們的模型取得了較好的效果。它還有很多應用,比如說可以分成兩個任務,一個是 Video 的 Segmentation,另一個是對每個 Segmentation做一個文字的描述。大家看一段比較長視頻的時候,可以快速定位到自己感興趣的部分。圖 20:多語言圖像-語言預訓練27使用同一個 Transformer 模型去融合多語言預訓練任務和多模態預訓練任務,通過多任務學習和參數共享,可以獲得多語言、多模態的能力。這里使用 Multi30K 和 MSCOCO 作為驗證測試集。這里說明一下,上圖左邊是多語言單模
56、態預訓練,右邊是單語言多模態預訓練。它們共享一個 Transformer(十二層),進行多任務的訓練,訓練任務和前面所述一樣。它可以支持多語言、多模態的許多人物,例如多語言-圖片搜索,但是只需要一種語言的微調數據,就可以支持多語言的搜索;還有多語言的圖片 Caption 生成,給一個圖片,生成多語言Caption,比如同時輸出比如說中、英等多種語言的 Caption;還可以支持多模態的機器翻譯,給一個圖片,和一種語言的 Caption,我們就可以得到另外一種語言的 Caption。目前 Downstream 數據集中有 Multi30K,一個圖片可以配有四種語言的 Caption;MSCOCO
57、 數據集中一個圖片有三種語言 Caption。將上述方法分別在多語言圖文搜索(Image2Txt 和 Txt2Image)、多語言圖片說明、多模態機器翻譯上進行驗證。對英文的標注集合進行微調,而對其他語言進行測試。雖然英文上的效果有所下降(這是由于目前模型是針對100 語言而不僅僅是英語),但對于其他缺乏足夠訓練語料的語言來說,性能卻提升明顯。左邊的例子是 Image Captioning,這是一個多語言的 Caption 輸出,比如輸出中文;右邊的例子是多模態機器翻譯,給定圖片和英文的 Caption,輸出多語言(例如法語和德語)的 Caption 翻譯。圖 21:圖像捕捉這里有一些應用,比
58、如說我們可以做多語言的 Captioning,給定一個圖片,我們想生成哪一種語言的 Caption,就可以生成哪一種語言的 Caption。四、總結多模態預訓練模型總體來講尚處于初期階段。遵循大多數 NLP 預訓練模型,將 Transformer 機制,從有限的圖像/視頻-語言數據集中學習聯合表示,可以計算圖像/視頻片段和文字描述的距離,并實現圖像/視頻-文字之間的轉換。多模態預訓練模型,雖然剛剛開始,還不成熟,但是已經在圖像/視頻的搜索,以及生成文字描述等任務中顯示出不錯的前景。當然,多模態預訓練模型還仍然面臨許多挑戰:首先,圖像/視頻-語言對的數據的大小仍然比自然語言語料庫小得多;28 第
59、二,CV 僅僅用于特征提取,目前并沒有將 CV 模型和 NLP 模型共同訓練。當然目前沒有好的算法,而且訓練的 cost 非常大;第三,就是與之有關的,CV 的圖像識別,目前的類別僅限于 1000 類左右,對真實場景的覆蓋不夠,而且識別的精度也不夠。導致預訓練的輸入信號天然帶有誤差;第四,對于多模態預訓練模型,目前都是用 Transformer 機制,但是它的代價比較大,而且是否最合適對圖像/視頻-文字建立關聯,還需要進一步探索;第五,圖片和視頻的預訓練模型也不一樣,由于視頻有時序,因此視頻的分割,按照固定時長分割,缺乏邏輯意義。而且視頻的 Token 會比 NL 多很多,導致訓練的代價比圖片
60、和文字的預訓練大很多。NLP 在大數據、大模型、神經網絡框架下取得很好的進展。預訓練+微調形成目前可擴展的解決方案。預訓練模型在多語言任務中,在 Rich-Resource 模型的訓練結果可以遷移到 Low-Resource 語言任務中,減輕了語言數據不足的問題。預訓練模型在多模態任務中是一個有巨大探索空間的全新的領域。圖片或視頻的預處理,訓練任務的設計都有很多有趣的研究??傮w來講,預訓練模型會帶來新的研究機會。未來我們需要探索自然語言處理中如何利用常識和知識,來增強推理機制,改善可解釋性,而對于預訓練模型,我們要考慮新的自學習方法,新的體系結構,以及模型壓縮和快速解碼等等,這些都是值得進一步
61、探索的課題。29 小米集團語音首席科學家 Daniel Povey:可微分的加權有限狀態機及其機器學習應用整理:智源社區李維Daniel Povey 本次演講的主題是可微分的加權有限狀態機及其機器學習應用。Daniel Povey,開源語音識別工具 Kaldi 之父,前約翰霍普金斯大學語言與語音處理中心研究型副教授,現任小米集團語音首席科學家。在演講中,Daniel Povey 首先指出了當前版本 Kaldi 的一些缺陷,并針對于此提出了一些下一代 Kaldi 發展方向的戰略構想;其次,就加權有限狀態機這一關鍵技術以及其在下一代 Kaldi 中如何應用進行了闡述;在報告的尾聲,Daniel 歷
62、數傳統確定化算法的優缺點并條陳了其所提出算法的主要思想。一、Kaldi 及其下一代Kaldi,得名于傳說中發現了咖啡樹的埃塞俄比亞牧羊人,其誕生于 2009 年約翰霍普金斯大學(Johns Hopkins University)的一個名為“新語言和新領域的低開發成本和高質量語音識別”的研討會。作為語音識別領域的后起之秀,Kaldi 已被工業界和學術界的從業者所廣泛接受,儼然成為當前最流行的開源語音識別工具。Kaldi 主要使用 C 及 C+進行開發編寫,在此之上使用 Bash 和 Perl 以及 Python 腳本調用 C+代碼進行工具開發。Kaldi 有著與 HTK 相仿的目標和受眾,擁有很
63、多處理實際任務的實例以及大量可以復用的腳本是其廣受歡迎的眾多原因之一,其鮮明特色主要包括:1)與有限狀態傳感器(FSTs)的代碼級集成;2)廣泛的線性代數支持,包括一個封裝了標準的 BLAS 和 LAPACK 例程的矩陣庫;3)可擴展設計;4)開放式許可。Kaldi 的優點不可否認,但也有十分復雜以及沒有專長技能作為前提則不易學會的缺點。此外,因為 Kaldi 本身不支持模型量化,故很難在手機上實現產品化。雖說 Kaldi 使用的是自己的深度學習框架,但這個框架并不容易使用。Daniel Povey 也在本次報告中直言不諱地指出“盡管 Kaldi 擁有自己的神經網絡框架,但其通用程度卻不及 P
64、yTorch 和 TensorFlow”,故他便有了將 PyTorch 應用到下一代 Kaldi 深度神經網絡中且允許在 PyTorch和 TensorFlow 之間實現靈活切換的想法。如若這個想法在下一代 Kaldi 中得以實現,那將使得 Kaldi 與標準框架 PyTorch 和 TensorFlow 實現更好的結合。30圖 1:下一代 Kaldi 框架圖Daniel Povey 表示,下一代 Kaldi 將非常不同,幾乎沒有與現有 Kaldi 通用的代碼,他希望下一代 Kaldi 能實現以下目標:1)用少量代碼就實現像連接性時許分類算法(CTC)這樣的功能;2)輕松有效地整合“離散”信息
65、源,如詞匯和音素序列信息等;3)將“傳統”自動語音識別(ASR)解碼與 PyTorch 模型以簡單的方式集成;4)有效地操作序列和序列集合;5)使用通用而不是過于具體的工具來執行操作。盡管下一代 Kaldi 注定會有所變革,但 Daniel 表示在創造一系列工具用以實現這一目標之前,有限狀態機是一個不得不解釋的概念。二、有限狀態機2.1何為有限狀態機有限狀態機,也被簡稱為 FSA(Finite State Acceptors),其主要被用以研究具有有限內存的計算過程,并根據一定的規則響應外界輸入值,對研究對象的狀態變化進行枚舉,得出狀態變化序列。作為一種依據對象行為建模的工具,其被廣泛應用于電
66、路設計、軟件工程、網絡協議和語言研究等計算機科學中的眾多領域。如圖 2所示即為一個極為簡單的有限狀態機,圖中兩個圓圈稱為節點,用以表示兩種狀態,并分別用 0 和 1 記之。在任意時刻有限狀態機均處于有限狀態集合的某一狀態,其中有限狀態集合可被一般地表示為 狀態 1,狀態2,狀態 m,m 需為一有限數,這是其之所以被稱之為有限狀態機的原因和要求。圖 2:一個簡單的有限狀態機31從圖中不難看出,從每個節點或是狀態出發都有一條邊,復雜的有限狀態機則有多條邊并通向多種狀態。處于某一狀態的有限狀態機在獲得輸入字符時會引起狀態轉換,將從當前狀態轉換到下一狀態或是仍然保持當前狀態不變化,其依據就是輸入字符是
67、否跟該節點出發的某條邊的內容一致。例如,若有限狀態機目前正處于狀態0 且輸入字符也為 0,那么該有限狀態機則會從狀態 0 進入狀態 1。對于狀態 1 而言,若輸入的字符為 1,則其會保持當前狀態不變。倘若當前狀態不存在與輸入字符對應的輸出邊,那么該有限狀態機就會進入消亡狀態(Doom state)。例如,當有限狀態機處于狀態 0 時輸入字符 1 或是在狀態 1 時輸入字符 0。此外,對圖示有限狀態機而言,輸入任何非 0 和 1 的字符均會導致該狀態機進入消亡狀態。為方便和直觀,一般繪制如表 1 所示狀態轉換表。表 1:有限狀態機轉換表輸入字符01狀態 01消亡狀態狀態 1消亡狀態1Daniel
68、 Povey 指出,有限狀態機中有兩個特殊的狀態,被稱為起始狀態和結束狀態。當有限狀態機開始工作,輸入字符會導致狀態機的狀態不斷變化,但只要最后輸入的那個字符使得狀態機能轉化到結束狀態,那么該狀態機就會結束工作,識別出所輸入的所有字符序列。例如,在圖 1 中假定狀態 0 和狀態 1 分別為起始和結束狀態,那么該有限狀態機就會接收“0”,“0 1”,“0 1 1”,“0 1 1 1”等字符串。由于該狀態機設置得較為簡單,故其在該種情況下只能接受類似的有限字符串。倘若輸入的字符串為“0 1 0”,那么由于字符 0 導致狀態機會進入消亡狀態,故該字符串將被狀態機所拒絕。除了有限狀態機之外,加權有限狀
69、態機作為有限狀態機的一種特殊形式亦是構建快速語音識別系統的主流技術。2.2加權有限狀態機在語音識別領域有著廣泛應用的加權有限狀態機(Weighted Finite State Acceptors,WFSA)事實上是以有限狀態機為藍本,顧名思義,在其輸出邊或弧上擁有權值信息。圖 3:一個簡單的加權有限狀態機如圖 3 所示即為一個簡單的加權有限狀態機,不難發現其是一個有向圖。連接各狀態之間的狀態轉移弧上分別標示著輸入符號、輸出符號以及相應的權值信息。圖中所示的輸入和輸出符號有所不同,但在現實情況中允許一個加權有限狀態機具有相同的輸入和輸出符號。圖中的狀態機會在輸入小寫英文字母之后輸出相應的大寫字母
70、,而在實際的語音識別應用中,可能是以發聲的聲韻母作為輸入符號,并以漢字或是詞語作為輸出。32一般而言,加權有限狀態機除了以狀態轉移弧和結束狀態賦有權值為顯著特點之外,還需要半環代數理論作為支撐。一個簡單的半環代數結構通常由元素集合、兩個二元運算和兩個基本單元構成,可被形式化表示為()1,0,K。應當特別指出,這里的 0 和 1 并不是真正的實數 0 和 1,而是代指零元和幺元。半環代數需滿足的公理和條件有加法的結合律和交換律、乘法的結合律、分配律等。具體如表 2 所示:表 2:半環代數所滿足的公理公理形式加法結合律()()zyxzyx=加法交換律xyyx=乘法結合律()()zyxzyx=分配律
71、()()()zyzxzyx=()()()zxyxzyx=幺元xxx=00 xxx=11零元000=xx表 3 則顯示了一些常用的半環。在語音識別領域使用頻率較高的半環有 Log 半環(Log semiring)和熱帶半環(Tropical semiring)。在 Log 半環中,權值被當作負對數概率來處理,概率在并行路徑上求和。在熱帶半環中,權重值被視為類似于成本之類東西(例如,距離),并以使成本最小化作為合并并行路徑時的語義。表 3:一些常用的半環半環集合01布爾半環 1,001概率半環+UR+01Log 半環+,UR()yxee+log+0熱帶半環+URmin+0在談及加權有限狀態機在下一
72、代 Kaldi 中的應用時,Daniel Povey 表達了以下想法:1)在下一代中,會將權重與有限狀態機的結構分開,并盡可能忽略權重;2)用相反的符號存儲權重,比如負定的 Cost 或 Logprob 之類的,并稱之為“分數”;3)獲取權重信息的操作支持兩種類型:一個相當于“熱帶半環”(取最大值),另一個相當于“Log 半環”(取Log Sum Exp 或 Soft Max);4)或許將采用更一般的權重類型,但其或只能通過標量與核心算法交互,例如 Pruning 算法。三、有限狀態機確定化有限狀態機確定化(FSA determination)是對有限狀態機的基本操作之一,其他基本操作還有合并
73、操作、組合操作以及權重推移操作等等。對一個有限狀態機進行確定化操作的目的是為去除原始有限狀態機的冗余,得到一個等效的確定的有限狀態機,使得該狀態機能接收與原始狀態機一樣的路徑集。333.1確定化操作的意義對于確定化有限狀態機的每一個狀態來說,同一個輸入符號有且只有一個轉移弧。例如,在圖 4 的原始加權有限狀態機中,對于狀態 3 來說有兩條具有同樣輸入和輸出字符但不同權重的狀態轉移弧與之對應,而被確定化之后得到的圖 5 所示的加權有限狀態機則不會出現類似情況。那么由此可見,進行確定化操作之后的加權有限狀態機相較原始狀態機而言就具有了非冗余性。當給一個確定化的有限狀態機輸入符號序列時,該狀態機最多
74、只有一條路徑與輸入字符序列相對應,如此以來搜索算法的時間和空間復雜度就會被降低,這也是確定化操作的作用之所在。圖 4:原始加權有限狀態機(http:/www.openfst.org/twiki/bin/view/FST/DeterminizeDoc)圖 5:進行確定化操作之后的加權有限狀態機(http:/www.openfst.org/twiki/bin/view/FST/DeterminizeDoc)Daniel Povey 在談及有限狀態機確定化時指出其是一個非平凡的且具有不規則結構的算法,并希望就該算法而言能做到以下幾點:1)期望能夠在 GPU 上將其實現;2)可闡述計劃在下一代 Kal
75、di 中使用的一些數據類型和抽象概念;3)期望下一代 Kaldi 比有限狀態機更加通用;4)試圖擴展能在 GPU 上實現輕松編碼的范圍。3.2確定化算法間的比較Daniel Povey 在介紹他的基于熱帶半環的確定化算法前列舉了一些傳統算法的特點和不足,其中包括傳統的不加權算法以及加權算法。關于傳統的不加權算法,Daniel Povey 認為它有如下特點:1)輸出中的每個狀態對應于輸入中的一個狀態子集;2)輸出中的初始狀態對應于 0,即輸入中的起始狀態;343)需維護要處理的輸出狀態隊列;4)需維護從輸入狀態 ID 到輸出狀態 ID 的映射。關于傳統的加權算法,Daniel Povey 指出:
76、1)加權后映射是從輸入狀態 ID 的加權集合到輸出狀態 ID;2)權重需要以某種方式標準化,例如,在傳統的熱帶半環中,權重要使最小成本為 0;3)標準化刪除的額外權重(Extra weight)將成為輸出弧上的權重;4)會破壞并行性并具有糟糕的浮點數舍入屬性。這里所謂的并行化包含(1)批量確定狀態;(2)首批僅有一個元素;(3)批量處理的規模取決于有限狀態機拓撲結構;(4)可在實際中的某個小批量中并行處理多個有限狀態機等特性。關于 Daniel Povey 所提出的確定化算法,他總結到:1)將狀態子集表示為(起始狀態,符號序列)這種形式是映射的關鍵;2)子集是從起始狀態通過符號序列可到達的狀態
77、的集合;3)標準化過程包括刪除符號序列前綴和推進初始狀態;4)輸出弧上的“分數”將是標準化中刪除的輸入弧的“分數”之和;5)需要進行確定化操作的有限狀態機將更少。3.3數據結構:列表套列表在報告中 Daniel Povey 還提及一種名為列表套列表(ListOfList)的數據結構,其在存儲一組固定類型的(大小可變)列表時,采用類似圖 6(a)所示將其連接在一起的形式,并按圖 6(b)的形式存儲與每個子數組開頭相對應的索引,再加上一個子數組結束后的索引。此外,利用此思想還可以處理三維及多維不規則數組,只需額外增加索引數量即可,圖 6(c)所示。通常來講,列表套列表型結構有兩種檢索方式:其一為分
78、層索引(Hierarchical indexing),比如 listij,就像通常索引向量 vector 一樣;其二為平面索引(Flat indexing),比如 list.elemsk,其中 list.elems 是元素的展開列表。(a)(b)(c)圖 6:列表套列表四、總結在報告的尾聲,Daniel 表示其已經以有限狀態機確定化操作為例,設計用于處理不規則結構的并行計算框架,35愿景是使其能夠拓展 PyTorch 乃至 TensorFlow 等框架平臺。此外,他還提到已經開始了關于非 GPU 實現的工作,并希冀該工作不僅局限于設計一個自動語音識別(ASR)工具包。從有限狀態機到加權有限狀態
79、機,從 Kaldi 到其下一代,技術的不斷發展進步促使著工具的不斷更新演變,而工具使用中所暴露出的問題又是下一次技術進步的動力和源頭。正是在這樣的互相促進中,Daniel Povey 博士及其團隊醞釀著 Kaldi 這一語音識別工具持續向更好、更優、更加完美的方向發展。但“金無足赤,人無完人”,正如 Kaldi 作為“后浪”曾席卷了它的前任們一樣,未來會不會有另一工具成為 Kaldi 的下一個繼任者呢?會不會有另一巨匠能夠站在 Daniel Povey 的肩膀之上呢?讓我們拭目以待!36 圓桌論壇 AI 新疆域:多模態自然語言處理整理:智源社區亓麟語音、文本、圖像等單一模態領域,在以深度學習為
80、主的機器學習算法的推動下,已經取得了巨大的成功。然而在復雜情況下,完整的信息會同時涉及多種模態;利用單一模態信息來完成任務,往往力不從心。因此,近年來多模態機器學習研究逐漸發展起來,并取得了許多重大進展,成為了人工智能的一個重要分支。但多模態研究仍處于起步階段,其中既面臨著巨大的挑戰,也存在著巨大的機遇。那么,在自然語言處理領域,多模態研究又將怎樣發展呢?圍繞這一問題,6 月 22 日,在第二屆智源大會上舉行的“語音與自然語言處理專題論壇”中,由京東集團技術副總裁、智源學者何曉冬主持召開了“AI 新疆域:多模態自然語言處理”的圓桌論壇,斯坦福人工智能實驗室(SAIL)主任 Christophe
81、r Manning、華盛頓大學電子與計算機工程教授 Mari Ostendorf、微軟亞洲研究院副院長周明、小米集團語音首席科學家 Daniel Povey 等在線上匯聚一堂,就多模態自然語言處理發展中的關鍵問題進行了深度對話。一、構建多模態知識庫很重要何曉冬:隨著研究者們把目光聚焦在純文本之外的其它模態的信息,自然語言處理領域迎來的新的機遇和挑戰,人們很希望能從多模態數據中獲益。另一方面,在過去的幾年當中,人們越來越關注對數據的研究,并開始在大規模數據集上預訓練。規模龐大的數據雖至關重要,但在多模態多輪對話等復雜的應用場景下,光靠大量的文本數據是不夠的,還需要盡可能多的所謂的“知識”。那么“
82、多模態知識驅動的自然語言處理”這一關鍵問題,接下來的幾年里會有怎樣的技術突破和發展呢?最近的突破是大規模預訓練模型 BERT,以及其它大量數據注入的模型和處理大規模數據的新算法。那么多模態知識驅動的自然語言處理是否會帶來類似的突破呢?37ChristopherManning:在 60、70、80 年代研究者眼里,一個很自然的想法就是如何用具有知識的算法來得到更好的智能推斷的效果。但在當時建立一個完備的基于知識庫的系統是很困難的。盡管如此,還是有人不斷的在建立完備的知識庫上不斷努力?,F在看來,很多人相信這樣的想法似乎是錯誤的,因為目前我們可以在一個領域內通過大量的訓練數據得到不錯的知識表示效果。
83、然而,最近許多多模態相關的研究證明,超越文本的多模態知識庫是非常重要且困難的。我們想要的知識并不是像從百科全書中抽取詞條那么簡單,例如要判斷一個人是否喜歡牛仔褲,需要了解關于這個人本身的許多背景知識,這些知識可以從對話中提取,也可以從其他模態的數據中獲取。如果能很好的獲取感興趣內容的多模態的完整知識,那么將對多輪對話領域發展起到重要作用。何曉冬:謝謝 Christopher 教授精彩的分析,這讓我想起 Mari 在演講中講到:自然語言處理中常用的“背景信息”應該是隨著時間和狀態發生變化的,而非一個靜態的知識表示,Mari 關于語言背景信息的定義和你說的用戶相關信息很相似。Mari 如何看待這一
84、觀點呢?MariOstendorf:我同意 Christopher 教授的觀點,用戶相關的背景信息用于建模是很重要的,人們日常在談論某一件事情的時候往往綜合了許多不同的信息。在需要快速反應的對話系統中,往往需要從一個對話場景快速切換到另一個場景,好的知識表示有助于快速得到信息。想要把任何東西都用一大串文本來表示是不現實的,用科學的知識表示顯得尤為重要。好的知識表示應當具有“進化”能力,能夠隨著時間變化。當然了,知識表示存在一定的信息冗余,人們可以有選擇地運用這些知識表示。二、多模態數據如何驅動 NLP 的發展何曉冬:Mari 教授提到知識并不一定是必須有用的,但卻是我們必須具備的,可以有選擇性
85、的使用,這個觀點非常有趣。與多知識相關的研究也包括了多任務、多語言和多模態學習,這些在不同任務上分布的數據來源非常廣泛,但往往結構性不強。這類多模態數據將如何驅動 NLP 領域的發展呢?周明:知識表示是非常重要的,但同樣重要的一點是哪類知識是我們真正需要的。知識可以分為共性的、任務相關的、開放領域等多種類型。我們的語言學知識更依賴于具體的任務。盡管預訓練模型可以學習到許多共性的知識,但真正在下游任務上使用的話,還需要進一步用任務相關的數據來訓練模型。舉個問答系統的例子來說,僅僅靠以往發布的訓練數據就可以訓練一個不錯的模型嗎?我想不是的,好的問答系統應當對對話場景有一個比較好的適應,用戶滿意的不
86、是共性答案,而是那些最適合具體問題場景的答案??偠灾?,從包括視覺、語言等多模態數據中盡可能廣泛的獲取知識是非常重要的,但更為重要的是如何在特定場景下有選擇性的使用這些知識。多模態預訓練就是一個很好的獲取跨模態的知識的方式,未來還有很多多模態預訓練相關的工作可以做。何曉冬:周明老師的觀點很有啟發性,為了抽取出真正需要的知識,把預訓練得到的知識和任務相關的知識進行結合更能夠適應現實任務的需要。人類的語言內容要通過語音發出,Daniel 是語音方面的專家,您怎么看待多模態知識這個問題呢?DanielPovey:在我看來語音信號本身和知識關系不大,因為語音信號的發出是物理過程,知識是無法通過語音信號
87、和語音模型區分的。所以從單純的語音到知識過程,似乎研究意義不大,但通過語言這一橋梁就可以連38接語音和知識了,所以語音這一模態的信息更依賴于通過語言來體現。三、值得期待的技術突破何曉冬:人類說出話語的過程實際上是語言表達的過程,也是知識傳遞的過程。由于知識結構的復雜性,不同的研究方向會有不同的解讀。不過從當下的研究進展來看,預訓練的確是目前最好的從文本語言中獲取知識的手段。超越文本的知識需要新的解決方案,剛才 Mari 提到背景知識用于建模的方法,及知識表示應具有進化能力的觀點非常精彩。周明博士則從如何獲取有用知識的角度進行了分析。事實上,NLP 領域最近也逐漸從純文本的研究邁向了多模態研究,
88、例如融合文本和視覺信息。同樣隨之而來也有許多有趣的應用,例如圖片問答、多模態對話系統等等。自然語言處理領域的發展非常十分迅速,不僅帶動了許多任務相關領域的進步,也推動了語言模型本身如 BERT 的發展。多模態作為自然語言處理的新的突破口,Manning 博士,在您看來最值得期待的進展和技術突破是什么?ChristopherManning:多模態確實是一個值得探索的方向,也能看出來有許多有趣的工作值得去做,比如圖片標題生成、視覺問答等。我比較期待的發展方向是從多模態角度出發,綜合多種信息來回答一系列問題的智能體的出現,并能實現多種信息之間的交互,這些信息中相當一部分來自非語言學知識。何曉冬:事實
89、上,人們已經開始研究 Manning 教授所說的多模態信息交互了。智源發布的多模態對話數據集和挑戰賽正是為了推動多模態信息交互而開展的。剛才 Mari 教授也提到,不同的信號處理能夠得到不同的模態數據,不僅僅可以從圖像、文本角度出發,也可以從音頻本身的頻率信息出發獲取有用的音頻模態信息,Mari 教授可以詳細說一些這個思路嗎?MariOstendorf:我認為多模態信息除了圖像和文本,音頻中也存在大量信息,比如音頻的韻律對分析一個人說話的情感就非常重要。另外,多人對話的研究將是一個新的研究方向。在多人討論的場景下,準確地識別當前在和哪個人對話是一項必要工作。此外,如何利用更多模態的信息,來更好
90、的實現人機交互也是需要不斷努力的方向。另一個可研究方向是剛才 Manning 教授提到的類人智能體,與智能體交互的時候,智能體應該能和人一樣,對周圍的環境有一個比較強的視覺辨識能力,也應該對對話內容有一個全面的認識,幾種模態之間信息的對齊和篩選是至關重要的。何曉冬:在一個非常復雜的場景當中,如果想要實現 Mari 教授所說的,復雜環境下的交互的智能體,那必然就需要許多傳感器來獲取多種信息,并這些信息進行進一步的區分和匯總。談到多種信息,我想起周明老師在演講中提到了多語言學習的相關研究,那假如我們想要一個智能體能夠懂得一百種語言,自然就需要跨語言學習,關于多模態信息的跨語言學習研究,我們可以有什
91、么期待呢?周明:剛才 Mari 教授和 Manning 教授所說的觀點我是很贊同的,我從實際產業視角下來看也能得出類似的結論。不過從產業上的大數據量、深層次模型和大規模應用的要求之下,如何靈活有效的訓練多語言和多模態模型是一個至關重要的問題。數據是模型的第一個關鍵點,首先要構建一個具有統一范式的多模態數據庫,并不斷在有趣的任務上進行嘗試。如何獲得足夠大量、準確、多方面的多模態數據本身就是一個不小的挑戰。其次,要找到新方法來高效訓練具有強適應能力的深度模型。產業界也很關注用戶體驗,好的客戶服務需要了解客戶多方面的信息,好的多模態語言處理也應當利用與語言信息有關的其它信息。當構建了大規模多模態數據
92、集之后,如何對信息進行有效整合,是對研究人員提出的新的挑戰。39何曉冬:從周明博士的分析看來,盡管大家面對的是同樣的科學問題,產業界和學術界確實也還有著不一樣的要求。那么我想問一下 Daniel 作為產業界的語音處理專家,在處理語音的時候,會不會考慮情感等信息呢?DanielPovey:我對語音識別領域有著挺長時間的研究,開發和維護了語音識別開源工具 Kaldi,目前我們已經能夠成功的進行語音到文本的轉換。但音頻信息的利用還有很大的前景。如果能有效的對音頻中的音調、音色、韻律等信息進行分析提取,獲取到的也將會是很有用的多模態信息。當前對大規模多模態數據的標注面臨一些挑戰。例如如何對大規模的音頻和視頻數據進行標注,粒度應當如何,什么樣的標簽信息是真正有意義的,這些問題都值得去深入探索。何曉冬:非常感謝幾位專家學者從自己的研究興趣出發,對多模態自然語言處理的研究做了鞭辟入里的分析。多模態方向的研究從數據構建、建模方法、評估標準、訓練算法等多個角度來講都是一個較新的領域,也是很有發展前景的方向,未來多模態自然語言處理的研究方向將大有可為。