• 沒有找到結果。

類神經網路模型 - 卷積類神經網路

第三章 研究步驟與方法

第十節 類神經網路模型 - 卷積類神經網路

卷積類神經網路 (Convolutional Neural Network, CNN) (Kim, 2014) 大致分為

兩部份,如圖 3.10.1,第一部份有卷積層 (Convolutional Layer)與池化層 (Pooling Layer),第二部份為 FCNN,以下將簡介各層的細節。

圖3.10.1 卷積類神經網路

在介紹卷積層前先展示輸入資料的形式。本研究將文本透過 word2vec 的方

法將每個詞轉為25 維的實數向量,有別於圖像的每個像素有 RGB 三原色,如圖 3.10.2。

30

圖3.10.2 圖像與文字的向量表達式

卷積層利用多個二維過濾器 (filter) 與輸入作點積 (dot product) 。過濾器大 小 (filter size, receptive field) 以高 (height) 和寬 (width) 表示,高寬可以自行調 整以正方型為主,如圖 3.10.3 (a) 過濾器大小分別為 2 × 2 與 3 × 3。

圖3.10.3 (a) 過濾器大小 (b) 墊零

卷積層中有三個參數需要設定,分別為 (I) 墊零 (zero-padding) :如圖 3.10.3

31

32

圖3.10.5 池化層

池化層如圖 3.10.5,池化層將卷積層的切片作大小調整,調整的方式是在池

化的區塊中選取最大的值,其餘丟棄,如圖3.10.5 之切片大小為4 × 4,池化大小 為 R2𝑥2,在第一個區塊中選取49,第二個區塊中選取 48,依此類推,這樣可以 減少 75% 的訊息量。

第十一節 類神經網路模型 - 長短期記憶類神經網路

循環類神經網路 (Recurrent Neural Networks, RNN),如圖 3.11.1 (a),𝒙 為文

本中某一詞向量,𝑖 為文本中詞的順序,𝑡 為循環傳遞的順序,𝑠𝑡 為傳遞到輸出 𝑦𝑡與下一個循環序列 𝑠𝑡+1 的神經元。因為 RNN 存在梯度消失的問題,使某一

神經元會將以前的訊息遺忘,無法使用在長序列的數據中。長短期記憶類神經網

33

路 (Long-Short Term Memory, LSTM)演化自 RNN,如圖 3.11.1 (b),改善單點傳 遞的神經元結構,多加入一個傳遞單元,單元控制項 𝑐𝑡。𝑐𝑡的特色在於可以記憶 以前的訊息,但不傳遞到輸出,且與 𝑠𝑡 分開傳遞,所以可以減少梯度消失的影

響。

圖3.11.1 (a) RNN encoder (b) 順向 LSTM encoder

LSTM encoder 常用於序列數據,本研究的文本也屬於一種序列數據。一種語 言模型是根據前面幾個字判斷後面的詞,例如:"My phone was broken, I would like to __", " __ " 可以填入 "repair"、"buy" 或 "cry";如果今天變成,"My phone was broken, I would like to __ a new phone.",這時只能在 " __ " 中填入 "buy" 。

所以除圖3.11.1 (b)的模型外,另外也使用圖 3.11.2 的模型,循環傳遞的順序相反,

因此模型訓練的文本會反向變為 ".phone new a __ to like would I ,broken was phone My" 作訓練,如此不只從前面的詞建立語言模型,也從後面的詞建立語言模型。

此種做法可以優化 word2vec 方法中訓練詞向量模型的缺點,該缺點是預訓練詞

34

的上文與下文之擷取距離不可太長,而順向 LSTM 的優點是傳遞距離從頭開始,

再加上逆向 LSTM 即可彌補順向 LSTM 只與上文的訊息有關,使成為與上文和

下文有關且擷取距離範圍涵蓋到頭和尾。

圖3.11.2 逆向 LSTM encoder

LSTM encoder 的內部結構如圖 3.11.4。主要多了四個部分,從左到右分別為,

