計算語言學概論複習筆記(分詞、語言模型、隱馬爾科夫、POS、ML、DL、MT)
阿新 • • 發佈:2019-02-18
01(計算語言學概論)
計算語言學的應用
- 機器翻譯
- 人機對話
- 資訊檢索
- 資訊提取
- 自動文摘
- 文字分類
- 拼寫檢查
- 音字轉換
什麼是計算語言學?
- 計算語言學是通過建立形式化的計算模型來分
析、理解和處理自然語言的學科。
- 計算語言學是通過建立形式化的計算模型來分
計算語言學的研究目標
- 研製能理解並生成人類語言的計算機系統(終極)
- 研製出具有一定人類語言能力的計算機文字
或語音處理系統。(當前)
計算語言學的研究內容
- 建立形式化的適於計算機處理的語言模
型。 - 研製分析、生成以及處理語言的各種算
法。
- 建立形式化的適於計算機處理的語言模
計算語言學研究的挑戰性
- 歧義(音韻學、形態學、句法學、語義學、語用學)
- 領域知識需求很高
- 規則不能窮舉
計算語言學的研究方法
- 規則驅動的方法( rule-based approach )(語言學角度建模)
- 資料驅動的方法( data-driven approach )(統計方法建模)
- 詞袋模型
- 馬爾科夫模型
- HMM
- 二者融合的方法( hybrid approach )
計算語言學研究中的評測問題
- 評價指標是否合理
- 模型推廣能力
02(現代漢語詞語切分研究)
什麼是詞?
- 詞是由語素構成的、能夠獨立運用的最小的語言單位。
- 詞就是說話的時侯表示思想中一個觀念的詞。
- 缺乏操作標準。(不同的人有不同的把握)
- 漢語中語素、詞和片語的界線模糊。
- 象牙 是詞? 兔牙?
- 吃飯 吃魚
- 毀壞 打壞
漢語分詞規範
- 《資訊處理用漢語分詞規範》GB/T13715-92,中國標準出版社,1993
- 資訊處理用中文分詞規範》臺灣中研院,1995
評測
- 國內863、973、中文資訊學會
- 國際 ACL SIGHAN bakeoff (2003~2007)
- 封閉 /開放(是否可以使用訓練語料之外的其它語言
資源) - 多個訓練語料,迴避標準問題
為什麼要進行漢語的切分研究?
- 對漢語進行切分是許多應用的要求
- TTS或語音合成
- 資訊檢索
- 詞語的計量分析
- 漢語切詞也是深層漢語分析的基礎
- 句法分析、語義分析等
- 對漢語進行切分是許多應用的要求
什麼是漢語自動切分?
- 通過計算機把組成漢語文字的字串自動轉換為
詞串的過程被稱為自動切分 (segmentation) 。 - 漢語和英語等印歐語不同,詞和詞之間沒有空
格。
- 通過計算機把組成漢語文字的字串自動轉換為
基本方法
- 基於詞表的方法(需要配備詞表)
- 最大匹配法(MM)(正逆)
- 演算法非常簡單
- MM和RMM法均沒有檢測歧義的能力。(只能給出一種切分結果)
- 長詞優先
- 輸入:他將來中國
- MM:他/將來/中國
- RMM:他/將來/中國
- 正確:他/將/來/中國
- 全切分+路徑選擇
- 最大匹配法(MM)(正逆)
字序列標記方法(無需詞表、需切分語料)
把切分問題看作給句子中每個字加標記的過程
四個標記:
- B 詞首
- M 詞中
- E 詞尾
單獨成詞 S
- 漢語切分的關鍵問題
- 切分歧義(消解)
- 交集型歧義
- 交集型歧義欄位中含有交集欄位的個數,稱為鏈長。
- 從小學 鏈長是1
- 結合成分 鏈長是2
- 為人民工作 鏈長是3
- 中國產品質量 鏈長是4
- 部分居民生活水平 鏈長是6
- 治理解放大道路面積水 鏈長是8
- 組合型歧義
- 混合型歧義
- 交集型歧義
- 未登入詞識別(OOV,詞表或訓練語料中沒有的詞)
- 基於詞表的方法(需要配備詞表)
歧義的分類
- 真歧義(歧義欄位在不同的語境中確實有多種切分形式)
- 偽歧義(歧義欄位單獨拿出來看有歧義,但在(所有)真實語境中僅有一種切分形式可接受。)
歧義的發現
- 雙向最大匹配(MM+RMM)
- 同時採用MM法和RMM法
- 如果MM法和RMM法給出同樣的結果,則認
為沒有歧義,若不同,則認為發生了歧義。 - 雙向最大匹配法不能發現所有的歧義,存在
盲點
- 最大匹配法不能發現組合型歧義(長詞優先
- 輸入:他從馬上下來
- MM、RMM:他/從/馬上/下來
- 在一定條件下(鏈長為偶數),雙向最大匹配法也不能發現交集型歧義
- 輸入: 原子結合成分子時
- MM:原子/結合/成分/子時
- RMM:原子/結合/成分/子時
- 最大匹配法不能發現組合型歧義(長詞優先
- MM+逆向最小匹配法(發現組合型歧義)
- 全切分演算法(發現所有切分歧義)(計算複雜度太高了)
- 雙向最大匹配(MM+RMM)
歧義消解
- 基於記憶的偽歧義消解(偽歧義存表後對照消岐)
- 基於規則的歧義消解(注意規則中字母的含義)
基於統計的歧義消解(如何評價最佳路徑)
- 統計詞表中每個詞的詞頻,並將其轉換為路徑代價
- 切分路徑的代價為路徑上所有詞的代價之和
尋求代價最小的路徑
- 未登入詞識別
- 未登入詞識別困難的原因
- 未登入詞沒有明確邊界
- 許多未登入詞的構成單元本身都可以獨立成詞
- 傳統上,每一類未登入詞都要構造專門的識別
演算法
- 在序列標註法中,未登入詞無需單獨處理。
- 識別依據
- 內部構成規律(用字規律)
- 外部環境(上下文)
- 未登入詞識別進展
- 較成熟(規律性比較強)
- 中國人名、譯名
- 計算一個可能的人名字串的概率,若其
概率大於某個閾值,則判別為人名。
- 計算一個可能的人名字串的概率,若其
- 中國地名
- 中國人名、譯名
- 較困難
- 商標字號
- 機構名
- 很困難
- 專業術語
- 縮略語
- 新詞語
- 較成熟(規律性比較強)
03(語言模型)
語言建模 (Language Modeling)
- 對於一個服從某個未知概率分佈P的語言L,根
據給定的語言樣本估計P的過程被稱作語言建模。 - 根據語言樣本估計出的概率分佈P就稱為語言L的語言模型。(概率之和為1)
- 在語音識別中,如果識別結果有多個,則可以根據語言模型計算每個識別結果的可能性,然後挑選一個可能性較大的識別結果。
- 漢語切分歧義消解?(藉助語言模型)
- 對於給定的句子s = w 1 w 2 …w n ,如何計算P(s)?(鏈式規則 Chain rule)
- 對於一個服從某個未知概率分佈P的語言L,根
何謂n元組 (n-gram) ?
- 若不限制詞串的長度,引數估計存在困難
- n元模型是一種近似模型,n的選擇需要平衡模
型的準確性和可計算性。 - n元語言模型
- unigram (n=1)
- bigram (n=2)
- trigram (n=3)
- four-gram(n=4)
- 歷史資訊的選擇
- 在n元模型中,引數估計中考慮了n-1個詞的歷史資訊。實質是給定句子中前面n-1個詞,預測下面的詞是哪個詞。
- 歷史資訊越多,選擇限制更強,模型越準確。(所以神經網路必須要解決長距離依賴問題)
- n 較大時(區分度好,但需要大量語料,訓練代價大,引數估計不可靠)
- n 較小時(不具有區分性,計算代價小,引數估計可靠)
建立n元語言模型
- 資料準備(分詞,加入句子邊界標記)
- 引數估計(用訓練語料)
- 最大似然估計 (MLE)(選擇一組引數,使得訓練樣本的概率最大)
- 資料稀疏問題(有些語料概率為零)————加入平滑原則
Zipf 定律(平滑工作的必要性)
- Zipf 定律(大部分詞都是低頻詞)
- 只有少量常用詞,語料庫可以提供它們規律的可靠樣本(平滑工作的必要性)
- 針對某個語料庫,若某個詞w的詞頻是f,並且該詞在詞頻表中的序號為r(即w是所統計的語料中第r常用詞),則 f × r = k (k是一個常數)
- 若w i 在詞頻表中排名50,w j 在詞頻表中排名150,則w i 的出現頻率大約是w j 的頻率的3倍
平滑技術
- Add-one平滑
- new_count(n-gram) = old_count(n-gram) + 1
- 沒有出現過的n元組的概率不再是0
- 給未出現的n元組分配了太大的比例(99.96%)
- 對於未出現的元祖都分配同樣的比例,是公平合理的嗎?
- Add-delta 平滑
- 不是加 1,而是加一個小於1的正數a(例如:a=0.5)
- 留存估計 (Held-out Estimation)
- 訓練語料(training set): 用於初始的頻率估計
- 留存語料(held out data): 用於改善最初的頻率估計
- ==具體的看ppt==.
- 刪除估計(雙向交叉驗證)(Deleted Estimation)
- 如果有很多訓練語料的話,可以使用留存估計
- 如果預料不夠多,可以將其分為兩個部分,讓他們互為訓練(留存)語料,最後的模型對於兩次的留存估計加權求平均。
- Good-Turing 平滑
- 利用高頻率n元組的頻率調整低頻的n元組的頻率
- 一般認為Turing估計值比較可靠,因此應儘可能使用Turing估計值,當Turing估計值和Good-Turing估計差別不大時,轉向使用Good-Turing估計值,直至結束。
- r 越大,p MLE 越可靠,分配出去的概率的比例應該越小r*/r 越接近於1
- 組合估計
- 高階n元組的概率估計可以參考低階n元組的概率估計值.
- 因此可以把不同階別的n元組模型組合起來產生一個更好的模型。
- 簡單線形插值(權值 ai 是常量)
- 線上形插值模型中,無論高階n元組是否
出現,低階n元組都會被用來估計高階n元組的概率分佈
- 線上形插值模型中,無論高階n元組是否
- Jelinek-Mercer平滑
- 回退模型 (back-off model)
- 在高階模型可靠時,儘可能的使用高階模型
- 必要時,使用低階模型
- 在回退模型中,高階n元組一旦出現,就
不再使用低階n元組進行估計
- Katz平滑(看ppt)
- 在回退模型和線形插值模型中,當高階n
元組未出現時,使用低階n元組估算高階n元組的概率分佈
- Add-one平滑
04(熵和語言模型評價)
最優編碼
- 定長編碼(位數固定)
- 變長編碼(給小概率資訊賦以較長的編碼,而給大概率訊息賦以較短的編碼)
- 訊息的編碼長度大,可理解為訊息所含資訊量大。
- 訊息的編碼長度小,則訊息所含資訊量小。
- 平均資訊量即為傳送一個訊息的平均編碼長度 。
- 資訊理論中用熵描述隨機變數平均資訊量。
熵
- 熵描述了隨機變數的不確定性(熵越大不確定性越大)
- 聯合熵(設X 、Y是兩個離散型隨機變數,它們的
聯合分佈密度為p(x,y),則X,Y的聯合熵定義為) - 條件熵(設X 、Y是兩個離散型隨機變數,它們的
聯合分佈密度為p(x,y),則給定X時Y的條件熵定義為) - 鏈式規則 H(X,Y) = H(X) + H(Y|X)
- 資訊量的大小隨著訊息長度的增加而增加,為了便於比較,一般使用 熵率的概念,熵率一般也稱為 字元熵 (per-letter entropy) 或詞熵(漢字的詞熵比英文高)
- 相對熵
- 交叉熵
語言模型評價
- 一般而言,交叉熵越小,模型效能會越好
互資訊
- H(X)和 H(X|Y) 的差稱為互資訊,一般記作I(X;Y)
- I(X;Y)描述了包含在X中的有關Y的資訊量,或包含在Y中的有關X的資訊量
- I(X;Y)≥0 等號成立當且僅當X和Y相互獨立(兩個圓不相交)
- I(X;Y) = I(Y;X) 說明互資訊是對稱的
點間互資訊 (pointwise mutual information)
- 當 I(x,y) >> 0時,x和y高度相關
- 當 I(x,y) = 0時,x和y相互獨立
- 當 I(x,y) << 0時,x和y互補分佈
困惑度
和交叉熵的結果沒有什麼區別
- 噪音通道模型
- 作為通訊系統而言,人們最為關心的是,如何將訊息編碼,以便訊息在有噪聲存在的情況下有效可靠地傳送到接收方
- 在利用噪聲通道處理語言問題時,人們並不關心編碼問題,而更多關心的是,在有噪聲存在的情況下,如何解碼將輸出還原為通道輸入。
- 為機器翻譯找到了整齊的數學描述。
05(隱馬爾科夫模型)
馬爾科夫模型
- 設S是一個由有限個狀態組成的集合。S={1, 2, 3, …,n-1, n}
- 隨機序列稱為時間齊次馬爾可夫鏈
- 一階馬爾科夫模型可以描述為一個二元組( S, A ) ,S是狀態的集合,而A是所有狀態轉移概率組成的一個n行n列的矩陣,其中每一個元素a ij 為從狀態i轉移到狀態j的概率。
- 狀態和輸出是一對一的關係,所以根據觀察到的輸出序列就可以決定模型中的狀態轉換序列。
隱馬爾科夫模型
- 70年代, CMU 的 J.K.Baker 以及 IBM 的 F.Jelinek 等把隱馬爾科夫模型應用於語音識別
- 狀態和觀察值並不是一一對應,狀態轉移過程被不確定的觀察序列(一個概率分佈)所隱藏
- 隱馬爾可夫模型 l 可以表示為一個五元組( S, V, A, B, p )
- 隱馬爾可夫過程是一個雙重隨機過程,其中一重隨機過程不能直接觀察到,通過狀態轉移概率矩陣描述。另一重隨機過程輸出可以觀察到的觀察符號,由輸出概率來定義。
隱馬爾科夫模型的三個問題
- 給定模型和觀察序列的情況下,如何有效地計算出觀察序列的概率,即P(O| l )?
- 可以用窮舉法,但是複雜度過高,計算難度大
- 向前演算法
- 向後演算法
- 計算出一個能最好解釋觀察序列的狀態轉換序列。
- 維特比演算法
- 隱馬爾科夫模型的第三個問題是如何根據觀察序列O =( o 1 o 2 o 3 … o T )求得模型引數或調整模型引數,即如何確定一組模型引數使得P (O| l )最大
- 隱馬爾科夫模型的前兩個問題均假設模型引數已知,第三個問題是模型引數未知,求最佳模型的問題,是三個問題中最為困難的問題。
- 有指導的引數學習(效果較好,但是需要人工大量標記觀察序列的轉移狀態)
- 無指導的引數學習(只有觀察序列)(隨機初始化一組引數,反覆迭代收斂到我們可以接受的精度。容易陷入區域性最優)
- 直觀的想法(考慮所有可能性,多次計算,根據頻次求期望最大。計算複雜度太高,不可取)
- Baum-Welch Algorithm(看ppt)(本質上是一種EM演算法,易陷入區域性最優)
- 給定模型和觀察序列的情況下,如何有效地計算出觀察序列的概率,即P(O| l )?
06(詞類自動標註)
詞的分類依據
- 形態標準
- 分佈標準
- 意義標準
英語中詞的分類
- 英語詞類
- 詞類的子類
漢語中詞的分類
- 由於漢語缺乏形態,詞的類別不如英語等西方語言那樣易於判別。漢語語言學家在漢語詞類劃分問題上一直有不同見解,經過長期爭議,至今仍然存在多種看法。
- 兼類問題(如果同一個詞具有不同詞類的語法功能,則認為這個詞兼屬不同的詞類,簡稱兼類)
- 漢語詞類標記集(語料庫此類標記集)
詞類自動標註
- 詞類自動標註是深層語言分析的基礎(如:句法分析)
- 詞類自動標註是深層語言分析的基礎
- 要標註的詞的不同詞類的分佈
- 上下文中其它詞的詞類資訊
- 詞類自動標註
- 基於規則的詞類標註
- 基於統計的詞類標註
- 統計規則相結合的詞類標註
- 其他方法(基於決策樹,基於神經元網路,基於最大熵原則)
- 未登陸詞的詞性標註是難點(可以視作兼類詞)
基於規則的詞類標註方法
- 早期的詞類標註方法多為基於規則的方法
- 基於規則的詞類標註程式工作過程
- 查詞典,給句中各詞標記所有可能的詞類標記
- 應用規則,逐步刪除錯誤的標記,最終只留下正確的標記
基於隱馬爾科夫模型的詞類標註(統計)
- ==細節看ppt==
- 引數學習(有指導/無指導)
- 最大似然估計
- 改進基於HMM的詞類標註(bigram可以改成trigram)
基於轉換的詞類標註(兼具規則和統計兩個方面的特性)
- 應用規則進行標註,規則(機器學習得到的)稱為轉換
- 規則不是人工總結,而是應用機器學習的辦法學習得到。使用的機器學方法通常稱作基於轉換的學習
- 激發環境(條件語句)
- 重寫規則(標註語句)
- 轉換規則可以視為一種糾錯規則(在轉換規則使用前,待標註的句子已經進行過初步標註,轉換規則負責改正其中的錯誤標註)
- 初標註器的選擇
- 學習到的轉換規則和初標註器有關,選擇不同的初標註器學習到的轉換規則不同
- 用學到的規則進行詞類標註時,應保證和學習規則時用相同初標註器。
- 轉換規則的排列順序是有意義的
- 先學到的轉換規則先使用,後學到的規則後使用,後學到的規則的作用物件是先學到的規則的處理結果
- 先學到的規則效果明顯、後學到的規則對錯誤率的改進較小
- 規則的使用過程類似於創作油畫
- 激發環境的選擇
- 激發環境的選擇確定了利用的上下文知識的多少。
- 理論上,利用的上下文知識越多效能越好
- 但對激發環境不加限制,導致學習效率嚴重下降,需進行權衡。
- Brill使用激發環境模板來限制可以使用的環境
07(自然語言處理研究中常用的機器學習技術)
統計建模問題
- 某隨機現象,概率分佈未知
- 但擁有該隨機現象的一組樣本資料 (訓練資料), 或者擁有該資料的部分知識。
- 人們可以基於樣本資料或部分知識對隨機現象所服從的概率分佈進行推斷,並求解這個概率分佈。
- 利用所得到概率分佈對隨機現象的未來行為進行預測。
- 最大熵方法就是這樣一種統計建模技術
最大熵原則( Principle of Maximum Entropy )
- 熵描述了隨機變數的不確定性,熵值越大表明該隨機變數的不確定性越大,該隨機變數也就越接近均勻分佈
- 在只掌握關於未知分佈的部分知識時,應該選取符合這些知識但熵值最大的概率分佈。這就是最大熵原則
- 按照最大熵原則進行統計建模,是人們可以作出的唯一不偏不倚的選擇,任何其它的選擇都意味著人們增加了額外的約束和假設,這些約束和假設根據人們掌握的資訊無法作出。
最大熵方法中約束表達
- 通過約束使特徵的模型期望與觀察期望保持一致,最大熵方法保證所得到模型分佈符合樣本資料中的已知統計證據。
- 滿足所有約束條件的分佈通常不止一個。若用P表示所有滿足特徵約束條件的分佈
- 求解最大熵模型就成為一個約束最優化問題。
- 最大熵模型是一種對數線性模型,其中指數部分表述為特徵的一種線性加權組合,特徵f i 對分佈的影響通過拉格朗日乘數 l i 來體現。
條件最大熵分佈
- 在計算語言學領域,人們需要的常常是條件模型,需要估算的是 p(y|x),此時優化的目標是分佈的條件熵
最大熵方法的優點
- 利用最大熵方法進行統計建模時,人們只需要根據具體問題的要求,集中精力選擇特徵,無需花費精力考慮如何使用這些特徵,並且選擇特徵可以很靈活,無需考慮特徵之間是否獨立,特徵的型別和特徵的數量都可以隨時進行調整。
- 利用最大熵建模,引數平滑甚至可以通過特徵選擇的方式加以考慮,每個特徵對概率分佈的貢獻由引數 l i 決定
最大熵方法的模型訓練
- 可以採用數值最優化演算法,兩種考慮方式
- 以樣本資料的熵值最大化作為優化目標
- 以樣本資料的概率值最大化作為優化目標進行最大似然估計
- 目前提出的用於訓練最大熵模型的演算法有(迭代)
- GIS演算法(Generalized Iterative Scaling)
- IIS演算法(Improved Iterative Scaling)[收斂速度快]
- 梯度下降法、擬牛頓法等最優化演算法也可用於訓練最大熵模型,例如L-BFGS演算法
- 可以採用數值最優化演算法,兩種考慮方式
特徵選擇
- 對於樣本資料,可以設計出成千上萬的特徵,並非所有特徵的樣本期望值都是可靠的,很多特徵的樣本期望值帶有偶然性,與特徵的真實期望並不一致,引入這樣的特徵無益於統計建模工作。
- 需要特徵選擇策略
- 設定一個截止頻率
- 採用特徵選擇演算法
圖模型 (Graphical Model)
- 條件馬爾可夫模型、條件隨機場模型是圖模型
- 圖模型常用來為若干隨機變數的聯合分佈進行統計建模,用以將聯合分佈進行適當的分解
- 依據鏈式規則,N個隨機變數的聯合分佈可做如下形式的分解
- 若已知隨機變數之間的依賴關係,上述分解式中條件分佈可略去和變數x i 獨立的變數
- 圖模型用圖結構描述隨機變數之間的依賴關係
- 結點 — 隨機變數
- 邊 — 隨機變數之間的依賴關係
- 圖結構可以是有向圖(HMM)和無向圖(團上的是函式需要歸一化)
有向圖模型與無向圖模型的對比
- 共同之處(將複雜的聯合分佈分解為多個因子的乘積)
- 不同之處
- 有向圖模型因子是概率分佈、無需全域性歸一
- 無向圖模型因子是勢函式,需要全域性歸一
- 優缺點
- 有向圖模型無需全域性歸一、訓練相對高效
- 無向圖模型中勢函式設計不受概率分佈約束,設計靈活,但全域性歸一代價高
判別模型和生成模型
- 對o和s進行統計建模,通常有兩種方式
- 生成模型(著眼於構建o和s的聯合分佈 p(s,o))
- 判別模型(著眼於構建o和s的條件分佈 p(s|o))
- 判別模型與序列標記問題有較好的對應性(例如HMM)
- 在利用生成模型進行序列標註時(理論上需要歸一化)
- 訓練時,二者優化準則不同
- 生成模型優化訓練資料的聯合分佈
- 判別模型優化訓練資料的條件分佈
- 對於觀察序列的處理不同
- 生成模型中,觀察序列作為模型的一部分
- 判別模型中,觀察序列只作為條件,因此可以針對觀察序列設計靈活的特徵
- 訓練複雜度不同
- 判別模型訓練複雜度較高
- 是否支援無指導訓練
- 生成模型支援無指導訓練,判別模型無指導訓練代價高
- 對o和s進行統計建模,通常有兩種方式
條件馬爾可夫模型 (Conditional Markov Model )
- 針對HMM的缺陷,提出條件馬爾可夫模型
- HMM過強的獨立性假設限制模型的改進,無法使用關於觀察值的多重特徵以及不相互獨立的特徵
- 模型訓練使用聯合分佈、標註使用條件分佈,對效能造成負面影響
- 條件馬爾可夫模型是判別模型、有向圖模型
- 最大熵馬爾可夫模型(MEMM)是一種簡化了的條件馬爾可夫模型(已被應用於NLP)
- 條件馬爾可夫模型的訓練採用最大似然估計法
- 仍屬數值最優化問題,可採用數值最優化演算法求解引數
- 對於條件馬爾可夫模型,==解碼仍是Viterbi演算法==
- 條件馬爾可夫模型的缺陷是==標記偏執問題== (Label Bias problem)
- 標記轉移分佈熵值低的情況,都會有標記偏執問題。
- 標記偏執的原因在於區域性歸一(是什麼?)。
- 標記偏執問題給條件馬爾可夫模型的應用效能造成很大負面影響
- 解決的辦法是取消區域性歸一,代之以全域性歸一
- 針對HMM的缺陷,提出條件馬爾可夫模型
條件隨機場模型 (Conditional Random Fields)
- 可以很好地解決標記偏執問題
- 條件隨機場模型是==判別模型==(特徵設計靈活)無向圖模型(無需區域性歸一,代之全域性歸一)
- 基於最大熵原則進行建模,定義樣本條件熵
- 以團為單位定義特徵
- 約束特徵的樣本期望與模型期望相同
- 運用拉格朗日乘數法,求解出條件隨機場的分佈形式
- 對數線性模型
- 訓練條件隨機場模型原理與其它前述模型類似,可以採用GIS、IIS演算法以及其他數值優化演算法
- 基於條件隨機場模型進行==標註採用Viterbi演算法==
- 理論上較為完善的序列標記模型
- 兼具判別模型和無向圖模型的優點特徵設計靈活、無需考慮特徵獨立性,沒有標記偏執問題
- 條件隨機場模型訓練代價大、複雜度高
- 除鏈式圖結構外,還可以設計其他圖結構,如針對網頁的連結結構
- 有開原始碼,有興趣可瞭解
08(深度學習與自然語言處理)
神經網路模型概要
- 上世紀70年代,神經網路研究陷於低潮
- 上世紀80年代,神經網路研究復甦(BP演算法被關注和應用)
- 上世紀90年代,SVM等取代神經網路模型獲得更多關注
- 2006年以後,伴隨著Geoffrey Hinton等人的工作,神經網路重新崛起(Deep Learning)
非線性學習
- 與最大熵模型、支援向量機的差異(非線性表達)
- 神經網路模型有更強的表達能力。(capacity)
- 表達能力強!=成功
- 逼近的近似程度與hidden neuron的數量有關
- Learnability of NN model沒有保證
- 訓練演算法如何學到正確的函式沒有保證(區域性最優)
特徵表示
- 傳統機器學習的特徵表示
- 原子特徵 和 組合特徵
- 特徵向量的維數=特徵的數量
- onehot
- 特徵表示的特點:高維、稀疏
- 特徵和特徵之間相互獨立
- 神經網路模型中的特徵表示
- ==特徵被表示為低維、稠密(dense)向量==
- 大多隻關心原子特徵
- ==原子特徵被嵌入d維向量空間(d<<特徵數==量)
- 每個分量不只是0和1,而是一個任意實數
- 類似的特徵擁有類似的向量表示(稠密表示擁有更好的推廣能力)
- 特徵表示被稱作 word embedding 或者 feature embedding
- 特徵表示被視作模型的一個組成部分,自動學習
- 神經網路模型的特徵處理
- 提取與任務相關的原子特徵(f1,f2,f3…fk)
- 對於任意特徵fi,的到其embedding表示v(fi)
- 組合相關特徵的向量表示(拼接、求和…),形成模型的輸入向量x
- 將x作為神經網路模型輸入,生成任務的輸出
- ==特徵抽象和表示學習==
- 在深度學習模型中,特徵表示是分層的。
- 高層特徵經由底層特徵自動學習得到
- 底層特徵對應簡單具體概念,高層特徵對應高層抽象概念
- 每層特徵對應輸入x的一種表示
- 深度體現為特徵表示的層次性
- 分類
- 基於規則的模型(純手工特徵)
- 經典學習模型(特徵工程+特徵對映)
- 深度學習模型(自動提取特徵,組合特徵在高維體現)
- 傳統機器學習的特徵表示
前饋神經網路
- 神經網路的基本計算單位:神經元(neuron)
- 將多個神經元逐層互聯形成網路結構,得到前饋神經網路模型( Feed-forward neural network ),也稱多層感知機( Multi-Layer Perceptron )
- 全連線層( fully connected layer )(每個結點都與下一層的所有結點有連線)
- y可以是標量,對應迴歸模型 或 二分類模型
啟用函式
- 啟用函式為模型引入非線性(描述能力)
- 啟用函式有多種選擇(sigmoid/tanh/ReLU)
- 何選擇啟用函式沒有確定方法,需要試驗一般經驗:ReLU≻tanh≻sigmoid
- 獲得輸出類別的==概率分佈==
- 輸出層歸一 softmax
- 支援最大似然估計、支援用交叉熵作為優化目標
Embedding Layer(lookup layer)
- word embeddding /feature embedding
- 拼接/求和
- Embedding Layer作為網路的組成部分,參與訓練
損失函式
- 訓練目標,損失最小(估計值與真實值之間)
- 常見的損失函式
- Hinge Loss (Binary)
- Hinge Loss(Multiclass)
- Cross Entropy Loss(需要為輸出層softmax)
神經網路訓練
- 主要方法:(Stochastic) Gradient Descent
- 最速下降方向: 負梯度方向 −g
- 更新步幅:學習率 ?
- 梯度更新規則 ? ← ? − ?g
- deterministic gradient descent
- Stochastic Gradient Descent(Online SGD/Mini-batch SGD)
- SGD variant: AdaGrad, AdaDelta, RMSProp, Adam等
- 如何計算梯度?— Backpropagation Algorithm
- 原理:複合函式求導的鏈式法則
- 計算過程
- Forward Pass (自輸入層起逐層計算,最終算出loss)
- Backward Pass(自loss function起,逐層計算梯度)
- 基於Computation Graph的自動梯度計算
- Operation 和variable
- Variable用結點表示,operation用邊上的標註表示。
卷積神經網路
- 稀疏連線
- 輸出單元只和有限個輸入單元連線
- 視窗寬度 k
- 引數共享(w 稱作 filter)
- Narrow convolution 和wide convolution
- 在輸入層兩側填充? − 1個0, 形成wide convolution(句子邊緣的資訊就不會丟失)
- 在NLP中,卷積操作常用來處理序列問題,如句子 或者 語篇
- 前饋神經網的輸入的維數是固定的。
- 卷積輸入序列長度可以是變化的。
- 通過卷積操作與池化操作(dynamic k-max pooling)將變長序列轉換為固定維度的向量,並進而基於該向量利用前饋神經網等完成類別判定。
- 例如 情感極性分類
- Sentiment class ∈ {positive, negative, neutral}
- 卷積流程:
- 給定句子
- 對應的embedding序列
- 設視窗寬度為k
- 進行卷積操作(filter共享引數)
- 經過卷積操作,句子被轉換為m個向量。其中,m = n-k+1 (narrow) 或者 m = n+k-1 (wide)
- 優缺點
- 卷積操作有利於發現與位置無關的區域性特徵
- 池化操作將任意長度的序列轉換為固定長度的向量表示(daynamic k-max pooling)
- 卷積操作可以堆疊(深層卷積)
- 多通道卷積(multi-Channel)
- 池化操作損失了序列結構資訊
- 稀疏連線
迴圈神經網路
- 迴圈神經網路是面向序列結構的建模工具
- 作為序列表示模型(用最後一個時刻的隱層狀態作為序列的表示)(例如:情感分析)
- 作為序列標註模型(每個時刻均有輸出)(例如:詞類標註、漢語分詞)
- 多層迴圈神經網路/雙向迴圈神經網路
- 缺陷(梯度消失/爆炸)
- 迴圈神經網路的實現(LSTM/GRU)
14(機器翻譯概述)
什麼是機器翻譯
- 研究目標:研製能把一種自然語言(源語言)的文字翻譯為另外一種自然語言(目標語言)的文字的計算機軟體系統。
- 製造一種機器,讓使用不同語言的人無障礙地自由交流,一直是人類的一個夢想。
機器翻譯研究的發展歷程
- 70年代,機器翻譯研究開始復甦
- 80年代,機器翻譯研究呈繁榮局面
- 90年代及以後,統計翻譯方法重回視野
- 基於詞的統計翻譯模型
- 基於短語的統計翻譯模型
- 基於結構的統計翻譯模型
- 深度學習和機器翻譯(2014-)
- 翻譯需求的種類
- 傳播型翻譯需求 (information dissemination)
- 希望將自己的資訊傳播出去
- 跨國企業的產品說明、技術資料
- 吸收型翻譯需求 (information assimilation)
- 希望瞭解以自己所不通曉的語言為載體的資訊
- 科學工作者之於科技文獻
- 傳播型翻譯需求 (information dissemination)
機器翻譯的基本方法
- 基於規則的機器翻譯方法(不太成功)(理性主義)
- 直接翻譯法(無需分析原文字,逐詞翻譯(過度簡化翻譯過程))
- 轉換法(探究表層語義的深層表達)
- 中間語言法(中間語言定義困難,可以有效減少翻譯模組)
- 基於知識庫(不僅進行深層語言學分析,還需要進行世界知識的顯式處理)
- 基於語料庫的機器翻譯方法(經驗主義)
- 試圖避開知識庫建設的困難
- 試圖迴避對源語言進行深層語言分析
- 翻譯知識主要來自雙語平行語料庫
- 基於例項(翻譯通過模仿例項庫中已有的譯文基於類比的策略進行翻譯)
- 基於統計(機翻譯通過建立、訓練統計翻譯模型、並進而基於統計模型進行翻譯)
- 混合式機器翻譯方法
- 基於規則的機器翻譯方法(不太成功)(理性主義)