小編注:前段時間,小屋介紹了吳恩達老師近期發(fā)起的以數(shù)據(jù)為中心的 AI 競賽。吳恩達老師認為:工業(yè)界已經(jīng)具備較為成熟的算法和代碼體系,現(xiàn)在更加缺少的是一套成熟的構(gòu)建工業(yè)化數(shù)據(jù)集的方法論。然而,正如圖靈獎得主 Judea Pearl 教授所質(zhì)疑的那樣:“在不知道什么是質(zhì)量更好的數(shù)據(jù)的基礎(chǔ)上提升數(shù)據(jù)質(zhì)量是不太現(xiàn)實的”。對于這個問題,本文作者由關(guān)系抽取任務(wù)說起,探討了一些可能的答案——我們究竟需要怎樣的數(shù)據(jù)?
前段時間,我的項目正在準備開源發(fā)布,補充項目在一些任務(wù)上的表現(xiàn),以作為開源之后可以宣傳的點。我們項目的一大特點是十分擅長應(yīng)對挖掘任務(wù),因而我們自然也就想蹭波熱度,在某關(guān)系抽取評測任務(wù)上試了一下效果。
在此之前,我們的項目在一些其他挖掘任務(wù)上的表現(xiàn)一直是可以的,但是在那個關(guān)系抽取數(shù)據(jù)上,我們就翻車了,無論是我們的 baseline 還是增強模型,都無法打出來差異化的分數(shù)。其實簡單來講,就是:單純使用標注方法,怎么樣都無法提升了。
數(shù)據(jù)之殤
實際上,對于幾乎所有的公開評測任務(wù),我都會本能地懷疑它的數(shù)據(jù)是什么樣子的,尤其在我看到了榜單之后。例如細粒度實體識別任務(wù) CLUENER。它的 baseline 評測在某些類別上,連 BiLSTM+CRF 的結(jié)果都已經(jīng)超過了人類(甚至可以說是遠超)。當我看到了這個榜單,自然就會本能地懷疑這個數(shù)據(jù)是有問題的。CLUENER 數(shù)據(jù)集暫且按下不表,我們繼續(xù)說關(guān)系抽取數(shù)據(jù)集。
對于讓我的項目遭遇了滑鐵盧的那個關(guān)系抽取數(shù)據(jù)集,它的主要的問題則是:無論我在模型上做什么樣的改變,效果的差異都是不穩(wěn)定的(更換了隨機種子之后,不同模型結(jié)構(gòu)的rank也會改變)。那我自然也要去看一看數(shù)據(jù)有什么問題了。
隨機抽取了 train 和 dev 評估之后,果然印證了我的思想。在 train 和 dev 上,在單條數(shù)據(jù)粒度上,分別存在 42% 和 37% 的數(shù)據(jù)錯誤,其錯誤包括關(guān)系錯誤、關(guān)系不全,以及句子中不存在的關(guān)系被標注成了答案。而我無論怎么更換模型結(jié)構(gòu),方法也都是簡簡單單的標注算法,就必然會存在標簽上的沖突。對于模型來講,尤其是“學(xué)習(xí)了一些知識”的預(yù)訓(xùn)練語言模型來講,自然就 confuse 了。
當然我也理解這種數(shù)據(jù)會出現(xiàn),因為關(guān)系抽取數(shù)據(jù)在構(gòu)造的時候,基本都是用已有的圖譜 SPO 數(shù)據(jù)去反查文本,通常 S 和 O 在某一個句子里面共現(xiàn)了,就認為該句中存在這種關(guān)系了。
注:SPO 指
這種數(shù)據(jù)構(gòu)造方法當然一定是有問題的。這個數(shù)據(jù)的質(zhì)量一看也自然是未經(jīng)review的。甚至說,在學(xué)界,大家在打榜的絕大多數(shù)公開數(shù)據(jù),可能都或多或少存在著不可忽視的噪音問題,例如最近在比的某領(lǐng)域比賽的某一個數(shù)據(jù)之中,就存在這種東西。這讓我不禁有了一個疑問:當數(shù)據(jù)有不可忽視的噪音問題的時候,榜單上的高分導(dǎo)向的就是更好的模型嗎?如果答案是否定的,那這些比賽的意義在哪里呢?只是在消耗多余的算力,擠占業(yè)務(wù)的用卡時間嗎?
我們需要什么樣的數(shù)據(jù)
關(guān)系抽取數(shù)據(jù)中存在這樣一個例子:
汪涵曾多次在天天向上中展示自己高超的廚藝。
這句話,數(shù)據(jù)中標出來的答案是S:天天向上,P:主持人,O:汪涵。乍一看好像沒有問題。但是我們仔細想一想:如果排除掉所有的背景知識,我們看這個句子會得到怎樣的理解?是否真能推斷出“主持人”這一關(guān)系?
排除背景知識,只看句子本身:汪涵貌似是一個人,天天向上似乎是一個節(jié)目——汪涵可能參加過天天向上。這個是我們通過中文的常識知識和句式知識能夠推斷出來的信息。
更進一步,即使我們給出一些特化信息,即“汪涵是著名主持人”,天天向上是綜藝節(jié)目”。在帶有這樣的先驗下,我們又能推斷出來什么信息呢?汪涵是一個主持人,但主持人參加綜藝節(jié)目未必就是主持綜藝節(jié)目。比如主持人馬東參加過脫口秀大會,但他只是嘉賓。所以,對于“汪涵”和“天天向上”這兩個個體,我們從這句話中還是只能推斷出參加關(guān)系。
那模型怎樣才能知道這個關(guān)系?看上去只有通過這個訓(xùn)練樣本,讓模型自己強行記住這個關(guān)系了。(當然還有一種可能是:模型從別的句子里面學(xué)到了“汪涵主持天天向上”的知識,然后在這個句子里面應(yīng)用到了。但如果是這樣,那這個訓(xùn)練樣本的用處是什么呢?)
或許有的朋友會反駁說:在訓(xùn)練關(guān)系抽取任務(wù)的時候,就是想讓模型去過擬合一些東西的。也就是說,直接將汪涵和天天向上兩個實體完全綁定起來,形成主持關(guān)系,這樣在榜單上就可以打高分了。然而,如果以這樣的方式去擬合S和O的名字,就要保證測試集和真實使用場景中一定會出現(xiàn)類似的情況。
如果過擬合這個句式里面出現(xiàn)的S和O一定是主持,一定會在其他場景中遇到問題。比如下面這個例子:
張杰也多次在快樂大本營上表現(xiàn)了對謝娜的愛意。
這句話和“汪涵曾多次在天天向上中展示自己高超的廚藝”的句式十分相像。那張杰和快樂大本營又是什么關(guān)系呢?實際上,數(shù)據(jù)中甚至可能會標注出張杰和謝娜的夫妻關(guān)系,以及謝娜是快樂大本營的主持人。但這兩條關(guān)系在這句話中都沒有直接的體現(xiàn)。
我們再看CLUENER中的一個例子:
去年我們憑借《現(xiàn)代戰(zhàn)爭1》大獲成功,其輝煌業(yè)績讓眾多業(yè)界老手大跌眼鏡。
其中,現(xiàn)代戰(zhàn)爭1被標注成為了游戲。
這個例子,我想我沒有必要做過多的解釋了。人沒打過這游戲的,確實標不出來。同理,沒了解過賽博朋克2077的人,可能也不太會知道波蘭蠢驢這個名字。
(實際上這個問題也有提到issue里面,但是權(quán)威大佬們也沒有理會我......)
另外,還有在研究中文分詞的時候經(jīng)常會舉的一個所謂疑難雜癥般的例子:
南京市長江大橋
實際上,這句話兩種切分方式都是合理的,都符合我們的常識認知,只不過可能有一個不是事實。那么其實我認為,對于模型來講,就不必過分糾結(jié)于這條數(shù)據(jù)會被切分成哪一個。
模型真正要去區(qū)分的,其實是下面兩個句子:
南京長江大橋位于南京市鼓樓區(qū)下關(guān)浦口區(qū)北之間
南京市長江大橋因嚴重違紀違法問題被立案檢查
舉了那么多例子,其實是想說:我們在衡量一個數(shù)據(jù)好壞時,似乎應(yīng)該遵循這樣一個邏輯——如果僅利用任務(wù)規(guī)則中允許我們用到的知識,人類能否有能力得到該樣本中給出的答案?如果能,則這條數(shù)據(jù)是一個好的數(shù)據(jù);如果不能,則一定會對模型形成誤導(dǎo)。所以在判定一條數(shù)據(jù)的時候,我們應(yīng)該去回顧這幾乎本能做出判斷背后的思考過程。如果我們不知道答案,通過思考也得不到這個答案,為什么要讓模型去得到這個答案呢?
我們在用數(shù)據(jù)和任務(wù)的形式去建模這個世界,并基于此去指導(dǎo)模型去學(xué)習(xí)。這一過程其實與我們教育人類幼崽的方式、或者我們自己去理解新知識的方式,是類似的。畢竟,我們現(xiàn)在還不具備憑空描述知識的能力,只能把人類一直在經(jīng)歷的學(xué)習(xí)過程加諸到模型身上。
在預(yù)訓(xùn)練的階段,我們貌似讓模型學(xué)到了部分語法知識,以及通過大量的事實知識讓模型部分學(xué)到了常識知識,但遠遠沒做到讓模型去記憶事實,實際上也記憶不過來,又怎么指望模型在任務(wù)中直接就能搞定那些僅僅包含事實的判定呢?
題外話,由于我是做解析的,所以實際上我是沒有那么支持領(lǐng)域預(yù)訓(xùn)練的。因為具體領(lǐng)域和所謂通用域的區(qū)別,更多是在于專名(命名實體、術(shù)語等)的區(qū)別,但表達是相對固定的。還是類比人類,哪怕一個人不是醫(yī)生,他看到自己的病歷的時候,除了可能看不懂疾病、臨床表現(xiàn)、藥物,醫(yī)療程序等等的專業(yè)術(shù)語,也能大概能看懂這個病歷的一些意思。無論領(lǐng)域?qū)I(yè)性多強,它也是“人話”。在做解析挖掘的時候,我們也應(yīng)讓模型著重去看懂人話的部分,而不是依賴那些專業(yè)的部分。是否不需要讓模型見過那些專業(yè)的東西,也能做到效果不錯?當然這個思路比單純?nèi)プ瞿P头爆嵉枚啵a(chǎn)出也慢得多。
任務(wù)回歸應(yīng)用
回歸到更本源的問題,關(guān)系抽取任務(wù)是為了做什么的?
其實最初關(guān)系抽取任務(wù)是為了輔助構(gòu)造結(jié)構(gòu)化知識。隨著知識圖譜越來越多,關(guān)系抽取模型已然可以基于已有數(shù)據(jù)知道一些知識了。此時,我們的需求可能就變成了“通過新的事實描述文本去挖掘補充新的知識”。更準確地說,我們希望:模型能夠基于已有知識圖譜中的信息,從新的文本中挖掘出新的關(guān)系,從而與時俱進地補充和更新現(xiàn)有知識圖譜。
當然這種“新的關(guān)系”不是類似于“爸爸的爸爸是爺爺”的關(guān)系。工業(yè)應(yīng)用已經(jīng)證明了,這種關(guān)系寫規(guī)則更香。需要補充的是真正的新關(guān)系,比如新婚,比如新參演電影,比如新主持節(jié)目等。
所以其實在定義任務(wù)的時候,應(yīng)該詢問這樣幾個問題:
這個任務(wù)想要導(dǎo)向什么樣的模型?
這個任務(wù)做好了之后能干什么?
這個任務(wù)能不能做?
而不是直接拍腦門想出來了這么個任務(wù),然后就隨手弄一波數(shù)據(jù)發(fā)出來了。這樣只會讓學(xué)界與工業(yè)界越來越剝離,只會讓研究越來越?jīng)]有用,只會讓頂會做的這種種事情越來越變成消耗多余的電力。
同時在數(shù)據(jù)上,也應(yīng)該有上面所提到的思考。給出的數(shù)據(jù),也應(yīng)該符合實際會應(yīng)用到的需求。現(xiàn)在看來,部分領(lǐng)域任務(wù)或許能做到這個。
否則,最終也只會導(dǎo)向越來越無意義的卷。
所幸,或許,業(yè)界有去重新思考數(shù)據(jù)的趨勢,例如Ng老師的新比賽。但,前路茫茫,不知這束光,是否長久。
責(zé)任編輯:lq6
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7241瀏覽量
91004 -
模型
+關(guān)注
關(guān)注
1文章
3486瀏覽量
49991
原文標題:在錯誤的數(shù)據(jù)上,刷到 SOTA 又有什么意義?
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
AI時代企業(yè)需要怎樣的數(shù)據(jù)存儲

DLP4710LC開發(fā)模塊數(shù)據(jù)的加載方式是怎樣的?
ADS1298R PACE_OUT1和PACE_OUT2這兩條引腿究竟是輸入還是輸出?有什么用?怎樣使用?
ADS803是如何工作的?怎樣將數(shù)據(jù)采集回來,并讀出來?
ADS1298采用怎樣的平均方法才能夠?qū)⒏卟蓸勇实?b class='flag-5'>數(shù)據(jù)平均成低采樣率后,相應(yīng)的把噪聲降下來?
ADS1282 Register mode(PIN=0)需要我們進行配置嗎?
請問使用ADCPro怎樣實現(xiàn)連續(xù)數(shù)據(jù)采集?
ADS9224R使用SPI常規(guī)模式,讀數(shù)據(jù)無返回,請問具體的讀數(shù)據(jù)的時序應(yīng)該是怎樣的?
AI時代,我們需要怎樣的數(shù)據(jù)中心?AI重新定義數(shù)據(jù)中心

pytorch如何訓(xùn)練自己的數(shù)據(jù)
AI智能眼鏡都需要什么芯片

大數(shù)據(jù)起步之前我們還需要注意些什么?
我們需要怎樣的大模型?

評論