tft每日頭條

 > 生活

 > 萬字長文概述NLP中的深度學習技術之卷積神經網絡

萬字長文概述NLP中的深度學習技術之卷積神經網絡

生活 更新时间:2025-01-10 00:49:00
第三章:卷積神經網絡

随着詞嵌入的流行及其在分布式空間中展現出的強大表征能力,我們需要一種高效的特征函數,以從詞序列或 n-grams 中抽取高級語義信息。随後這些抽象的語義信息能用于許多 NLP 任務,如情感分析、自動摘要、機器翻譯和問答系統等。卷積神經網絡(CNN)因為其在計算機視覺中的有效性而被引入到自然語言處理中,實踐證明它也非常适合序列建模。

萬字長文概述NLP中的深度學習技術之卷積神經網絡(萬字長文概述NLP中的深度學習技術之卷積神經網絡)1

圖 5:用于執行詞級分類預測的 CNN 框架。(Collobert and Weston (2008))

使用 CNN 進行句子建模可以追溯到 Collobert 和 Weston (2008) 的研究,他們使用多任務學習為不同的 NLP 任務輸出多個預測,如詞性标注、語塊分割、命名實體标簽和語義相似詞等。其中查找表可以将每一個詞轉換為一個用戶自定義維度的向量。因此通過查找表,n 個詞的輸入序列 {s_1,s_2,... s_n } 能轉換為一系列詞向量 {w_s1, w_s2,... w_sn},這就是圖 5 所示的輸入。

這可以被認為是簡單的詞嵌入方法,其中權重都是通過網絡來學習的。在 Collobert 2011 年的研究中,他擴展了以前的研究,并提出了一種基于 CNN 的通用框架來解決大量 NLP 任務,這兩個工作都令 NLP 研究者嘗試在各種任務中普及 CNN 架構。

CNN 具有從輸入句子抽取 n-gram 特征的能力,因此它能為下遊任務提供具有句子層面信息的隐藏語義表征。下面簡單描述了一個基于 CNN 的句子建模網絡到底是如何處理的。

基礎 CNN

1. 序列建模

對于每一個句子,w_i∈R^d 表示句子中第 i 個詞的詞嵌入向量,其中 d 表示詞嵌入的維度。給定有 n 個詞的句子,句子能表示為詞嵌入矩陣 W∈R^n×d。下圖展示了将這樣一個句子作為輸入饋送到 CNN 架構中。

萬字長文概述NLP中的深度學習技術之卷積神經網絡(萬字長文概述NLP中的深度學習技術之卷積神經網絡)2

圖 6:使用 CNN 的文本建模(Zhang and Wallace , 2015)。

若令 w_i:i j 表示 w_i, w_i 1,...w_j 向量的拼接,那麼卷積就可以直接在這個詞嵌入輸入層做運算。卷積包含 d 個通道的卷積核 k∈R^hd,它可以應用到窗口為 h 個詞的序列上,并生成新的特征。例如,c_i 即使用卷積核在詞嵌入矩陣上得到的激活結果:

萬字長文概述NLP中的深度學習技術之卷積神經網絡(萬字長文概述NLP中的深度學習技術之卷積神經網絡)3

若 b 是偏置項,f 是非線性激活函數,例如雙曲正切函數。使用相同的權重将濾波器 k 應用于所有可能的窗口,以創建特征圖。

萬字長文概述NLP中的深度學習技術之卷積神經網絡(萬字長文概述NLP中的深度學習技術之卷積神經網絡)4

在卷積神經網絡中,大量不同寬度的卷積濾波器(也叫做内核,通常有幾百個)在整個詞嵌入矩陣上滑動。每個内核提取一個特定的 n-gram 模式。卷積層之後通常是最大池化策略 c^=max{c},該策略通過對每個濾波器應用最大運算來對輸入進行二次采樣。使用這個策略有兩大原因。

首先,最大池化提供固定長度的輸出,這是分類所需的。因此,不管濾波器的大小如何,最大池化總是将輸入映射到輸出的固定維度上。其次,它在降低輸出維度的同時保持了整個句子中最顯著的 n-gram 特征。這是通過平移不變的方式實現的,每個濾波器都能從句子的任何地方提取特定的特征(如,否定),并加到句子的最終表示中。

詞嵌入可以随機初始化,也可以在大型未标記語料庫上進行預訓練。第二種方法有時對性能提高更有利,特别是當标記數據有限時。卷積層和最大池化的這種組合通常被堆疊起來,以構建深度 CNN 網絡。這些順序卷積有助于改進句子的挖掘,以獲得包含豐富語義信息的真正抽象表征。内核通過更深的卷積覆蓋了句子的大部分,直到完全覆蓋并創建了句子特征的總體概括。

2. 窗口方法

上述架構将完整句子建模為句子表征。然而,許多 NLP 任務(如命名實體識别,詞性标注和語義角色标注)需要基于字的預測。為了使 CNN 适應這樣的任務,需要使用窗口方法,其假定單詞的标簽主要取決于其相鄰單詞。因此,對于每個單詞,存在固定大小的窗口,窗口内的子句都在處理的範圍内。如前所述,獨立的 CNN 應用于該子句,并且預測結果歸因于窗口中心的單詞。按照這個方法,Poira 等人(2016)采用多級深度 CNN 來标記句子中的每個單詞為 aspect 或 non-aspect。結合一些語言模式,它們的集成分類器在 aspect 檢測方面表現很好。

