當前自己在自然語言處理領域探索,但總覺得有些迷茫,這個領域太大了,有些無從下手,目前看的論文也比較雜亂,有命名實體識別、基於知識庫的問答系統、閱讀理解等。同時自己的實驗室之前又沒有人做過這個方向,老師對該領域也不是很了解。所以想諮詢下,目前該領域有哪些方向適合自己一個人獨立進行研究?


我來猜一猜motivation叭。題主是不是正在轉行做NLP,資源有限,想找一個方向做一定的深度,最好能獨立水水paper或者打打比賽做點項目,進而找一份NLP相關的工作?( ̄? ̄)

如果是的話,就要兼顧研究難度和工業界缺口了。

從入門難度,對計算資源的需求以及工業界缺口的角度看,個人比較推薦的路線是

先入門分類,後熟悉匹配,進而根據個人興趣去做對話/問答/推薦。

原因很簡單,文本分類是NLP里最簡單的任務,無論理論還是工程實現難度。而從分類到匹配又是十分平滑的,而且分類和匹配任務都有小中大不同規模的公開數據集,也有小中大不同複雜程度的代表模型,預處理相對容易很多,理論也不難,開源資料、博客之類的又很多,工業界還需求超大(對話、問答、檢索、推薦、反作弊等場景都有一堆分類和匹配需求)。自己花點時間多看多寫,基礎不是太差的話半年到一年就可以獨立煉丹,刷刷榜單了。

有了分類和匹配的基礎,做對話、問答和推薦等方向非常容易。如果數據預處理做的比較熟,對數據挖掘興趣更高一些,可以重點了解下推薦、反作弊/風控等場景下的NLP問題;如果對檢索系統或問答對話更感興趣,可以重點了解下檢索式問答(檢索+排序的框架就好,不用著急碰機器閱讀理解問題)、檢索式閑聊機器人、FAQ系統怎麼做;精力旺盛的還可以簡單了解一下任務型對話系統和機器閱讀理解,不過這兩個問題不建議一個人瞎搞。

然後說下分類和匹配可以打卡的幾個點

文本分類來說,熟悉一下bow、ngram、tfidf這類基本概念,了解下NLP里常用的特徵,配合NB、SVM就能輕鬆體驗特徵工程解決文本分類的基本套路;熟悉深度學習框架後,textcnn、fasttext、adasent、dpcnn甚至bert都可以拿來跑下,研究下代碼;此外,文本分類數據集大多結構簡單,還可以順便學點基本的正則語法做做簡單的文本預處理(可能都用不到正則)。

入門分類後,做匹配任務就是多了一個輸入的文本分類,主要就是額外理解一下花式attention,以及區分下pointwise,pairwise甚至listwise的訓練方式,提高一下寫複雜網路和調參的能力。尤其可以跑實驗感受一下query-query匹配與query-response匹配有什麼不同,思考一下為什麼,加深對NLP和深度學習理論的理解,從無腦煉丹走向有理有據。這時候該怎麼繼續往下走也不用我多說啦

匹配任務也可以搞定了之後,就要多多關注其他方向的東西啦,比如序列標註問題里的CRF是什麼,機器翻譯里提出的transformer的設計細節,語義表示相關的ELMo、BERT等為什麼work,生成相關的VAE、copy機制等在解決什麼問題,以及對抗樣本、多任務學習、遷移學習、FSL、NAS、災難性遺忘與持續學習等ML問題等。當然啦,有條件熟悉一下多機多卡訓練更好了,這都是在工業界做NLP必備的工程能力。

最後,加油嗷(^_?)?☆


對專業選題心有迷茫,一般都是獲取資料太少太淺。對此不太可能有人大手一揮如仙人指路般,你就走向人生巔峰。對NLP而言,建議你至少瀏覽過去三年以來的ACL、EMNLP、NAACL論文,做好總結筆記,到底是哪個題目你比較感興趣,自然會浮現出來。


獨立研究(無導師 無實驗室 純unspervised),當然首選 文本分類 or 情感分析 (判別式任務),相對其他nlp任務(尤其生成式),這個是相對好上手容易看到直觀效果的。而且業界公司也有實際需求,方便找實習,不用太多linguistic知識也用不到什麼高級machine learning理論。(經 @Cyunsiu To 評論提醒,分類任務benchmark都比較高所以想要髮漂亮論文還是比較難的)可以按照這幾個順序去實現一下幫助自己理解:

fastText(

Bag of Tricks for Efficient Text Classification?

arxiv.org

),

TextCNN(

Convolutional Neural Networks for Sentence Classification?

arxiv.org

),

TextRNN(

https://towardsdatascience.com/sentence-classification-using-bi-lstm-b74151ffa565?

towardsdatascience.com

),

RCNN(

Lai?

www.aaai.org

),

CharCNN(

https://papers.nips.cc/paper/5782-character-level-convolutional-networks-for-text-classification.pdf?

papers.nips.cc

),

Seq2seq With Attention(

Text Classification Research with Attention-based Recurrent Neural Networks?

univagora.ro圖標

),

Transformer(

Attention Is All You Need?

arxiv.org

)


其實都比較適合,不管是做自然語言理解任務,還是做自然語言生成任務,如果是剛入門,建議找經典的論文搭配源碼,例如TextCNN或者seq2seq,把代碼跑多幾遍,並且嘗試注釋幾遍,在這期間需要產出數篇技術博客,可以是關於演算法的,關於代碼復現的以及關於一些編程技巧的。

這一階段完成後,就開始梳理研究趨勢,也就是經典論文的後續。例如seq2seq的後續研究,需要注意後續研究是在經典論文的基礎上做出了那些改進,解決的是什麼問題。

這一步完成後,就可以看最新的研究及實現,例如ACL2019裡面自己看完覺得可以進一步拓展研究的,那就開始研究吧。

最後回到問題,建議做自然語言理解的某個小方向吧,例如情感識別、輿情分析,畢竟做生成任務麻煩很多~


其實……哪個都可以。我覺得


推薦閱讀:
相关文章