Basic Overview of Natural Language Processing
本篇文章粗略介紹了從古(?)至今(2020)NLP重要的發展史及技術,希望能讓大家對NLP有一些基礎的概念與了解🧐。
遠古時期 (?~19xx)
ruled based - 利用建立大量規則回答問題
傳統機器學習 (19xx~2013)
機率模型 – 標註任務
Given sequence Y(sentence), we want to find sequence X(tags)
- CRF (Conditional Random Field)
- HMM (Hidden Markov Model)
- MEMM (Maximum-Entropy Markov Model)
運用情境:
- 標註詞性
- 標註主要內容
n-gram 模型 (2001)
利用前n個字(詞),去觀察(統計)下一個字(詞)出現的機率。
運用情境:
- 下一個字(詞)預測
- 斷詞
大NN時代 (2013~)
總而言之,言而總之,我們想要把文字放進NN,要先想個辦法把文字用向量表示才行🤔。
one-hot encoding
最直接的方式就是一個字給他一個代碼~!
當你拿到的文本是百科全書🙃:
word2vec (號稱NLP界的哥爾羅傑,開啟了大NLP時代)
好用程度真的沒話說😏:
word2vec兩種不同的訓練方式:
重要突破點:
- 能將文字轉為任何長度的向量
運用情境:
- 需要將文字轉為向量時
- 你拿到的資料嚴重不足,導致DL訓練效果極差時
- 你的時間不夠用,需要速成且堪用的模型時
RNN, LSTM
相信大家經過交大課程的歷練,已經很熟悉了。
放幾張圖留個紀念🕶
重要突破點:
- 我想大家對他們的優點在課堂上都很熟悉了
使用情境:
- 任何NLP相關的問題也許都可以try try看
Attention is all you need
在Deep Learning的世界,了解Attention is all you need為Deep Learning的世界開啟了一片新大陸😎。
下圖為Attention計算的核心概念:
Transformer
有了Attention的概念之後,實際使用時,特別設計了transformer的架構,如下圖:
重要突破點:
- 提出了注意力機制,讓模型能忽略不重要的字詞
- 不僅運用在NLP,CV也有極多運用
重要應用:
把所有DL相關的paper重新刷一遍,發paper就是如此簡單愜意!
BERT (人人都能變巨人 - NLP界的巨人之力)
萬分感謝hugging face所公開的模型。
學會BERT讓你一步登天😀
BERT的出現,讓NLP界意識到了pre-training的重要性。
對於文字的任務,大多時候要能有好的模型,是需要很多先備知識的。而pre-training正是賦予模型基礎知識的技巧,讓往後的每個目標任務都無須從剛出生的嬰兒開始學起。
利用bertviz可以視覺化模型學習到的注意力機制結果。
重要突破點:
- 同一組參數,多種任務訓練
- 預訓練模型的概念,並將訓練好的模型公開給大家使用
使用情境:
- QA
- classifier
- 立場分析
- 閱讀測驗
把所有NLP相關的paper重新刷一遍,發paper就是如此簡單愜意!
GPT-2
BERT馬上就失戀了😕
當然,效果更好的代價就是…參數更多
GPT-2訓練時的主要目標為預測下一個字。並且在做Attention時,只會往前看。
下圖能看出BERT和GPT-2的主要差異
不過GPT-2到近期才開放部分訓練好的模型供大家使用,如果你覺得空虛寂寞覺得冷,不妨也可以到Talk to transformer跟模型聊聊天。
重要突破點:
- 不同於BERT,採用了transformer的Decoder
- 使用了更大的模型,更多的參數
,成功讓大家了解到自己的設備資源竟是如此不足
使用情境:
- QA
- classifier
- 立場分析
- 閱讀測驗
- 當你想要打敗BERT的時候(?)
把所有NLP相關的paper重新刷一遍,發paper就是如此簡單愜意!