作品書籍課程程式集小說集論文集散文集影片集編輯雜誌程式人電子書JavaScript計算語言學微積分Blender 動畫C# 語言系統程式高等 C 語言JavaAndroidVerilogWikidotR 統計軟體機率統計計算機數學組合語言人工智慧開放原始碼網路資源運用計算機結構相關訊息常用工具友站連結在家教育RSS最新修改網頁列表簡體版English |
作者:陳鍾誠 金門技術學院研究報告, 2009年 11 月 27 日初稿 簡介目前,自然語言處理 (Natural Language Processing) 的方法可以粗略分為統計式 (Statistical NLP) 與規則式 (Rule-based NLP) 兩類。1990 年以前的研究較偏向規則式的方法,到了 1995 年之後,由於網路上的語料越來越多,於是統計式的方法越來越受到重視。 近來,統計式的方法機器翻譯領域有明顯的進展,然而,統計式的方法在短語上表現的較好,但是對於語法則難以處理,我們企圖利用神經網路的概念,透過大量語料庫的訓練,改進自然語言處理的方法。 自然語言的語句或文件,通常被表達為一連串的詞彙,舉例而言,在全文檢索領域,一個文件 d 通常表達為一個詞彙串列,其數學式如下所示 (1)\begin{equation} d = (t_1, t_2, ..., t_n) \end{equation}
同樣的,在機器翻譯領域,一個句子也被表達為一個詞彙串列,其數學式如下所示 (2)\begin{equation} s = (t_1, t_2, ..., t_n) \end{equation}
在本文中,除非特別提及,否則我們一律以 d 代表這樣的詞彙串列概念。 假如不考慮詞彙的順序,那麼整個文件 d 還可以視為一個詞彙向量,其數學式如下所示。 (3)\begin{align} \overrightarrow{d} = [d_{t_1}, d_{t_2}, \ldots, d_{t_n}] \end{align}
語言神經網路如果我們將現實世界中的文件 d 視為一個邏輯事實,並用詞彙向量作為輸入,那麼,將可以建構出下列網路,其中左半部的代表詞彙庫 (W),右半部則代表文件庫 (D)。 ![]() 圖一、語言神經網路的模型 在圖一的模型中,詞彙 (w) 透過中間層的內隱節點 (c) 連結到文件 (d), 這些內隱節點可以想像為某種概念 (C) 或者抽象特性。 我們可以透過調整詞彙 w 與概念 c 之間的權重 $w_{c,x}$ ,以及概念 c 與文件 d 之間的權重 $w_{d,x}$,以訓練整個神經網路。 由於文件 d 本身所代表的就是一個事實,因此可以在訓練的過程中擔任指導者的角色。當我們輸入 d 的詞彙向量 $\overrightarrow{d}$ 於左半部的 W 當中時,會希望右半部的輸出值之最強者為 d。假如我們希望輸出介於 (0..1) 之間,那麼 d 的目標輸出值應為 1,其他文件的輸出值則應該小於 1。 於是我們可以利用神經網路當中的基本訓練法則 Hebb 定律 (Hebb, 1949) 進行權重的調整,Hebb 定律的基本原理如下: 『假如兩的神經元同時被激勵,則其中的連結將會增強,否則,連結將會減弱』 然而、Hebb 定律通常被用在無指導者的神經網路上,但在我們的模型中, d 本身可以視為是指導者,但仍然可以借用 Hebb 的思想,只是在訓練的過程上反而更像有指導者的反傳遞式演算法。 在圖一中,假如我們將文件 d = "a black dog" 輸入,此時會先將該文件轉換為詞彙向量 (a:1, black:1, dog:1, cat:0, ….),也就是計算詞彙在文件中的出現次數,然後以這些數值作為神經網路輸入,開始計算其輸出值。 由於輸入的訓練文件為 d1,於是 d1 節點的期望輸出應該為 1,其他文件的輸出值則應該 < 1,於是就可以開始訓練並透過Hebb 定律調整權重。 ![]() 圖二、翻譯神經網路的範例 翻譯神經網路上述的語言神經網路具有相當好的擴充性,舉例而言,假如我們希望透過雙語語料庫,讓語言神經網路學習將英文翻譯為中文,就可以直接將中文詞彙加入到詞彙庫 W 中,然後用漢英雙語對照的語料庫 D 作為學習對象,經過學習訓練程序之後,得到一個漢英翻譯的神經網路。 在訓練完成之後,假如我們用 "a black dog" 作為輸入,理想上 d1 的強度應該會最強,於是我們取得翻譯語句 "一隻黑狗" 作為輸出。 ![]() 圖三、翻譯神經網路的模型 - 雙語語句 ![]() 圖四、翻譯神經網路的模型 - 雙語詞彙對照 考慮語法規則如果我們希望將與法規則也加入語言神經網路中,那麼可以將這些規則加入到概念庫 C 當中,然後讓 C 內部的節點可以互相連結,或者直接將 C 分為數層 C1 (類別&屬性), C2 (短語規則), C3 (語句規則), C4 (文件規則:語境) 等,然後再利用類似反傳遞演算法的方式進行訓練,以便學習語言的內在結構。 ![]() 圖五、翻譯神經網路的模型 - 加入規則 結語目前我們正在進行上述語言神經網路的建構,預計近期進行實驗,以便測試此一網路的學習能力。 本文為尚未發表的論文,若您想要引用本文,請使用下列引用方式。
參考文獻
|
神經網路式的語言模型 (Neural Network Language Model)
page revision: 51, last edited: 03 Dec 2009 08:39











Post preview:
Close preview