藍色區塊稱為遺忘門 (forget gate)、橘色區塊稱為輸入門 (input gate)、綠色區塊稱 為輸出門 (output gate)和紫色區塊稱為單元控制項 ct。遺忘門的功用在決定要減 少多少的 𝑐𝑡−1成為 𝑐′𝑡−1,減少的比例由 𝑓𝑡 控制;輸入門由 𝑖𝑡 與 𝑐′𝑡 控制,輸 入門控制 𝑥𝑡 與 ℎ𝑡−1 使其增加或減少 𝑐′𝑡−1 使其成為 𝑐𝑡;輸出門計算原 RNN 架構下 𝑥𝑡 經過 𝑐𝑡 的調整得到輸出。神經元內的各個數值如式 3.11.1 到式 3.11.8,

𝑡−1 為前一循環的輸出、 𝑥𝑡 為當前輸入、 𝑊_ 為 ℎ𝑡−1 與 𝑥𝑡 之權重矩陣, 𝑓𝑡

與 𝑐𝑡−1 和 𝑖𝑡 與 𝑐𝑡 為紀錄到長期記憶單元 𝑐𝑡 的向量、𝑜𝑡 與 𝑐𝑡 為神經元的輸

35

出、𝑏_ 為偏移量,函數 σ 為函數 sigmoid,符號"。"為點積。對比於 RNN encoder,

LSTM encoder 的輸出本質上與 RNN encoder 相同,稱為短期記憶單元,因為梯

度消失問題無法記憶長序列; LSTM encoder 多一個只負責記憶功能的單元 𝑐𝑡, 稱為長期記憶單元,減少梯度消失問題,可記憶較長序列。

𝑊_[ℎ𝑡−1, 𝑥𝑡] = 𝑊_ℎ𝑡−1+ 𝑊_𝑥𝑥𝑡 (式 3.11.1)

𝑓𝑡 = 𝜎(𝑊𝑓 [ℎ𝑡−1, 𝑥𝑡] + 𝑏𝑓) (式 3.11.2) 𝑐′𝑡−1 = 𝑓𝑡。𝑐𝑡−1 (式 3.11.3) 𝑖𝑡 = σ(𝑊𝑖 [ℎ𝑡−1, 𝑥𝑡] + 𝑏𝑖) (式 3.11.4) 𝑐′𝑡 = tanh(𝑊𝑐 [ℎ𝑡−1, 𝑥𝑡] + 𝑏𝑐) (式 3.11.5) 𝑐𝑡 = 𝑐𝑡−1 + 𝑖𝑡。𝑐𝑡 (式 3.11.6) 𝑜𝑡 = σ(𝑊𝑜 [ℎ𝑡−1, 𝑥𝑡] + 𝑏𝑜) (式 3.11.7) ℎ𝑡 = 𝑜𝑡。tanh (𝑐𝑡) (式 3.11.8)

36

圖3.11.3 LSTM encoder 神經元結構9

第十二節 類神經網路架構

使用 CNN encoder 擷取文本特徵,此模型除了主觀認定的特徵外,可以找出

未發現的特徵,在3.10 節中提過可以設定過濾器的數目,過濾器愈多可以預設的 特徵就愈多,如圖 3.12.1,輸入文本的大小為 𝑛 × 𝑚 × 1,𝑛 為訓練集中單一文 本詞的數量之最大值,𝑚 為詞向量的維度,本研究中 𝑛 為 292,𝑚 為 25,若經

過因子分解機 𝑚 為 600,經過池化層的 Max pooling size 為 2 後與設定的過濾

9 https://zybuluo.com/hanbingtao/note/581764

37

器數量 s,CNN encoder 的輸出維度為 0.5𝑛 × 0.5𝑚 × 𝑠,為了使用 FCNN 將 encoder 平坦化,此時向量變成 0.25𝑛𝑚 × 1。本研究使用單 CNN encoder 擷取

