AI 科技與數據應用隨著電腦技術的升級發展迅速,近幾年穩定佔據企業話題排行前幾名。其中自然語言處理 ( NLP, Natural Language Processing) 領域的發展速度,更是所有數據應用中的佼佼者。本文將以簡易的方式介紹 NLP 領域的技術原理與常見模型。
一、程式是如何理解文字意思的?
人類理解語言的方式是將語言拆解成一個個字詞,並依照過去的經驗來判斷字詞組合所要表達的意思。然而,在電腦的世界裡並沒有文字,有的僅是一連串代表各式含意的文字。也因此,電腦必須得將接收到的文字轉換成數字。
NLP 的處理過程又可進一步分為自然語言理解 (Natural Language Understanding, NLU) 與自然語言生成 (Natural Language Understanding, NLG) 兩大部分。
二、自然語言理解 (NLU)
1. 詞庫字典法
詞庫法指得是為了讓程式理解某種特定文字內容,事先蒐集並設計相關詞庫,再透過分析文句中相關詞句出現的次數來進一步理解該段文句。
舉例來說,如果想讓程式語言學會理解新聞的正負面情緒,可以優先蒐集大量正面字詞與負面字詞,作為字典。如此以來,便可以透過統計一篇新聞內正面或負面字詞出現的比例,達到讓機器理解新聞正負面情緒的目的。
若是想對新聞種類 (如體育、政治、社會等) 進行分類,同樣只需準備所有分類的相關詞彙字典,再統計頻率便可。
2. TF-IDF
TF-IDF 是一種能從文章中自動萃取關鍵字的統計技術,讓程式能透過關鍵字的頻率分配來理解文章涵義。計算原理可拆分為 TF 與 IDF 進行解說:
TF (Term Frequency) :
TF 的計算原理很簡單,就是文章中每個字詞出現的次數。舉例來說,假設在一篇 100 字新聞文章裡,航空這個詞出現了五次,飛機四次,該篇文章就會被標註成 {航空 : 0.05, 飛機 : 0.04, …..} 的形式。
TF 算法背後隱含的邏輯是當一個字詞出現越多次,就越有可能是這篇文章的關鍵字。然而,像是你、我、是、不是 等常見字詞本身並沒有太多的資訊意義,容易被誤認為是關鍵字,因此整套算法為此設計另一項機制 : IDF。
IDF (Inverse Document Frequency) :
IDF 的計算原理同樣不難,概念為統計一個字詞在**所有文章出現的頻率。**若一個字詞容易頻繁出現在所有文章,就代表它不太容易成為單篇文章的關鍵字。假設新聞篇數總共為一萬篇,天氣這個詞出現在其中的六千篇文章內,則 IDF 的計算為 log (10000/6000) ,字詞在所有文章內出現越頻繁,總體分數就越低。
TF-IDF 雖然是種非常古早的文字處理技術,但在現今仍被廣泛運用在各項需要快速運算的 NLP 任務中,或是進而被投入至 AI 學習模型裡,如搜尋引擎、聊天機器人、文章關鍵字摘要等。
3. TextRank
TextRank 與 TF-IDF 同樣是從文章中萃取文本的技術,只是萃取的單位從字詞變為了句。TextRank 的算法參考了 Google 搜尋引擎的運作機制,在衡量語意時,除了考量句子本身的重要度與字詞外,也一併衡量了文章中句義相近句的涵義與重要度。
相比於 TFIDF 的關鍵字摘要, TextRank 更加注重於句與句的關聯性,因此經常用於社群推播或 新聞摘要。
三、自然語言生成 (NLG)
1. 詞彙填空
在遷移學習出現之前,自然語言生成領域的發展一直有著技術上難以突破的瓶頸。過往最常見的作法便是設計固定句型,讓程式依據數據或邏輯進行填空,例如蘇格蘭花粉警告系統。
2. AI 填空
除了依照既定的邏輯進行填空外, 其實也可以預先列出每個空格的可能選項,再由 AI 演算法透過資料判斷每一格應該填入哪些項目。
四、結合理解與生成為一體的 NLP 架構 - Transformer
Transformer 模型的誕生,讓自然語言處理領域有著飛躍性的改變,尤其在語言生成的項目上。GOOGLE 知名的BERT 演算法與幾年前火紅的 GPT 語言生成模型便是其中之一。
Transformer 為遷移式學習的一種,概念是將學會 A 任務的模型套用至 B 任務的資料上繼續學習的技術。過往的 NLP 執行步驟會將理解與生成拆分成兩階段。若想完成自然語言生成 (NLG),我們會先設計好前段的自然語言理解 (NLU) 模型,再將 NLU 所產生的結果投入至 NLG 的模型中。而遷移式學習則是將整段過程揉合在一起的框架。
以人類教育來打個比方,在教育制度誕生前,如果國家想要培養一位能在法庭上對答如流的辯護師,可能需要找一個不識字的孩童,從頭給予大量法條與判決結果訓練;而有了學校與義務教育後,公家單位或企業便能從學校中挑選一位受過學術與倫理培養的學生,再給予法律訓練,節省大量前置成本。
Transformer 的模型便是如此運作,Google 等大型機構先透過大量資料培養出一個能理解懂文字基礎的 AI 模型,其他企業便可再用該模型來進行自己所需的任務訓練。