這篇是 DL x NLP 的最後一篇,下一個子系列是 DL x CV,也是做 machine learning 的人最想擠進的一個熱門領域。
我們簡單總結這個子系列學的東西、沒有篇幅能介紹的 NLP tasks、還有一些 NLP 的發展方向。
從 2013 年 Word2Vec 的興起,以及和 RNN 做結合的架構,讓 NLP 領域搭上了 deep learning 的熱潮開始蓬勃發展。
人們的生活也有了改變。最知名的 NLP project 之一莫過於 Google 翻譯,整個 model 在 2016 年翻新成 Seq2Seq 後,顯而易見的能力提升讓大家對 Google 翻譯從參考參考到日常生活中的仰賴。
而之後 transformer 的出現更打破了 NLP 搭配 RNN 的既定架構,讓 NLP model 的訓練也能快速有效。BERT 更是簡單建立於 transformer 之上即能有多項 state-of-the-art result,再次把 NLP 帶入新紀元。
NLP 還有很多有趣的應用可以探索,也還留有很多還沒有完全解決的問題。我們來簡單看一下 NLP 還有哪些發展。
NLP 相關應用太多了,我自己簡單分成幾個領域:
是開頭
和 不是開頭
有興趣開始的可以挑幾個來玩玩,挑幾篇新一點的 paper 讀讀看。
最後來看看 NLP 有哪些難題。
NLP 需要向現有的 corpus 學習,但他們都存在 bias。如何確保 AI 不會學到這些 bias,或不會被這些 bias 的存在影響學習,是個很重要的課題。
我們來看一些例子:
—— Google search 的結果 "female doctor" 是 "male doctor" 的兩倍。大家預設 "doctor" 的性別是男生嗎?[1]
—— 文字中出現 "murdered"(殺人) 的頻率遠高於 "blinked"(眨眼),並不代表在現實世界中總殺人次數比眨眼次數多。[1]
—— 世界上講不同英文的地方很多,我們 train 的 English model 能代表所有的英文嗎?[1]
因為我們訓練的 model 很多都是基於 real-world data,這些 model 很可能也會學習到人類社會中的 bias。而我們的目標是不要讓這些 model 放大這些 bias。
[1] 中還提到了許多 bias 的例子,非常有趣,推薦大家看看。
Data 一直是訓練一個好 model 很重要甚至最重要的元素。但有些時候不是所有 task 都有足夠的 data 可以使用。怎麼樣用少量 data 也能訓練出好的 model 也是一個難題。
其實我們也看過一些解法:
有興趣研究的可以參考 [2]。
Neural network 為人詬病的一直是 low interpretability,也就是你不太能解釋他學到了什麼,或是哪個因素讓 model 這麼好或這麼差。這會造成改進架構上的困難,也會降低 model 的 reliability。
系列中我們也一直有提到一些讓 model 更容易解釋的方法:
而為了得到更多解釋,還可以選擇:
這些分析方法都對 train 出一個更好的 model 很有幫助。
[3] 可以參考更多!