詞級分類的最終目的通常是為整個句子分配一系列的标簽。在這樣的情況下,有時會采用結構化預測技術來更好地捕獲相鄰分類标簽間的關系,最終生成連貫标簽序列,從而給整個句子提供最大分數。

為了獲得更大的上下文範圍,經典窗口方法通常與時延神經網絡(TDNN)相結合。這種方法中,可以在整個序列的所有窗口上進行卷積。通過定義特定寬度的内核,卷積通常會受到約束。因此,相較于經典窗口方法(隻考慮要标記單詞周圍窗口中的單詞),TDNN 會同時考慮句子中的所有單詞窗口。TDNN 有時也能像 CNN 架構一樣堆疊,以提取較低層的局部特征和較高層的總體特征。

應用

在這部分,研究者介紹了一些使用 CNN 來處理 NLP 任務的研究,這些研究在它們當時所處時代屬于前沿。

Kim 探讨了使用上述架構進行各種句子分類任務,包括情感、主觀性和問題類型分類,結果很有競争力。因其簡單有效的特點,這種方法很快被研究者接受。在針對特定任務進行訓練之後,随機初始化的卷積内核成為特定 n-gram 的特征檢測器,這些檢測器對于目标任務非常有用。但是這個網絡有很多缺點,最主要的一點是 CNN 沒有辦法構建長距離依存關系。

萬字長文概述NLP中的深度學習技術之卷積神經網絡(萬字長文概述NLP中的深度學習技術之卷積神經網絡)5

圖 7:4 種預訓練 7-gram 内核得到的最好核函數;每個内核針對一種特定 7-gram。

Kalchbrenner 等人的研究在一定程度上解決了上述問題。他們發表了一篇著名的論文,提出了一種用于句子語義建模的動态卷積神經網絡(DCNN)。他們提出了動态 k-max 池化策略,即給定一個序列 p,選擇 k 種最有效的特征。選擇時保留特征的順序,但對其特定位置不敏感。在 TDNN 的基礎上,他們增加了動态 k-max 池化策略來創建句子模型。這種結合使得具有較小寬度的濾波器能跨越輸入句子的長範圍,從而在整個句子中積累重要信息。在下圖中,高階特征具有高度可變的範圍,可能是較短且集中,或者整體的,和輸入句子一樣長。他們将模型應用到多種任務中,包括情感預測和問題類型分類等,取得了顯著的成果。總的來說,這項工作在嘗試為上下文語義建模的同時,對單個内核的範圍進行了注釋,并提出了一種擴展其範圍的方法。

萬字長文概述NLP中的深度學習技術之卷積神經網絡(萬字長文概述NLP中的深度學習技術之卷積神經網絡)6

圖 8:DCNN 子圖,通過動态池化,較高層級上的寬度較小濾波器也能建立輸入句子中的長距離相關性。

情感分類等任務還需要有效地抽取 aspect 與其情感極性(Mukherjee and Liu, 2012)。Ruder 等人(2016)還将 CNN 應用到了這類任務,他們将 aspect 向量與詞嵌入向量拼接以作為輸入,并獲得了很好的效果。CNN 建模的方法一般因文本的長短而異,在較長文本上的效果比較短文本上好。Wang et al. (2015) 提出利用 CNN 建模短文本的表示,但是因為缺少可用的上下文信息,他們需要額外的工作來創建有意義的表征。因此作者提出了語義聚類,其引入了多尺度語義單元以作為短文本的外部知識。最後 CNN 組合這些單元以形成整體表示。

CNN 還廣泛用于其它任務,例如 Denil et al. (2014) 利用 DCNN 将構成句子的單詞含義映射到文本摘要中。其中 DCNN 同時在句子級别和文檔級别學習卷積核,這些卷積核會分層學習并捕獲不同水平的特征,因此 DCNN 最後能将底層的詞彙特征組合為高級語義概念。

此外,CNN 也适用于需要語義匹配的 NLP 任務。例如我們可以利用 CNN 将查詢與文檔映射到固定維度的語義空間,并根據餘弦相似性對與特定查詢相關的文檔進行排序。在 QA 領域,CNN 也能度量問題和實體之間的語義相似性,并借此搜索與問題相關的回答。機器翻譯等任務需要使用序列信息和長期依賴關系,因此從結構上來說,這種任務不太适合 CNN。但是因為 CNN 的高效計算,還是有很多研究者嘗試使用 CNN 解決機器翻譯問題。

總體而言,CNN 在上下文窗口中挖掘語義信息非常有效,然而它們是一種需要大量數據訓練大量參數的模型。因此在數據量不夠的情況下,CNN 的效果會顯著降低。CNN 另一個長期存在的問題是它們無法對長距離上下文信息進行建模并保留序列信息,其它如遞歸神經網絡等在這方面有更好的表現。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved