學習筆記
基於深度學習的自然語言處理(中文版)-- 車萬翔 等譯
基本概念
- 在語言處理中,向量 x 來源於文本數據,能夠反映文本數據所具有的多種語言學特征
- 從文本數據到具體向量的映射稱為 “特征提取” 和 “特征表示”,通過 “特征方程” 所完成
- 對語言數據,其以一些列離散的符號形式存在,這個序列需要使用微妙的方法轉換成為一個數值向量
NLP 分類問題中的拓撲結構
這些分類樣例能夠被擴展為 結構化問題,我們感興趣的是執行相關的分類決策,以使得一個決策能夠影響另一個決策
擴展 -- 關於 詞(word) 的定義探討
一個定義是:被空白符和標點符號分割的文本(基於英文,但沒有考慮縮寫(I.B.M)和稱謂(Mr.)這些不需要分割的例子)
另一個定義是(從文本的寫作方式上):將詞看作 “語義的最小單元”。
以此,可看出通過空白符和標點符號分割的文本是有問題的,類似於 “don't”,事實上是 “do not” 兩個詞合並為一個符號,以及 “New York” 是一個詞還是兩個詞? “ice cream"、”ice-cream“ 和 ”icecream“ 是一樣的嗎?
因此,引出 詞(word)和 符號串(token)的概念區別:
- 分詞器的輸出稱為 token
- 帶有語義的單元稱為 word
- 一個符號串可能會有多個詞組成,多個符號串也可能是一個詞
- 一些不同的符號串可能是同一個潛在的詞
NLP 問題中的特征
特征通常表現為 標量(indicator)和 可數(count)的形式
標量特征經常取 0 和 1 值,其取決於某種條件是否出現(如 ”dog" 這個詞至少出現1次於文本中,特征取 1,否則取 0)
可數特征的取值取決於給定一個事件出現的頻率(如 “dog” 在文本中出現的次數)
直接可觀測特征
-
單獨詞特征:獨立於上下文,主要信息來源於組成詞的字符和它們的次序,以及從中導出的屬性(單詞的長度、單詞的字形(大小寫)、詞的前綴和后綴)
-
詞元和詞干
詞元(字典條目),將詞語的不同形式(如 booking,booked,books)映射到它們通用詞元 book。這種映射可由詞元集或形態分析器完成,但對於不出現於詞元集中的詞或是拼寫錯誤的詞並不能很好地進行處理
詞干提取,更一般化的過程,能夠在任何字符串序列上起作用,,它以特定語言的啟發式規則將詞序映射為更短的序列,以至於將不同的影響映射為相同的序列,並且詞干提取的結果不需要是一個有效的詞(如 “picture”、“pictured”、“pictures” 都會被詞干化為 “pictur”)
-
詞典資源
它包含典型的詞信息,並將它們和其他詞語連接起來或者提供額外的信息
常用的一些英文詞典資源(它們各自的側重點有所不同):WordNet、FrameNet、VerbNet、Paraphrase(PPDB)等
有效的使用符號信息是任務相關的,經常需要繁瑣的工程和技巧去處理,目前它們不經常應用於神經網絡模型中
-
分布信息
哪些詞的行為和當前詞的行為是類似的
-
-
文本特征:字符和詞在文本中的數量和次序
-
詞袋(bag-of-word,BOW)
觀察詞在文檔中出現的柱狀圖,即考慮每個詞作為特征的數量,並將詞抽象為基本的元素(element)
-
權重
結合基於外部信息的統計結果,集中考慮那些在給定的文本中經常出現的詞,並且它們在外部文本中出現的次數相對較少(這可將那些在文本中經常出現的詞(如 a 和 for),與和文本主題相關的詞區分開)
經常使用 TF-IDF 算法計算權重
-
-
上下文詞特征:考慮詞在句子和文本中時,一個能夠直接觀測到的詞的特征就是其在句子中的位置,圍繞它的詞和字符也可作為特征,與目標詞越近,該詞具有的信息量相對於遠處的詞越豐富(當然也存在着詞間的長距離約束)
-
窗口
圍繞詞的窗口聚焦於詞的直接上下文(即目標詞每側的 k 個詞,k可設為 2、5、10),之后使用特征來代表出現在窗口內的詞
如 考慮句子 (PHP is the best programming language in the world.)k=2,目標詞為 programming
那么一個特征集合為 {word=the,word=best,word=language,word=in}
固定大小的窗口放松了 BOW 假設,它不考慮詞的次序,而是考慮詞出現的窗口在文本中的相對位置,從而產生了位置相關特征。如詞 X 出現在目標詞左側的兩個詞語內,那么在上面的例子中,窗口位置方法將抽取特征集合 {word-2=the,word-1=best,word+1=language,word+2=in}
-
位置
這里指的是 絕對位置。如 目標詞是句子中的第5個詞的特征,或者一個二進制版本,能夠表示粗粒度的類別信息:是否出現在前10個詞中或是否在第10個詞和第20個詞之間等
-
-
詞關系特征
當考慮上下文中的兩個詞時,除了每個詞的位置和圍繞它們的詞外,還能夠觀察詞之間的距離和它們之間的代表詞
可推斷的語言學特征
句子除了是詞語的線性排序外還是有結構的,這種結構遵循復雜的不易於直接觀察到的規律,可被歸結為語法
主要可分為:詞類(詞性標簽)、形態學、語法以及部分語義信息
常用的一些語言標注形式:成分樹(短語結構樹)、句法依存樹
從句子級別更近一步的話,考慮篇章之間的關系,而篇章關系可用於揭示句間的關系,如 解釋(Elaborations)、相對(Contradiction)、因果(CauseEffect)等。這些關系經常被句間的連接詞所揭示,如 “並且(moreover)”、“然而(however)”以及 “和(and)”,同時也會被不直接的線索所揭示。
在深度學習發展的今天,語言學的屬性特征是否還有必要?
在充足的數據和引導方向正確的情況下,很多語言學的概念是可以被網絡學到的,但我們往往不能夠得到足夠的訓練數據,此時,為網絡提供更加明確的、清晰的概念將會非常有用,同時也可以以它們作為補充的監督去指導網絡應用於多任務學習中
核心特征與組合特征
僅考慮神經網絡(非線性模型),模型設計者能夠僅指定核心特征集合,然后依賴網絡訓練過程去選擇重要的組合。但在很多實際案例中,結合有效的人工構造特征的線性分類器性能是很好的
n 元組特征
即 n-gram 模型,常用的是 n = 2、3
在一般情況下,MLP 這樣的神經網絡結構不能依靠自身從文本中推斷除 n 元組特征,如從文本中得到 bag-of-words 特征向量作為輸入,學習到如 詞語 X 出現在文本中和詞語 Y 出現在文本中 這種組合,而不是 二元組 XY 出現在文本中,因此,n 元組特征對非線性分類器是有用的
當 n 元組應用於帶有位置信息的固定大小的窗口時,多層感知機能夠推斷出 n 元組特征,如 CNN,被設計用來基於一個改變長度的詞序列尋找針對特定任務的更加有信息量的 n 元組特征
分布特征
詞是離散的和不相關的符號
對詞類型的泛化,可以將它們映射到粗粒度的類別,像是詞性或語義角色(“the, a, an, some”都是限定詞);將易改變的詞語映射到詞元(“book”、“booking”、“booked”都含有詞元 “book”);但這些策略是非常有限的,很難再進行細粒度的划分(如 “pizza” 與 “burger” 的相似度要高於其與 “icecream” 的相似度)
語言的分布假設指的是 詞 的含義能夠從它的上下文推斷出來(如 burger 出現的上下文和 pizza 出現的上下文是相似的,而其和 icecream 出現的上下文的相似度很小,和 chair 出現的上下文完全不相同),通過詞出現的上下文去學習詞的歸一化,這些方法可以被歸結為基於聚類的方法,其將相似的詞歸類到一個類別中,然后以其類別成員屬性代表每個詞
另一種相似的方法是 詞嵌入,它將每個詞表示為一個向量,這樣相似的詞(擁有相似分布的詞)會有相似的向量