近年來,基於神經網絡的天然語言理解研究的最新進展,特別是學習語義文本表示方面的研究,能夠實現真正新穎的產品,如自動寫做、「Talk to Books」等。它還能夠幫助提升各類天然語言任務的性能,這些任務的訓練數據數量有限,好比在只有 100 個帶標記的樣本中構建強大的文本分類器。html
在本文中,咱們將討論兩篇關於 Google 語義表示研究最新進展的論文,以及兩種可在 TensorFlow Hub 上下載的新模型,但願開發人員可以利用它們來構建使人興奮的新應用。瀏覽器
在《從會話中學習語義文本類似度》(Learning Semantic Textual Similarity from Conversations)論文中,咱們引入了一種學習語義文本類似度的句子表徵的新方法。人們的直覺是,若是句子具備類似的響應分佈,那麼它們在語義上應該是類似的。例如,「How old are you ?」、「What is your age ?」都是關於年齡的問題,這些問題均可以用相似的回答做爲響應,如「I am 20 years old」。相比之下,雖然「How are you ?」和「How old are you ?」包含了幾乎相同的單詞,但它們的含義卻截然不同,獲得的響應也不一樣。微信
若是句子能夠經過相同的反應來回答,那麼句子在語義上是類似的。不然,它們在語義上是不一樣的。在這項工做中,咱們的目標是,經過一種響應式分類任務來學習語義類似度,具體思路是:給定一個會話輸入,咱們但願從一批隨機選擇的響應中,對正確的響應進行分類。可是最終目標是學習一種模型,它能夠返回表明各類天然語言關係(包括類似度和相關性)的編碼。經過添加另外一個預測任務(在本例中是 SNLIentailment 數據集),並經過共享編碼層強制執行,咱們在類似度度量上得到了更好的性能,例如 STSBenchmark(一個句子類似度基準度量) 和 CQA task B(衡量一個問題 / 問題類似任務)。這是由於邏輯推理與簡單的等價性是徹底不一樣的,它爲學習複雜的語義表示提供了更多的借鑑意義。網絡
對於給定的輸入,分類被認爲是針對潛在候選者的排序問題。架構
在「通用語句編碼器(Universal Sentence Encoder)」中,咱們引入了一種模型,它經過添加更多任務來擴展上述多任務訓練,並經過一種相似 skip-thought 的模型聯合訓練,該模型能夠預測給定文本範圍內的句子。然而,咱們沒有使用最初的 skip-thought 模型中的編碼器 - 解碼器體系架構,而是經過共享編碼器的方式,利用一個只有編碼器的體系架構來驅動預測任務。這種方式使得訓練時間大爲減小,同時保留了各類傳輸任務的性能,包括情緒和語義類似度分類等。其目的是提供一個單一的編碼器,能夠支持儘量普遍的應用,包括釋義檢測、相關性、聚類和自定義文本分類等。併發
經過對 TensorFlow Hub 通用語句編碼器的輸出進行配對語義類似比較。正如咱們的論文所描述的,通用語句編碼器模型的一個版本使用了一個深度平均網絡(deep average network,DAN,https://www.cs.umd.edu/~miyyer/pubs/2015_acl_dan.pdf) 編碼器,而第二個版本使用了一個更復雜的自參與網絡架構:Transformer(https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html)。工具
在「通用語句編碼器」中闡述的多任務訓練。經過共享編碼器層 / 參數 (圖中灰框處) 來鏈接各類任務和任務結構。在更復雜的體系結構中,該模型比簡單的 DAN 模型在各類情緒和類似度分類任務上表現得更好,而對於短句子來講,它只是稍微慢一些。然而,隨着句子長度的增長,使用 Transformer 的模型計算時間顯著增長,而 DAN 模型的計算時間幾乎保持不變。性能
除了上述的通用語句編碼器模型外,咱們還在 TensorFlow Hub 上共享兩個新模型:通用語句編碼器 Large(https://www.tensorflow.org/hub/modules/google/universal-sentence-encoder-large/1) 和通用語句編碼器 Lite(https://www.tensorflow.org/hub/modules/google/universal-sentence-encoder-lite/1) 。這兩個都是預訓練的 TensorFlow 模型,用於返回可變長度文本輸入的語義編碼。這些編碼可用於語義類似度度量、相關性、分類或天然語言文本的聚類。學習
Large 模型是用咱們第二篇論文中提到的 Transformer 編碼器進行訓練的,它針對須要高精度語義表示的場景以及以速度和大小爲代價的最佳模型性能。Lite 模型是使用句子的詞彙而不是用單詞進行訓練的,這樣作是爲了顯著減小詞彙量, 而模型大小主要是由詞彙量決定的。該模型針對的是內存和 CPU 等資源有限的場景,好比基於設備或基於瀏覽器的實現。咱們很高興能與社區分享這項研究和這些模型。咱們認爲,咱們在本文中所述的只是一個開始,還有一些重要的研究問題有待解決,好比將技術擴展到更多的語言 (上面討論的模型目前僅支持英語)。咱們還但願進一步開發這項技術,以便它可以理解段落甚至文檔級別的文本。在可以實現這些任務時,通用編碼器纔會有望真正實現。google
原文連接:
https://ai.googleblog.com/2018/05/advances-in-semantic-textual-similarity.html