歡迎大家前往騰訊雲+社群,獲取更多騰訊海量技術實踐乾貨哦~
本文來自雲+社群專欄語言、知識與人工智慧,作者騰訊知文實驗室
文字建模方法大致可以分為兩類:(1) 忽略詞序、對文字進行淺層語義建模(代表模型包括LDA,Earth Mover’s distance等;(2)考慮詞序、對文字進行深層語義建模(深度學習演算法,代表模型包括LSTM,CNN等)。對於深度神經網路演算法,空間模式(spatial patterns)彙總在較低層,有助於表示更高層的概念(concepts)。例如,CNN卷積特徵檢測器提取來自區域性的序列視窗的模式,並使用max-pooling來選擇最明顯的特徵。然後,CNN分層地提取不同層次的特徵模式。然而,CNN在對空間資訊進行建模時,需要對特徵檢測器進行復制,降低了模型的效率。正如(Sabour et al, 2017)所論證的那樣,這類方法所需複製的特徵檢測器的個數或所需的有標籤訓練資料的數量隨資料維度呈指數增長。另一方面,空間不敏感的方法不可避免地受限於對豐富的文字結構(比如儲存單詞的位置資訊、語義資訊、語法結構等)進行有效地編碼,缺乏文字表達能力。
最近,Hinton老師等提出了膠囊網路(capsulenetwork), 用神經元向量代替傳統神經網路的單個神經元節點,以dynamic routing的方式去訓練這種全新的神經網路,有效地改善了上述兩類方法的缺點。正如在人類的視覺系統的推理過程中,可以智慧地對區域性和整體(part-whole)的關係進行建模,自動地將學到的知識推廣到不同的新場景中。
到目前為止,並沒有工作將capsule network應用於自然語言處理中(e.g.,文字分類) 。我們針對capsule network在文字分類任務上的應用做了深入研究。對於傳統的分類問題,capsule network取得了較好效能(我們在6個benchmarks上進行了實驗,capsulenetwork在其中4箇中取得了最好結果)。更重要的是,在多標籤遷移的任務上(fromsingle-label to multi-label text classification),capsulenetwork的效能遠遠地超過了CNN和LSTM。我們的工作已經發表在arxiv上,論文名為Investigating Capsule Networks withDynamic Routing for Text Classification。更多細節可以參考連結:https://arxiv.org/pdf/1804.00538.pdf。我們會在論文發表後公開原始碼。
文字主要研究膠囊網路在文字分類任務上的應用,模型的結構圖如下:
其中,連續兩個卷積層採用動態路由替換池化操作。動態路由的具體細節如下:
在路由過程中,許多膠囊屬於背景膠囊,它們和最終的類別膠囊沒有關係,比如文字里的停用詞、類別無關詞等等。因此,我們提出三種策略有減少背景或者噪音膠囊對網路的影響。
- Orphan類別:在膠囊網路的最後一層,我們引入Orphan類別,它可以捕捉一些背景知識,比如停用詞。在視覺任務加入Orphan類別效果比較有限,因為圖片的背景在訓練和測試集裡往往是多變的。然而,在文字任務,停用詞比較一致,比如謂詞和代詞等。
- Leaky-Softmax:除了在最後一層引入Orphan類別,中間的連續卷積層也需要引入去噪機制。對比Orphan類別,Leaky-Softmax是一種輕量的去燥方法,它不需要額外的引數和計算量。
- 路由引數修正:傳統的路由引數,通常用均與分佈進行初始化,忽略了下層膠囊的概率。相反,我們把下層膠囊的概率當成路由引數的先驗,改進路由過程。
在ablation test中,我們對改進的路由和原始路由方法進行對比,如下:
此外,為了提升文字效能,我們引入了兩種網路結構,具體如下:
資料集:為了驗證模型的有效性,我們在6個文字資料集上做測試,細節如下:
在實驗中,我們和一些效果較好的文字分類演算法進行了對比。由於本文的重點是研究capsule network相對已有分類演算法(e.g., LSTM, CNN)是否有提升,我們並沒用與網路結構太過複雜的模型進行對比。實驗結果如下:
此外,我們重點進行了多標籤遷移實驗。我們將Rueter-21578資料集中的單標籤樣本作為訓練資料,分別在只包含多標籤樣本的測試資料集和標準測試資料集上進行測試。詳細的資料統計以及實驗結果如下圖所示。從表中我們可以看出,當我們用單標籤資料對模型進行訓練,並在多標籤資料上進行測試時,capsule network的效能遠遠高於LSTM、CNN等。
此外,我們還做了case study分析,發現路由引數可以表示膠囊的重要性,並對膠囊進行視覺化(此處我們主要視覺化3-gram的結果)。具體來說,我們刪除卷積膠囊層,將primary capsule layer直接連結到fully-connectedcapsule layer,其中primary capsule 代表了N-gram短語在capsule裡的形式,capsule之間的連線強度代表了每個primary capsule在本文類別中的重要性(比較類似並行注意力機制)。由圖我們可以看出,對於Interest Rate類別,months-interbank-rate等3- grams其著重要作用。
致謝: 感謝jhui和蘇劍林,他們的文章啟發了我們的工作。感謝naturomics和gyang274的開原始碼,讓我們開發過程變得高效。
https://jhui.github.io/2017/11/14/Matrix-Capsules-with-EM-routing-Capsule-Network/
https://spaces.ac.cn/archives/4819
https://github.com/bojone/Capsule
https://github.com/naturomics/CapsNet-Tensorflow
問答
相關閱讀
視覺化CapsNet,詳解Hinton等人提出的膠囊概念與原理
此文已由作者授權騰訊雲+社群釋出,原文連結:https://cloud.tencent.com/developer/article/1145655?fromSource=waitui
歡迎大家前往騰訊雲+社群或關注雲加社群微信公眾號(QcloudCommunity),第一時間獲取更多海量技術實踐乾貨哦~