人工智能時代:數(shù)據(jù)加工廠是如何運作的?
人工智能時代相較于過去的數(shù)據(jù)處理方式,除了在數(shù)據(jù)量級上的差別之外,最大的差別是對非結(jié)構(gòu)化數(shù)據(jù)的處理與運用。本文將介紹:如何通過數(shù)據(jù)標(biāo)注工具將非結(jié)構(gòu)化的數(shù)據(jù)處理為可用于建模的結(jié)構(gòu)化數(shù)據(jù)?
什么是數(shù)據(jù)標(biāo)注
著名雜志《經(jīng)濟(jì)學(xué)人》將數(shù)據(jù)類比為21世紀(jì)的石油,但石油是不能直接使用的,需要經(jīng)過復(fù)雜的煉制過程才能成為可以被利用的資源。
同樣,非結(jié)構(gòu)化的數(shù)據(jù)也是無法直接使用的,需要根據(jù)使用者的需要,將其中有用的部分標(biāo)記出來,轉(zhuǎn)變?yōu)橛嬎銠C(jī)可以理解的結(jié)構(gòu)化數(shù)據(jù),才可以被用于AI建模,這個過程就稱之為數(shù)據(jù)標(biāo)注。
結(jié)構(gòu)化數(shù)據(jù)就是常見的二維表結(jié)構(gòu),excel或sql數(shù)據(jù)庫都是以二維表的形式存在的。
而非結(jié)構(gòu)化的數(shù)據(jù)——例如一張圖片,本質(zhì)上是一堆265色的像素點按一定的順序進(jìn)行排列組合。如果要知道這張圖片上是否有一只鳥,就得人工用一個框把物體框出來,并做好標(biāo)記,告訴計算機(jī)在這個框里有一只鳥。這樣計算機(jī)就可以把框內(nèi)的像素點當(dāng)做鳥的特征進(jìn)行學(xué)習(xí),構(gòu)建出識別鳥的模型。
在2012年,谷歌首席科學(xué)家李飛飛教授帶領(lǐng)的團(tuán)隊在計機(jī)器視覺方面取得了重大突破,利用神經(jīng)網(wǎng)絡(luò)算法讓計算機(jī)具備了在圖片中識別出貓的能力。
這份成就一方面得益于計算機(jī)算力和AI算法的發(fā)展,但更為重要的基石是ImageNet圖像數(shù)據(jù)集提供的一千多萬張帶有拉框標(biāo)注的圖片,正是這些經(jīng)過了標(biāo)注的圖片,讓計算機(jī)在視覺方向有了新的發(fā)展。
ImageNet官網(wǎng)
機(jī)器學(xué)習(xí)領(lǐng)域有句話:數(shù)據(jù)和特征決定了機(jī)器學(xué)習(xí)的上限,而模型和算法只是逼近這個上限而已。
可見數(shù)據(jù)和特征在人工智能領(lǐng)域的重要性——對于同一個目標(biāo),將時間和精力花在改良算法上遠(yuǎn)不如花在構(gòu)建更加精確的數(shù)據(jù)集上更有效,一個具有高質(zhì)量標(biāo)注的數(shù)據(jù)集對于模型的提升效果遠(yuǎn)高于優(yōu)化算法帶來的效果。
這就是數(shù)據(jù)標(biāo)注對于人工智能的重要性。
ImageNet這類開源數(shù)據(jù)集雖然數(shù)量非常多,但是標(biāo)注的精度并不高,且無法滿足所有類型的建模要求。所以,AI團(tuán)隊需要根據(jù)自己的需要構(gòu)建自己的數(shù)據(jù)集。根據(jù)應(yīng)用方向的不同,大致可以分為:推薦算法,語音語義和計算機(jī)視覺三個方向。
從發(fā)展階段來看,推薦算法的發(fā)展應(yīng)該是最為成熟的,一方面是傳統(tǒng)的機(jī)器學(xué)習(xí)算法已經(jīng)非常成熟,另一方面是因為在這一領(lǐng)域有著大量的結(jié)構(gòu)化數(shù)據(jù)積累。
例如:淘寶在上傳商品時需要選擇商品的分類;網(wǎng)站上線時也需要設(shè)置SEO關(guān)鍵詞;在教育行業(yè)則有專業(yè)的老師給習(xí)題打上對應(yīng)知識點的標(biāo)簽。
而用戶的人口數(shù)據(jù)和行為偏好數(shù)據(jù)只需要進(jìn)行埋點就可以收集到了,將商品和用戶兩者的數(shù)據(jù)結(jié)合推薦算法即可構(gòu)建推薦系統(tǒng)。
在語音語義方向,有著例如科大訊飛,海量大數(shù)據(jù)等公司長達(dá)近20年的積累,在中文分詞,語音模型,語言模型等方面都已經(jīng)較為成熟,可以達(dá)到商用的階段。
目前,對于語音語義的數(shù)據(jù)標(biāo)注常見的有音頻識別、語義分析、文本分類等。
而計算機(jī)視覺方向,目前處于剛剛起步的階段,但發(fā)展極為迅速,人臉識別,圖像轉(zhuǎn)化方向上已經(jīng)有了大量的商用產(chǎn)品。這一方向?qū)τ诟哔|(zhì)量的標(biāo)注數(shù)據(jù)需求非常大,例如上文提到的圖片拉框以及圖片描點,語義分割,視頻跟蹤標(biāo)注等都是這一方向的數(shù)據(jù)需求。
數(shù)據(jù)標(biāo)注工作流程
數(shù)據(jù)標(biāo)注工作流程通常是這樣的:
- 先由產(chǎn)品經(jīng)理確定用戶需求,根據(jù)用戶需求準(zhǔn)備對應(yīng)的原始數(shù)據(jù)。
- 產(chǎn)品經(jīng)理與人工智能訓(xùn)練師一起細(xì)化對于數(shù)據(jù)標(biāo)注的需求。
- 人工智能訓(xùn)練師根據(jù)標(biāo)注需求創(chuàng)建標(biāo)注教程,將教程與原始數(shù)據(jù)集發(fā)放給數(shù)據(jù)標(biāo)注員。
- 標(biāo)注員根據(jù)教程完成對數(shù)據(jù)進(jìn)行標(biāo)注。
- 人工智能訓(xùn)練師及產(chǎn)品經(jīng)理對標(biāo)注后的數(shù)據(jù)進(jìn)行驗收,將不合格的數(shù)據(jù)打回重新進(jìn)行標(biāo)注。
- 將標(biāo)注好的數(shù)據(jù)交付人工智能工程師進(jìn)行算法建模。
這其中對于數(shù)據(jù)標(biāo)注人員來說,最重要的就是標(biāo)注教程。
什么樣的需要進(jìn)行標(biāo)注,標(biāo)注的精細(xì)度要達(dá)到多少,什么樣的情況不需要進(jìn)行標(biāo)注,很多對于標(biāo)注的細(xì)節(jié)都要在教程中對標(biāo)注員進(jìn)行說明。
如果未對標(biāo)注進(jìn)行嚴(yán)謹(jǐn)?shù)募?xì)節(jié)說明的話,可能會對最終的算法產(chǎn)生極大的影響。
例如:在一個圖片標(biāo)注任務(wù)中,標(biāo)注需求是要對圖片中的鳥進(jìn)行框選并進(jìn)行標(biāo)注——那么鳥在水中的倒影要不要框選,圖片中畫在油畫中的鳥要不要框選,鳥只有一部分在圖片中要不要框選等等細(xì)節(jié)問題,都需要在標(biāo)注教程中進(jìn)行詳細(xì)的說明。
數(shù)據(jù)標(biāo)注工具
對于非結(jié)構(gòu)化的數(shù)據(jù)標(biāo)注需要使用專門的標(biāo)注工具進(jìn)行,這里介紹兩款工具:
1. LabelImg
LabelImg是一款由python編寫的跨平臺標(biāo)注軟件,由個人開發(fā),是業(yè)內(nèi)有名的一款標(biāo)注工具,標(biāo)注之后可以導(dǎo)出pascal-voc格式的數(shù)據(jù)。
但這個工具門檻有點高,一來是英文版,二來需要使用命令行工具下載python以及對應(yīng)的pyqt4和lxml等第三方庫來使用。對于不會使用python命令行的來說,這個不是特別友好,就不再過多的介紹了。
2. 精靈標(biāo)注助手
與LabelImg類似的一款國產(chǎn)工具,但在用戶使用上比前者友好太多,直接在官網(wǎng)即可下載并免費使用。
支持目前市面上所有常見的標(biāo)注需求,并且除了pascal-voc和CoreNLP之外,還可以導(dǎo)出XML,JSON,MongoDB這些常見的數(shù)據(jù)格式,操作上也非常方便,基本不需要學(xué)習(xí)就可以直接上手使用。
如果是自己進(jìn)行數(shù)據(jù)標(biāo)注的話,首選這款工具。
當(dāng)然,也有一些大公司會自己開發(fā)標(biāo)注工具,但因為數(shù)據(jù)標(biāo)注并不需要太高的技術(shù)含量,且對于標(biāo)注的需求大多是項目性質(zhì)的,所以大多數(shù)公司會選擇將數(shù)據(jù)標(biāo)注的工作交給眾包團(tuán)隊來進(jìn)行。
如何做數(shù)據(jù)標(biāo)注
1. 圖像類
框選類:對圖片中指定的物體進(jìn)行拉框選擇,根據(jù)業(yè)務(wù)的不同,來框選不同的物品。
如果一張圖中有多個指定物品,則需要說明:什么樣的情況下可以一起框選?什么樣的情況下需要分別框選?以及,判斷框選的物品是否被遮擋或截斷?等等。
應(yīng)用場景:識別圖片中是否存在某種物品,以及識別是什么物品。
例如:自動駕駛中判斷交通標(biāo)示牌,拍照購物中識別物品,兒童認(rèn)知類產(chǎn)品等。
2. 描點類
常見的需求有:描繪人體的關(guān)節(jié)點、手部的關(guān)節(jié)點,以及嘴唇的關(guān)鍵點、臉部的關(guān)鍵點,我還見過有對貓和狗的臉部進(jìn)行打點的需求。
應(yīng)用場景:描點類的應(yīng)用場景很多——例如:人臉識別,以及美顏類的產(chǎn)品。還有最近在直播和短視頻應(yīng)用中比較流行的智能換臉,換發(fā)型等,以后應(yīng)該還可以應(yīng)用到電商購物領(lǐng)域。對于關(guān)節(jié)點的識別可以應(yīng)用在動作識別上,例如:安防領(lǐng)域,課堂教學(xué)領(lǐng)域等等。
3. 語義分割類
將一張圖片上不同的物品進(jìn)行描邊,然后標(biāo)注為指定的標(biāo)簽。常見的有將人體的頭發(fā),人臉,身體分割成不同部分,還有自動駕駛中對道路,建筑物,行人等進(jìn)行的標(biāo)注。
應(yīng)用場景:語義分割是圖像識別的一個重要領(lǐng)域,對于計算機(jī)理解圖像進(jìn)而作出決策有重要意義。
例如:自動駕駛場景中,需要判斷看到的物品是什么,進(jìn)而決定接下來的駕駛行為。
4. 語音語義類
音頻轉(zhuǎn)寫:目前訊飛,搜狗等做語音方向的公司只能提供通用的語音模型,對于一些特定領(lǐng)域的語音識別,或語音本身不是特別清晰,或少數(shù)民族語言例如藏語維語等語言的識別則需要進(jìn)行人工的語音轉(zhuǎn)寫。
應(yīng)用領(lǐng)域:語音轉(zhuǎn)文本,語音模型構(gòu)建,語言模型構(gòu)建。
5. 文本分類
主要是針對文本的內(nèi)容及性質(zhì)進(jìn)行分類,例如:判斷一段文本是積極還是消極,判斷一段文本屬于哪個領(lǐng)域知識等。
應(yīng)用領(lǐng)域:輿情監(jiān)控,新聞類別自動分類,垃圾郵件識別,商品評論情感識別等。
6. 實體標(biāo)注
對于一些專業(yè)領(lǐng)域的詞語或者同義詞,近義詞需要進(jìn)行實體的標(biāo)注,以幫助計算機(jī)理解不同的詞代表的含義是什么。同時,在標(biāo)注實體的時候,還可以標(biāo)注實體的屬性,實體與實體之間的關(guān)系等。
應(yīng)用領(lǐng)域:命名實體識別,知識圖譜構(gòu)建等。
眾包數(shù)據(jù)平臺
數(shù)據(jù)眾包是指:公司將數(shù)據(jù)標(biāo)注的任務(wù)發(fā)布到眾包平臺上,然后由個人或團(tuán)隊來承接任務(wù),并根據(jù)任務(wù)要求進(jìn)行標(biāo)注的一種工作形式。
相較于公司自己組建數(shù)據(jù)標(biāo)注團(tuán)隊,數(shù)據(jù)眾包的方式在成本和效率上都有著明顯的優(yōu)勢,目前中國從事數(shù)據(jù)眾包的標(biāo)注員近百萬人。
眾包帶來了成本降低的同時,也帶來了標(biāo)注質(zhì)量的問題。因為從業(yè)人員能力參差不齊,所以眾包進(jìn)行標(biāo)注之前,要先對標(biāo)注人員的能力進(jìn)行考核,只有考核通過的人員才能進(jìn)行后續(xù)的正式標(biāo)注。
例如:在提供標(biāo)注教程之后,會先提供10個左右的標(biāo)注題作為考核的題目,由系統(tǒng)進(jìn)行判斷標(biāo)注員的標(biāo)注與正確的標(biāo)注之間是否存在差異。如果存在較大差異的話則考核不通過,需要重新學(xué)習(xí)標(biāo)注教程,直到考核通過之后才可以進(jìn)行正式的標(biāo)注。
下面的左圖是一個錯誤的人臉標(biāo)注,與標(biāo)準(zhǔn)的貼合度不夠,正確的標(biāo)注應(yīng)該如右圖。
除了在工具上設(shè)置自動比對的功能,專門做數(shù)據(jù)標(biāo)注眾包公會,通常會設(shè)置專門的審核員對所有標(biāo)注后的數(shù)據(jù)進(jìn)行審核,對于不合格標(biāo)注進(jìn)行打回,以此確保數(shù)據(jù)標(biāo)注的質(zhì)量。
對于眾包平臺來講,國外首選亞馬遜眾包平臺,ImageNet就是通過這個平臺進(jìn)行標(biāo)注的。而國內(nèi)也有百度眾包、京東眾智、龍貓數(shù)據(jù)等眾包平臺可供選擇。
在選擇數(shù)據(jù)眾包平臺上,通常需要考慮以下幾個方面:
標(biāo)注員專業(yè)度:
人工智能雖然是高科技領(lǐng)域,但數(shù)據(jù)標(biāo)注卻是一個典型的勞動密集型工作,有經(jīng)驗的數(shù)據(jù)標(biāo)注員在工作的效率和質(zhì)量上都會比新手要高,是個熟能生巧的工作。
所以,在挑選眾包團(tuán)隊時,要注意選擇那些經(jīng)驗豐富的標(biāo)注團(tuán)隊,這點跟招聘面試的道理是一樣的。
功能完善度:
眾包平臺都會自己開發(fā)一套標(biāo)注工具供標(biāo)注員使用,在選擇之前需要看一下平臺提供的功能是否滿足標(biāo)注的需求,例如:目前有些平臺還不支持三維圖形的標(biāo)注。還有一些平臺為了提高標(biāo)注的效率,會提供預(yù)標(biāo)注功能,在人工標(biāo)注之前先根據(jù)過往數(shù)據(jù)形成的算法對數(shù)據(jù)進(jìn)行預(yù)標(biāo)注,人工只需要對預(yù)標(biāo)注進(jìn)行審核或修改即可。
另外,平臺的審核流程是否完善也是需要考察的重點,有些平臺只提供抽檢或一重審核,但是對于一些較為復(fù)雜的標(biāo)注需求則需要平臺能支持多重的審核流程。
數(shù)據(jù)安全性:
有一些團(tuán)隊——例如銀行,對于標(biāo)注數(shù)據(jù)的安全性有較高的要求,則需要數(shù)據(jù)平臺提供API進(jìn)行對接。
確保標(biāo)注數(shù)據(jù)只存在公司內(nèi)部而不會外泄,標(biāo)注員只能訪問到當(dāng)前需要標(biāo)注的數(shù)據(jù),“標(biāo)后即焚”,保護(hù)數(shù)據(jù)的安全性。
數(shù)據(jù)整理與留存
在標(biāo)注工作結(jié)束之后,拿到的數(shù)據(jù)根據(jù)業(yè)務(wù)和模型的需求,不同類型的數(shù)據(jù)要分開進(jìn)行存儲。
例如:人臉標(biāo)識中,戴帽子和不戴帽子,正臉和側(cè)臉,光線的明暗對于算法模型都有很大的影響,為了可以隨時調(diào)整建模數(shù)據(jù),需要用不同的文件夾進(jìn)行存儲。
除了根據(jù)不同的數(shù)據(jù)特征進(jìn)行區(qū)分之外,還需要根據(jù)數(shù)據(jù)是訓(xùn)練集。測試集還是驗證集來對文件進(jìn)行劃分,根據(jù)模型訓(xùn)練的效果可能要對標(biāo)注好的數(shù)據(jù)做一些增刪,所以在一開始就做好數(shù)據(jù)的分類就很有必要了。
對于文件夾的命名方面,可以參考之前提到的駝峰命名法和下劃線命名法——例如“Train_Data”,“Test_Data”等來進(jìn)行命名。
數(shù)據(jù)標(biāo)注是一件費時費力的工作,所以,對于公司所有標(biāo)注好的數(shù)據(jù),最好有一份整合的數(shù)據(jù)清單文檔進(jìn)行留存,標(biāo)明:有一些什么數(shù)據(jù)?數(shù)量是多少?是否已經(jīng)做了標(biāo)注?標(biāo)注了一些什么內(nèi)容?
這樣如果以后還有類似的需求,或者公司內(nèi)部其他項目組有類似需求的時候,就可以直接拿來使用而不需要再重新進(jìn)行標(biāo)注了。
數(shù)據(jù)標(biāo)注的未來
在一個人工智能項目中,數(shù)據(jù)的準(zhǔn)備工作要占到整個項目至少70%的時間,整個產(chǎn)業(yè)鏈都在想盡辦法提高數(shù)據(jù)準(zhǔn)備和標(biāo)注的效率。
例如:眾包平臺除了提供標(biāo)注服務(wù)外,還可以提供數(shù)據(jù)的采集服務(wù)。根據(jù)業(yè)務(wù)方的需求采集特定的圖片,視頻,文本,語音等數(shù)據(jù),節(jié)省業(yè)務(wù)方在數(shù)據(jù)采集上的時間,同時也給自己帶來額外的收費點。在算法的研究上,也希望能用盡可能少的訓(xùn)練數(shù)據(jù)來達(dá)到建模的效果。
高質(zhì)量的標(biāo)注數(shù)據(jù)是人工智能的基石,現(xiàn)在才處于一個剛剛起步的階段,未來的幾年隨著應(yīng)用場景的拓展,會有越來越多數(shù)據(jù)標(biāo)注的需求,帶來可觀的就業(yè)增長。
同時,隨著時間的積累,可通用的高質(zhì)量標(biāo)注數(shù)據(jù)集越來越多,也將極大地降低智能產(chǎn)品落地的門檻,提高人工智能的發(fā)展速度。
本文由 @黃瀚星 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
人工智能訓(xùn)練師和人工智能工程師還有區(qū)別嗎,應(yīng)該是產(chǎn)品確定需求,根據(jù)當(dāng)前數(shù)據(jù)源確定需要標(biāo)注的場景和標(biāo)注規(guī)則,此時算法人員介入,明確標(biāo)注規(guī)則(避免劃分有誤),然后算法工程師獲取帶label的數(shù)據(jù)后進(jìn)行模型訓(xùn)練,與此同時產(chǎn)品需要準(zhǔn)備各類數(shù)據(jù)來挑戰(zhàn)模型,最后確定模型:上線/修正/無法實現(xiàn)