特徵,並比較初步擷取特徵後再進行一次特徵擷取是否可以使效能提升,此稱為 雙 CNN encoder,如圖 3.12.2,第二個 CNN encoder 參數與前一個相同,第二個 CNN encoder 輸出維 度大小為 0.25𝑛 × 0.25𝑚 × 𝑠 ,所以平 坦化後的大小 為 0.0625𝑛𝑚 × 1。

圖3.12.1 單 CNN encoder 類神經網路架構

38

3.12.2 雙 CNN encoder 類神經網路架構

使用 LSTM encoder 訓練語言模型,在 3.6 節中所介紹的詞向量之訓練方法

已經有使用類神經網路訓練語言模型,但是詞向量在訓練時只參考相鄰幾個詞,

使用 LSTM encoder 可以將文本最前面的詞都參考進來,如圖 3.12.3,輸入文本 的大小為 𝑛 × 𝑚,𝑛 為訓練集中單一文本詞的數量之最大值,𝑚 維詞向量維度大 小,𝑛 為 292,𝑚 為 25,經過因子分解機後的 𝑚 為 600,為比較經過 LSTM

encoder 後的語言模型是否優於未使用 LSTM encoder,LSTM encoder 之輸出詞 向量特徵數相同,LSTM encoder 後的輸出大小為𝑛 × 𝑚,為了使用 FCNN 將

encoder 平坦化,此時向量變成 𝑛𝑚 × 1。本研究使用單 LSTM encoder 訓練語言 模型,並比較訓練一次語言模型後再用一樣的 LSTM encoder 訓練一次語言模型

是否可以使效能提升,此稱為雙 LSTM encoder,如圖 3.12.4,第二個 LSTM encoder 參數與前一個相同,LSTM encoder 並不會使輸入的大小改變,所以輸出 大小同為 𝑛 × 𝑚,所以平坦化後的大小也同為 𝑛𝑚 × 1。

39

圖3.12.3 單 LSTM encoder 類神經網路架構

3.12.4 雙 LSTM encoder 類神經網路架構

在 3.11 所提到的順向 LSTM encoder 的缺點,如果只看前面的詞去預測後面 的詞可能會發生錯誤,所以使用順向與逆向的雙向 LSTM encoder,此外也彌補 word2vec 訓練時擷取上下文範圍較小的缺點,如圖 3.12.5,將兩個 LSTM encoder

40

的輸出取平均,此架構訓練出一種參考前序列詞與參考後序列詞的語言模型。

3.12.5 順向逆向 LSTM encoder 類神經網路架構

若 LSTM encoder 可以優化詞向量的語言模型,且 CNN encoder 可以找出未

知的特徵,將兩種 encoder 結合是本研究感興趣的,如圖 3.12.6,輸入的詞向量

經過 LSTM 後維度保持不變,訓練出 LSTM encoder 語言模型,串接 CNN encoder 找出文本的特徵,比較混合型的 encoder 是否優於單一種 encoder 的效

能。

41

3.12.6 LSTM encoder 串接 CNN encoder 的類神經網路架構

除了使用詞向量的詞表達式,本研究使用詞頻率當作詞的表達式,由於使用 詞頻率當特徵並沒有序列關係,所以不適用 LSTM encoder 或 CNN encoder 當 作訓練模型,因此本研究只使用全連結神經網路當作主要模型,如圖 3.12.7, 𝑛 為詞頻率特徵的維度,本研究中 𝑛 為 4997 與 6200。

圖 3.12.7 全連結類神經網路架構

42

43

本研究認為評論中的建議可以對消費者或業者有好處,對於無建議成份的評

論不是本研究要找的,本研究指定正向代表建議類;負向代表非建議類。Accuracy 計算正確正例與正確負例的數量,如果模型對於識別負向效能特別好,測試數據 也很多負向的資料,Accuracy 雖然會較高,但對本研究目的沒有幫助。所以使用 式 (式 3.13.2)(式 3.13.3)(式 3.13.4) 為主要評估方式。

44

Class Number of sentences

Suggestion 2994

相關文件