知識圖譜前沿課程 | 知識圖譜的眾包構建與精化
知識圖譜前沿課程是一個系列課程,已經在復旦大學、華東師範大學、蘇州大學舉辦了三次,該課程旨在集中展示知識圖譜的當前在學術界和工業界的進展,討論現有主要問題,為下一步知識圖譜方向的研究工作做好規劃。
知識圖譜前沿課程(華東師範大學站)是由復旦大學知識工場實驗室負責人肖仰華教授、華東師範大學林欣教授和蘇州大學李直旭教授組織並參與主講的課程。本文整理自華東師範大學林欣教授在知識圖譜前沿課程(華東師範大學站)所做的報告,題目為《知識圖譜的眾包構建與精化》。
獲取完整PPT,請前往 http://kw.fudan.edu.cn/workshop/intro2017b
大家好,我叫林欣,是華東師範大學計算機應用研究所的一位老師,今天的報告我要從一個很獨特的角度來講,就是如何利用眾包的技術,對知識圖譜做一個精化。
剛才肖仰華老師精彩的演講里提到一個詞---數據驅動。實用的知識圖譜一定是要從大數據中去挖掘知識的,這就是數據驅動,但是作為數據驅動的知識圖譜很難達到「雙高」,也就是高準確率和高召回率。我們必須要用很多技術對其進行精化,清洗,才有可能達到雙高。
現在精化的研究主要包括糾錯和補全。糾錯和補全的方式,一是自動化的推理技術,假設說知道A是B的爸爸,B是C的爸爸,那麼很容易知道A 是C 的祖父,這是很古老的推理技術。二是通過衝突檢錯的方式去檢查錯誤的知識,包括肖仰華老師2017年還做了一些利用isA模型中的關係傳遞來檢測知識庫中的一些問題。
我們實驗室主要是研究以眾包的方式來做一些知識圖譜的精化。
我給大家簡單介紹一下什麼是眾包。眾包其實很常見,比如滴滴打車,美團外賣等等,這些都是眾包,就是發布一個任務出去,讓互聯網上大部分的人,或者潛在工作者幫助完成這個任務。
眾包商業化已經落地了,但是今天我們講的是對知識圖譜做一個眾包清洗,這個眾包與傳統的眾包不一樣,知識圖譜的眾包涉及到人的智慧的一個抽取過程,它是眾包的一個分支,它的目標是屏蔽AI和人之間的鴻溝。
AI系統現在已經做的很好了,但是在有一些場景還是和人有很大的差距,比如對常識性知識的理解,像無人駕駛,還是無法做到百分百的安全。
我們希望通過人類的一些手段來對AI做一些補充,用人來做知識圖譜的清洗應該是非常合適的,因為機器在解決很多問題方面始終無法達到最佳狀態。我後面會著重從Knowledge-Intensive Crowdsourcing上講講它對知識圖譜有什麼好處。
我們接觸過很多Knowledge-Intensive Crowdsourcing。
舉個例子,圖中左上角是谷歌早期使用過的一個驗證碼,這裡給出兩個驗證碼,一個是真正的驗證碼,另一個則是谷歌希望用戶能幫助它識別的一段機器很難識別的古文,當用戶輸入兩段字的時候,除了達到了驗證的目的之外,還幫谷歌識別了一段古文。
另外一個例子,就是ImageNet Labeling,讓人對圖像做一個標註,圖像標註的是語義,而不是圖像中有什麼物體,這個事情機器很難做,但是對於人來說就相對容易一些。
眾包的一個很重要的平台就是亞馬遜,現在上面的活躍用戶達到上百萬,主要是做跟智力相關的眾包。
還有最後一個,最出名的WIKIPedia,維基其實就是一個眾包性質,大家往裡面添加知識,從維基百科中去抽取知識,形成知識庫。這個是比較典型的案例。
我從眾包的角度給大家分析一下,眾包要做什麼事情。
眾包並不是單純的直接把任務交給人去做,實際上,還有很多研究點。
第一個研究點是「What」,什麼東西應該交給人去做,包括知識庫中的清洗,哪一條交給人去做比較合適,首先要做一個精細的選擇。
第二個研究點是「Whom」,任務應該交給誰做比較合適,怎麼分發任務。
第三個研究點是「How」,如何設計任務,然後怎樣激勵用戶高質量完成任務,還有如何把控用戶質量,跟知識相關的工作,質量是非常重要的,只要用戶有一點點的偏差,都會對後面產生擴大性的影響,最後是如何利用眾包的結果,對知識庫做一個調整。
首先來講「what」,什麼事應該交給人來做。
1、我們給人做任務很多時候是要付錢的,單筆金額雖然不多,但是按知識庫的數量來看,讓人去清洗幾千萬的數據界面,總體算下來,是非常昂貴的,如果要做補全的話,可能會涉及到非常廣的知識面。這個時候我們就需要思考如何在最短的時間,用最少的金錢代價得到滿意的結果。
2、選擇最重要的任務,希望這個任務選出來,做完後能夠再這個系統中形成一個很好的反饋。
3、選擇一些機器做不好,而人可以做好的任務。
現在有很多這方面的工作。
知識圖譜最難做的任務之一就是實體匹配。兩個實體在不同的語言環境下,可以指同一個實體,比如「蘋果電腦」和「Mac Book」,在不同的語言環境下,其實指的是同一個實體。同一個辭彙也可能指不同的實體,就拿「蘋果」這個詞來說,可以是一種水果,也可以指一個公司。關於實體匹配的任務,其實人來做是比較合適的,人擁有強大的背景知識,很自然的就能理解兩個詞是指同一個實體,又或者是一個詞指不同的實體。
另外一個很難的任務就是Schema matching,兩個知識系統,或者資料庫里的數據方式也會存在歧義和偏差,這個問題如果處理不好,會給後續工作帶來很大的困擾。
很多學者在用眾包做與知識庫相關的事情。舉一個例子,實體匹配具有傳遞性,圖中O3和O2極高度懷疑不是同一個東西,把P1和P2交給眾包去做,做完以後,根據推理性,告訴我們O2和黑色的圓圈不是同一個內容的話,那麼P2這條邊就不用去分析了。這一個很小的範例,在大的系統中,這樣操作會節省很多時間和金錢的開銷。其實還有很多其他的例子,由於時間關係,這裡就不列舉。
現在來看看我們實驗室做了什麼工作。
由於自然語言處理的錯誤,亦或是衝突的數據源,導致知識圖譜中有很多邊是帶有概率的,因為需要召回率,就必須把一些帶有概率的邊引進來,讓覆蓋率更廣一些。但是有概率的邊,會導致query回來的結果不好,比如這裡給一個query,可能有三個結果,結果一的概率是百分之三十,結果二的概率是百分之三十,結果三的概率是百分之四十,這種結果是很難令上層的應用和用戶滿意的,上層應用根本不知道要推薦哪一個結果。
這種情況下,我們就需要讓人來確定一些重要的邊,這個確定很簡單,就是把邊拿出來,問眾包yes or no。
舉一個很有趣的例子,有條邊是「麥迪是不是現役CBA球員?」,因為很多文檔提到麥迪曾經在CBA效力過,就很自然把他歸為CBA球員,但實際上他已經退役了,這個事情機器很難判定,但是人很容易判定。
我們比較喜歡用yes or no 的問題來問眾包,這樣的一個個yes or no 最後會讓系統的確定性更強。
而我們做的工作就是如何在快速、有效的演算法之內,找到那些可以通過眾包,使得效果更好,價值更高的邊,這個工作發表在今年的TKDE上。
另外,我們還有一個相似的工作,也是發表在今年的TKDE上。如圖中的top k 查詢,前k個基於知識圖譜的問答,如果給出的查詢是有比較的,這個比較就有一個先後排列,模糊性很強。這個時候可以讓人去給它做一個比較,也相當於一個判斷題,通過這樣簡短的幾次比較,就可以把系統的不確定性降到最低。
「what」這個問題,我們通過Local refinement就可以提升整個系統的性能,這是「what」的一個宗旨,所以我們大部分的研究都是在做,如何去量化influence。由於每一個任務都是獨立的,所以基本上每個問題都可以重新做一遍。
接下來,我們來講「whom」,任務應該交給誰去做。
谷歌其實很早就利用眾包對知識庫進行清洗了,谷歌的操作是頁面上有一個框,大家覺得有錯誤,就指出來,然後讓數據審核員去審核一下是否有錯。
這種方式我們稱作「被動的眾包」,讓用戶去pick up 任務。
現在眾包大部分都是pick up 的形式,包括亞馬遜,給出一個任務,讓人去做,在做之前會有一個校驗,看回答者是否有做任務資格,系統會給出一些問題,讓人回答以驗證資格。
在一些精細的問題中,特別是高難度的,與知識相關的眾包中,需要的是主動的眾包,就是需要主動去問這個任務到底是誰來做。比如說我們有一個合作,要做一個專家推薦,希望審稿子的專家是很專業的專家,這個時候就不能說哪個專家喜歡審這個稿子就哪個專家審,這個時候就要做一個用戶畫像,然後做一個任務模型,最後做一個Matching。
對用戶模型來說,以前最基本的方法就是Task-history,就是通過了解用戶做過什麼事,就知道用戶擅長什麼。現在做專家推薦也是一樣,看專家發表過什麼論文,就知道這個專家的擅長方向。這是最主流的方式。
但是這種推薦系統都會遇到冷啟動問題,對於一個新領域或者新項目,新問題等等,都會遇到沒有做過這方面工作的人,那怎麼辦?
有兩種方法,一種叫做Golden task,我們給出一些設定好的金指標的任務,讓大家來做,然後再從中篩選。這個方法挺好,但是對於設計Golden task的人員來說就會很累。
第二種就是Transfer learning,我們希望讓系統知道,這個人在某些領域做的好,在另外一個領域也可能做的好。
還有學者在研究給出一個用戶畫像,再給出一個任務模型,怎樣去做一個Matching。有幾種方式,第一種是最簡單的Keyword方式,還有一種是用tree的方式,最後是用向量的方式。
比如說向量的方式,是去年清華大學李老師做的一個工作,把一個領域分成若干個小領域,把這若干個小領域打上向量,任務也可以打上向量,然後去計算它們的Similarity,做一個最簡單的匹配。
2016年WWW有篇論文是用基於tree的方式,所謂基於tree的方式就是把整個類似於知識圖譜isA的模型建一個tree,這個一個帶有分支的tree,在tree上的距離越近,就越合適。
我們現在做的一個工作是,知識圖譜里的知識是以圖的方式組成的,簡單的樹形方式已不再適用,比如說雖然網球和足球同屬於體育方面,可能一個人對網球感興趣,但是對足球卻不感興趣,這種情況很常見。對網球感興趣的人中,可能對奢侈品感興趣的人也是比較多的。那麼我們在圖上發現,很多領域之間是跨樹的,所以我們提出一種基於樹和圖結合的方式,去解決上面提到的專家推薦的問題。
現在來看看「How」的問題,首先是怎樣去設計眾包的任務和問題。
其實眾包的問題可以分為兩類,一類是顯式的眾包,一類是隱式的眾包。
先講講顯式的眾包。這是大家經常見到的一個眾包,給出一個問卷,讓大家去填,很明顯的告訴大家,這是一個任務。
這個研究也有guidelines,特別是從心理學方面來做研究,有學者提出,越小的任務是越受歡迎的,人們都希望用碎片的時間來給自己帶來一些收入,用很簡單的方式就可以完成一個任務。第二個是判斷題比選擇題要好,選擇題比填空題要好,因為答案的空間越來越多了,用戶判斷的難度就越來越大。最後用戶是不希望去多做cooperation,他們更希望UI的建立好一些。
研究總是有新的點,今年的SIGMOD2017上,就有一篇論文,表示選擇題優勢的時候比判斷題好,因為選擇題有的時候,一題就可以解決需要很多道判斷題才能解決的問題。有的時候難度低的情況下,可以用選擇題來代替判斷題。
我著重想要講的是隱式的眾包,隱式眾包是一個非常巧的研究點,也是一個非常有趣的問題,隱式眾包就是讓大家在做在first purpose 的時候,悄悄的把second purpose的任務也完成了。比如剛剛提到的谷歌驗證碼,谷歌要驗證新系統是first purpose,但是second purpose是獲得用戶的知識,這種隱式眾包非常好的,不用有花費就能完成一個很偉大的任務。還有一個大家也經常用的APP,就是百度地圖,你們在用百度地圖的時候,其實你們也是眾包,你們把GPS信息貢獻給百度了,百度就知道這個地方是擁堵,還是通暢,這個不能說是百度強制把用戶GPS信息拿過來,它是用隱式眾包的方式來獲取知識。
我來講幾個跟知識圖譜有關的隱式眾包。
一個是常識的獲取,剛剛肖仰華老師提到常識是很難獲取的。它是AI complete 的問題。對於常識的獲取,眾包也是一種補充方式。
這裡舉一個例子,一個叫「心有靈犀」的遊戲,一個人背對著答案,一個人面對答案,面對答案的人不斷對所看見的詞進行描述,讓背對答案的人去猜。那麼這個時候面對答案的人講的肯定是一些很普遍的描述,這些描述是無法從書本上拿到的,但是是存在人腦里的,人們為了玩這個遊戲,會不斷刺激大腦出現常識的描述。這是一個獲取常識的非常巧妙的方式。
另外一個很有趣的例子就是Touch Saliency & Visual Focus,比如說我想知道,大家對這張圖的哪個部分感興趣,一張圖的焦點在哪裡,可以先把這個圖放到人們手機上,但是人們看到的圖是小而模糊的,這樣人們就會用手指把圖片擴大,並著重看感興趣的部分,這樣就可以通過人們手指所在的地方,計算出焦點位置。
這兩個例子是非常典型的用隱式眾包來解決知識獲取的問題。
我們希望給用戶下意識的把任務送出去,同時把用戶當做user來做。
給出的first purpose是非常重要的,如果first purpose沒有設計好的話,那麼second purpose肯定不能很好的進行。
還要給用戶一些好奇心,讓他可以很好的完成任務。
接下來講講如何去激勵用戶。我們經過研究發現,激勵可以分為四種,一種是Reputation,比如很多朋友打王者榮耀,這個玩家等級就是Reputation。第二種就是用Joy的方式,當用戶在玩遊戲,玩的很高興的時候,就可以做眾包的任務。
後面兩種是大頭,研究的人特別多,先來看用金錢刺激的方式,現在都是Static的方式,就是一個任務從頭到尾給出多少錢,但實際上不是這樣的,特別是跟知識相關的任務,更應該是Dynamic的方式,剛開始可能會投多一點錢,讓大家關注這個問題,關注了之後,可能就可以投少一點錢,最後需要收尾的時候,再投多一點,這個是很精細的問題。還有一些研究生在做Conditional rewards,也就是,不是全部的用戶都給錢,比如說可能前百分之五十會給錢,後百分之五十就不給錢了,那麼大家會為了進前百分之五十,就會快速給出答案。
還有一種是用SocialInfluence的方式,social network分為兩類,一類是強社交,就是大家使用的微信,qq之類的,大家都知道交談的對象是誰。另外一種是弱社交,像阿里眾包,Amazon turk這樣的,後面只是一個ID,在真實的社交中,他們是沒有關聯的。
剛開始研究的時候會在想,強社交是不是會把眾包推廣的更好一些呢?後來我們發現實際上不是的,有時候弱社交的方式,反而對一些小任務的推廣度更高,因為大家不用去顧及現實生活中別人對做這個任務是怎麼看的。
但是比如說有些任務是高大上的,像共享單車的推廣,很多人就願意分享出去,會覺得這個很有趣,但是用戶推廣了一段時間後,就不願意在微信上推廣了,這是有心理學的暗示的。所以我們希望研究一種Hybrid的方式,也就是任務的不同階段給出不同的激勵方式。
關於質量控制,現在的研究分為三個方面,一個是怎樣去設計問題,另一個是如何組織worker,第三個就是如何收集答案,以及答案如果衝突了,如何去處理。
我們的研究是在高智商任務發包的時候,就要明白它是有難易度區別的,不同難度給不同的錢,也會有不同的回報,那我們怎樣去區分這個難度呢?
首先我們會做一個小型的眾包,把難度和特徵關聯起來,確認特徵之後,後面的分包效率就會高很多。
最後我們講如何利用在知識圖譜中利用眾包。
我們現在在做一個跟知識圖譜中權重的調整有關的工作。在問答系統中,有時候知識圖譜是帶有權重的,而這個權重是很難調整的,如果要很細的去調整的話,工作量非常大的。
如果一個問答系統的回答不準確了,用戶只會抱怨答案不對,但是不會說明哪裡不對。這個時候,我們希望用戶稍微多給一點知識,不僅告訴我們答案不對,而且還可以告訴我們哪一個是對的。這種反饋是容易收取的。
由於時間關係,今天就講這些內容。
做知識圖譜眾包,是一件非常有趣的事情,這中間也帶有很多心理學,人機交互學,還有AI的問題,在考慮這些問題的時候,大家需要有一些想像力,這樣才會相對來說比較容易出成果。
更多產品試用請點擊知識工場網站主頁:http://kw.fudan.edu.cn/
合作意向、反饋建議請聯繫我們:
info.knowledgeworks@gmail.com
或直接聯繫知識工場負責人肖仰華教授:
shawyh@fudan.edu.cn
推薦閱讀:
※知識圖譜的模式層和數據層設計
※超詳細解讀:神經語義解析的結構化表示學習 | 附代碼分析
※2018全國知識圖譜與語義計算大會徵文開始
※報告 | 肖仰華:知識圖譜研究的回顧與展望
※知識圖譜如何助力輿情監控升級為商業智能