大家午安~終於來到鐵人賽最後一天了。今天要講點輕鬆的東西,跟各位分享一下我自己的NLP專案實作過程。也就是說這有很大的機率跟業界在做的事情不一樣,因為身為研究生的我大概算是半個學術界的人,再加上主修並不是資科或資管這些跟程式為伍的科系,算是提供一種做專案時比較特別的切入角度吧。
我目前做過的專案實作比較完整的有兩個,一個是從說服策略的角度觀察成功的環保相關群眾募資計畫有什麼樣的語言特徵並透過機器學習的方式驗證。另外一個是從語言學的不同層面找出COVID相關假消息的語言特徵並透過機器學習的方式驗證。兩者的共同點在於我們都是找出文本裡面的語言學特徵(廢話,不然我一個學語言學的還要幹嗎?)之後把他們交給模型,讓模型學完再分類文本。下面簡單把我們進行專案的方式分成四個步驟說明:
很多人可能都會為了要做什麼主題的東西感到煩惱,但這大概是身為一個語言學專業的學生的優勢吧,因為生活當中處處都是語言,尤其在社群媒體這種應用人工智慧處理資料的平台上面,基本上到處都是機會。舉例來說,環保募資計劃使用的語言策略其實就只是我發現那段時間FB上面常常出現吸管或是環保杯廣告的發想而已。除了找自己有興趣的現象之外,其實也可以想想看是不是有些NLP相關的服務對你來說不太夠用或是你不滿意他的表現。像我現在準備做的題目就是因為覺得webtoon防暴雷系統做得不夠完善而開始的計畫。總而言之,培養自己對周遭事物的敏感度和觀察是很重要的事情。
找到自己感興趣的東西之後,我們要做的事情就是尋找前人有沒有做過的相關研究。這個階段主要的目的就是確認自己不是在自嗨,如果有人做過相關的東西表示他確實可以構成一個主題。這個時候我們就要注意其他人都是以什麼樣的研究目標在進行研究,他們的研究方式跟你計畫的是否不同,以及他們觀察到的特徵跟你有什麼不一樣。因為如果完全一樣的話,哪需要你來做呢?人家都已經做完了。如果發現沒有人做過類似的題目也並不表示這個題目沒有意義,可能他比較新或是之前沒有人注意到過,表示你極有可能要成為拓荒者了。然而,在這種時候需要特別注意的是,我們要從其他地方援引這個題目的重要性出來,不然人家可能會覺得你是來亂的。另外一個困難點是,因為沒有什麼人做過相關研究,你能參考的資料也就不多,採坑的機會也可能比較大一點。凡事都有個開頭嘛,以後要做相關題目的人會愛你的~
我自己在這個階段的經驗是,你通常會訝異於有多少人做過相關的研究了,同時你也可以從中發現自己沒有注意到的東西。當然這當中一定也會有自己的原創,像是我們在做假新聞那個研究的時候就發現其實不少人都跟我們有相似的觀察,但這樣的觀察可能沒有被附諸實現,或是零散地分布在不同研究裡面。所以我們最後把這些東西都統整在一起並加上我們自己新發現的東西做了實驗,算是努力為這方面的研究做了一點貢獻(?
這個部分應該可以說是最麻煩也是最簡單的步驟吧,因為資料取得容不容易全看你想做的題目而定。做環保募資的那個專案的時候,我們直接在Kiskstarter上面把資料爬下來,基本上只要會爬蟲就不是什麼難事。但做假新聞相關的研究就沒那麼簡單了,因為你要先找到相關新聞再從裡面分出真的跟假的才算完成。這其實也是有偷吃步的啦,可以到處找找看有沒有其他人做完之後釋出的資料。不過要冒的風險就是我們沒辦法確定他的標記過程是不是足夠精確以及他的所有資料是不是都符合我們的要求,所以最好還是自己爬資料會比較好一點。
這個其實在之前的文章裡面就分享得差不多了。這邊想要特別提出來的是,業界跟學界在看待模型訓練結果的標準還滿不一樣的。因為業界是在賣產品甚至賣服務,模型的表現一定要達到很高的標準才行,所以像Google這種大公司準確度或fscore動輒就是0.95起跳。但是學界不太一樣,以我們來說,研究的主要目的還是在驗證語言學特徵的實現,所以對這些數字的要求沒有那麼高。或者應該說,我們追求的是比baseline模型或是前面的人更好的成果,而不是絕對的數值。舉例來說,假新聞的專案我們以單純貝式分類器做為baseline model得到的fscore是0.65,而做為測試模型的Random Forest得到0.84的成果對我們來說就是不錯的表現了,同時也驗證了這些言特徵對於假新聞辨識具有足夠的重要性跟貢獻。總而言之,比較算法來說,我們會更在意語言學特徵的使用。但這不代表我們完全不懂模型地計算在幹嘛或是覺得條參數這些事情不重要,只是著重的點不一樣而已。
最後要說一下過完這30天我內心的感想:「終於可以結束這個喪心病狂的比賽啦!」。一開始參賽的時候真的想說反正暑假時間很多,可以先囤好文章再來慢慢po,結果事實證明現實就是這麼骨感。暑假時間確實很多,但是寫文章地對人的消耗真的不是一般的大,想文章要花的時間也比想像還要多很多。即便一天的時間足後寫兩到三篇文章,我的精神上完全不允許這樣的事情發生,每寫完一篇我就覺得我的靈魂需要滋潤,然後轉頭投向火影任者的懷抱(真的是臭宅)。如果有人計畫下次參賽,請記得幫自己多留一點準備時間XDD
雖然每天抱怨這個比賽根本不是人在比的,對我來說確實還是很有收穫的。每天寫文章的時候我都在重新檢視自己過去學的東西,也常常發現自己對某些地方的概念其實不夠理解,然後幾經一番波折才寫出一篇文章。即便對生理跟心理都是很大的折磨,收穫的東西還是很多的。所以我要感謝當初答應跟我一起參賽的兩位,因為如果不是有他們,我大概在第15天就放棄掙扎了XDD 同儕壓力真的是好東西。感謝鐵人賽讓我發現自己學得不夠好的地方也讓我補齊了這些缺失,如果我的文章有對任何一個人產生幫助就再好不過了。當然如果有人因此對語言學產生興趣的話也請聯絡我們好嗎,我寫這些文章的另外一個目的可是要把語言學發揚光大,所以讓我來幫助你燃燒對語言學的熱情吧(又在胡言亂語)。最後謝謝感謝觀看我的語無倫次到最後的人。如果我明年又失心瘋參賽的話就明年見吧~掰掰~