日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

梳理十年Kaggle竞赛,看自然语言处理的变迁史

發(fā)布時間:2025/5/22 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 梳理十年Kaggle竞赛,看自然语言处理的变迁史 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

自2010年創(chuàng)辦以來,Kaggle作為著名的數(shù)據(jù)科學競賽平臺,一直都是機器學習領(lǐng)域發(fā)展趨勢的風向標,許多重大突破都在該平臺發(fā)生,數(shù)以千計的從業(yè)人員參與其中,每天在Kaggle論壇上都有著無數(shù)的討論。

各種類型的挑戰(zhàn)賽(計算機視覺、語音、表格處理等等)都會在這個在線平臺發(fā)布,而自然語言處理(NLP)問題最近亦備受關(guān)注。誠然,過去幾個月里,我們已經(jīng)見證這一領(lǐng)域有好幾項振奮人心的創(chuàng)新,而目前流行的的則是transformers和預(yù)訓練語言模型。

Medium上一位從事NLP的博主就通過Kaggle競賽梳理了一遍自然語言處理的發(fā)展歷史,看看NLP這些年都是怎樣一路走來的。

左邊:動物沒有過馬路,因為它太累。右邊:動物沒有過馬路,因為它太寬。基于語境,句子的最后一詞“它”在這可指“動物”或是“馬路”,摘自谷歌transformers詞條。

2016以前:詞袋(bag of words)模型和TF-IDF算法盛行

在2016年之前,解決(或者說贏得)Kaggle自然語言處理挑戰(zhàn)的標準方法是采用詞袋模型(即計算文章中各個單詞出現(xiàn)的次數(shù))來建立特征輸入機器學習分類器,典型的有樸素貝葉斯算法。稍微完善些的則有TF-IDF算法。

這種方法被應(yīng)用在如StumbleUpon Evergreen分類挑戰(zhàn)。

StumbleUpon是一個推薦引擎,根據(jù)用戶的興趣向其推薦相關(guān)的網(wǎng)頁。網(wǎng)頁分為兩種,一種是暫時的,在短期內(nèi)有價值的網(wǎng)頁,另一種是長期的,一直都有效果的網(wǎng)頁,該挑戰(zhàn)的目的就是對這兩種頁面進行二元分類。

數(shù)據(jù)集鏈接:

https://www.kaggle.com/c/stumbleupon

這里順便提一句,在2013年解決該難題的冠軍是Fran ois Chollet——就是兩年后編寫出Keras的那個人。

Fran ois Chollet

2016-2019:詞嵌入模型+Keras以及TensorFlow 的興起

在2015年,開始出現(xiàn)稠密詞表征(dense word representations)庫,如Gensim庫(包括Word2Vec和GloVe)。其他預(yù)訓練嵌入模型也陸續(xù)出現(xiàn),像Facebook的FastTest或是Paragram。

同時,擁有大量用戶、簡單可用的神經(jīng)網(wǎng)絡(luò)框架的首發(fā)版本也開始流行,即上文提到的Keras和TensorFlow。它們不再僅使詞袋模型,開始使用詞序模型捕獲句意。

然而要運行深度神經(jīng)網(wǎng)絡(luò),還有最后一項難題亟待解決:需要高處理性能。成本越來越低的GPU解決了這個難題。Kaggle平臺在2019年3月被谷歌收購后,平臺(通過合作式的Notebooks內(nèi)核)可以向用戶免費提供GPU使用。

從那時起,詞嵌入和神經(jīng)網(wǎng)絡(luò)(RNN,LSTM,GRU等等,以及基于此的改進,如attention)這些可行方案就成了解決Kaggle中自然語言處理難題的標準方法

這時候就不得不說一句:永別了,TF_IDF!

使用RNN編碼單詞序列

2018-2019:PyTorch殺出重圍

近幾個月,一個新的神經(jīng)網(wǎng)絡(luò)框架PyTorch在數(shù)據(jù)科學界越來越受關(guān)注。

在此不討論TensorFlow和PyTorch的優(yōu)劣,但可以肯定的是,在Kaggle上越來越多的人開始使用PyTorch了。平臺上經(jīng)常有PyTorch的在線筆記和教程發(fā)布。

2019年:transformers和預(yù)訓練語言模型誕生

如上所述,直至目前為止,詞嵌入模型(在大量的無標注數(shù)據(jù)上進行預(yù)訓練)仍是解決自然語言處理難題的標準方法,利用此模型初始化神經(jīng)網(wǎng)絡(luò)的第一層,然后在特定任務(wù)(可能是文本分類,問答或自然語言推斷等等)的數(shù)據(jù)上訓練其他層。

但如果仔細想想,這種方式其實并非最優(yōu)。事實上,每當需解決一項新問題時,你基本需要從零開始學起。通過詞嵌入進行初始化的模型需要從零開始學習如何從單詞序列中提取含義——哪怕那是語言理解的最核心部分。

transformers出現(xiàn)后,這是2018年發(fā)生的關(guān)鍵范式轉(zhuǎn)變:從僅初始化模型的第一層到使用階梯式表達對整個模型進行預(yù)訓練。這也產(chǎn)生了新的訓練模式:將信息從預(yù)訓練語言模型轉(zhuǎn)移到下游任務(wù)(也稱為遷移學習)。

實際上,使用預(yù)訓練語言模型的最好方式是利用Hugging Face(由法國企業(yè)家創(chuàng)立,目前總部在美國,和我們一樣畢業(yè)于Station F微軟AI工廠的校友)開發(fā)的transformers庫。目前它與PyTorch和TensorFlow兼容。

如果你想用它更上層的封裝來完成一些諸如文本分類的簡單任務(wù),可以看看 simple-transformer 庫。

總結(jié)

以上是生活随笔為你收集整理的梳理十年Kaggle竞赛,看自然语言处理的变迁史的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。