数据挖掘领头人韩家炜教授:如何从无结构文本到有用的知识?
轉載自:AI科技評論(ID:aitechtalk)
作者:Camel
本文9516字36圖,建議閱讀24分鐘。數據挖掘巨擘韓家煒教授分享如何將海量數據從非結構化的數據轉化為有用知識的最新研究路線。無結構數據->有結構數據->有用的知識
這幾日,對于許多數據挖掘領域的研究者來說,北京是一個關注的焦點,原因無他,作為數據挖掘領域的兩大頂會CIKM 2019和ICDM 2019相繼在北京召開,甚至連開會地點(國家會議中心)都沒有變化。
兩個會議同為CCF B類,其區別在于前者是ACM舉辦,而后者是IEEE舉辦;此外CIKM覆蓋范圍更廣,包括了數據庫、信息檢索和數據挖掘三個領域,而ICDM則更為專注數據挖掘。?
在兩次會議中,數據挖掘領域的巨擘韓家煒教授將就其研究分別做兩場報道,主題為
- From Unstructured Text to TextCube: Automated Construction andMultidimensional Exploration(@CIKM2019)
- Embedding-Based Text Mining: A Frontier in Data Mining(@ICDM2019)
現實世界中的大數據在很大程度上是非結構化的、互聯的和動態的,且以自然語言文本的形式出現,將此類龐大的非結構化數據轉換為有用的知識是在大數據時代的一條必由之路。目前大家普遍采用勞動密集型的方法對數據進行打標簽從而提取知識,這種方法短時來看可取,但卻無法進行擴展,特別是許多企業的文本數據是高度動態且領域相關。?
韓家煒教授認為,大量的文本數據本身就隱含了大量的隱模式、結構和知識,因此我們可以借助domain-independent 和 domain-dependent的知識庫,來探索如何將海量數據從非結構化的數據轉化為有用的知識。如下圖所示,是韓家煒教授及其學生在過去以及未來十多年研究的主線:韓家煒認為要想將現有的無結構的大數據變成有用的知識,首先要做的就是將數據結構化。他提出兩種結構化數據的形式,一種是異質網絡(Heterogeneous Network),另一種是多維文本立方體(Multi-dimensionalText Cube)。由這種結構化數據生成知識已經證明是很強大的,但是如何將原始無結構的數據變成有結構的數據(Network或 Text Cube)則是非常困難的。在 Network/TextCube 到 Knowledge 的問題上,韓家煒等人已經做了很多研究工作,也已經由此獲得了很多獎項;在無結構文本數據到有結構 Network/Text Cube 的路上他們也做出了許多嘗試和成果,現在仍在進行中。韓家煒認為這是一條很長的路,他們現在只是在這條路上突破了幾個可以往前走的口子,還只是一條小路,要變成一條康莊大道則需要各國學者共同努力。韓家煒教授的研究工作并非跟隨熱點,而是在十年如一日地去打通一條從無結構數據到結構化知識的康莊大道,因此脈絡極為清晰且極具連貫性。一、數據挖掘三部曲革命需要指導原則,研究也是。韓家煒認為若想從 Big Data 中挖掘出有用的知識,就必須研究如何將無結構的文本變成有結構的文本,然后再從有結構的文本中挖掘知識。針對這種想法,他們提出了三個關鍵詞:Structuring:將無結構的文本轉化成有結構的、有類型的、關聯的實體或關系Networking:利用大量有結構的關系構建網絡Mining:在關系和網絡上進行挖掘韓家煒認為他們做數據挖掘的研究工作可以總結為三部曲:(1)從文本數據中挖掘隱藏的結構。文本數據中隱藏著大量的結構,這步工作就是將這些數據挖掘出來。(2)將文本數據轉化為有類型的 Network/Text Cube。將文本數據變成有結構、有類型的數據(Network/Text Cube)。(3)挖掘 Network/Text Cube 生成有用的知識。最后一步才是挖掘。為什么要經過中間的一步,將無結構文本先轉化為 Network/Text Cube,而不是直接對文本進行挖掘呢?韓家煒隨后舉了兩個例子來說明這樣做的好處。
二、Network 的強大
如果將 DBLP 的文獻信息(例如論文、作者、出版地等)整合到 Network 中,那么顯然這個網絡中蘊涵著豐富的信息,例如我們可以通過排名函數從網絡中挖掘出誰是 Web 研究的領軍人物,或者通過相似性搜索函數從網絡中挖掘出一個學者的同行;通過關系預測來挖掘一個學者未來的合作者將是誰;通過網絡演化來發掘 Data Mining 學科是如何出現和發展的等等。
這里面韓家煒講了一個故事。2010 年韓被 ECML-PKDD 邀請去做一個 keynote,報告的主題為《結構就是信息:挖掘結構信息網絡》(Structureis Informative: On Mining Structured Information Networks)。報告結束后的提問環節,坐在下面的 Christos Faloutsos 舉手問道:「你做的這個 Network 很 powerful,但是你能否預測到我明年寫什么文章?」韓回答道:「我連自己的都預測不到,更別提你的啦?!褂谑钱敃r下面哄堂大笑?;厝ズ箜n家煒將這個笑話講給當時還在他手下讀博士的孫怡舟聽。孫怡舟很嚴肅地認為這不是一個簡單的笑話。經過分析和討論后孫怡舟定了一個新課題,預測 Christos 今后幾年會有哪些新的 authors 合作。
這個課題導致孫怡舟隨后提出了我們現在廣泛使用的 Meta path 的概念,并于 2011 年在 ASONAM 上發表了一篇影響力巨大的文章。在文章中,孫怡舟預測了裴建的合作者。根據裴建在 [1996-2002] 年間的文章(作為特征集)準確地預測了他在 [2003-2009] 年間會有哪些合作者(測試集),排名前五的預測中只有一個沒有出現在測試集中。
另外一個是預測錯誤嗎?并不是,裴建和 Osmar 也有合作,只不過他們合作的 paper 發表在 2011 年;沒有被統計進測試集中而已。
這就說明如果有一個 Network 將 Big Data 結構化后,其預測能力(或者別的能力)將是非常強的。
三、Text Cube的強大
我們知道如果在 Database(也即 Data Cube)上做統計和分析是非常方便的?,F在分析無結構的 Text,如果能夠將 Text 放入到一個類似的多維 Cube 中,那么很顯然這將對分析 Text 起到很好的作用。
Text Cube 其中一個應用就是 Comparative Summarization。例如將 NY Times 的新聞放入到這樣一個 Cube 中,我們想要總結「2016」、「China」、「Economy」的信息。與這些關鍵詞相關的 Documents 有很多很多,沒有人愿意去一個一個地查看。如果只是簡單地用統計的方法來獲取信息,就會發現有很多不是「Economy」的信息,例如「Hong Kong」、「United States」等。而如果我們事先已經將這些 Text 放入到 Cube,則根據 Integrity、Popularity、Distinctness 等標準,通過與每個維度上相鄰的 Cell 做比較,就可以很容易地找到非常準確地信息。
使用這種方法,韓家煒領導的小組通過 NY Times 在 2016 年的新聞很容易就挖掘出了當時美國兩黨辯論過程中的主要議程(例如<US, Gun Control>、<US,Immigration>等)Top 10 的關鍵信息。
一個很有意思的故事是,韓家煒在 UCLA 做了關于上述研究的報告后,引起了 UCLA 醫學教授的興趣。UCLA 在心臟病方面的研究在全美范圍內是非常先進的。
這些教授告訴韓家煒說,心臟病其實不是一類病,而是六類病;每類疾病大多都是由某種蛋白質引起的。他們希望韓家煒能夠幫助他們從大量文獻中找出哪種蛋白質與哪類心臟病有緊密關聯。
這個任務對這些醫學教授們來說是非常艱難的,因為每年會有超過 100 萬的生物醫學論文發表,而每個針對某類心臟病的研究總會列出一大堆相關蛋白質,從如此龐大的信息中找出對應某類心臟病的蛋白質是極為困難的。
討論過后,韓家煒等人從 PubMed(一個醫學文獻庫)中抓取了「心血管疾病」相關的十年的數據,大約有 50 萬篇 paper。他們使用這 50 萬篇paper、6 類心臟病以及醫學教授們列出的 250 種蛋白質,根據和挖掘 NY Times 一樣的算法,很快就得到了針對每一類心臟病的相關蛋白質排序,如下表(僅列出 Top 5)。
這些醫學教授看到結果后高興壞了。首先,韓家煒等人列出的結果中,排名 No.1 的蛋白質和他們已知的情況完全符合,這說明這種算法有效。但是他們的經驗表明有些病人(例如小孩)按照這種蛋白質病因去治療往往無效,這說明這些病人的這類心臟病并不是由該蛋白質引起的。所以韓家煒等人列出的排名 No.2、No.3 等的蛋白質就給他們一個很大的線索,他們可以集中精力針對這些蛋白質去做臨床試驗,這大大地促進了他們的研究。
這樣一個簡單的例子說明 Text Cube 很有用,而且有著巨大的潛力。
?四、從無結構文本中挖掘結構
上述兩個方向的研究(「從Network 中找知識」和「從 Text Cube 中找知識」)表明,如果有了結構化的 Network/Text Cube,那么從中挖掘知識就相當容易。但是現實世界中,我們所擁有的數據大多是無結構的 Text,如何將這些無結構的 Text 變成有結構的 Network/Text Cube 仍然是未解決的問題。
韓家煒團隊的人員近幾年主要的研究工作正是圍繞著這個問題進行的,即怎樣從 Text 中挖掘 Phrases、怎樣從 Text 中挖掘 Typed Entities、以及怎樣把這些 Phrases/Typed Entities 變成 Network/Text-cube。
1、Phrase Mining
單獨的一個字意義往往不明顯,如果能夠從 Text 中挖掘出詞組(Phrase),那么對挖掘文本結構將有很重要的意義。韓家煒團隊的人員先后提出了三種方法,分別為無監督的 TopMine、弱監督的 SegPhrase和遠程監督的AutoPhrase。這些研究的代碼在 Github 上都有公開,任何人都可以下載下來使用或重復其工作。
(1)TopMine:頻率模式挖掘+統計分析
這項工作主要是對語料庫文本的Topic 進行挖掘。但是它的方法不同于以往采用 Uni-gram 的方法,而是將 Topic 挖掘分成了兩個步驟:通過 Phrase Mining 對文本進行分割;隨后進行基于 Phrase 約束的 Topic 模型。
對文本進行 PhraseMining 的一個基本思想就是,Phrase 中的字同時出現的頻率較高。具體來說就是這么一個公式:
舉個例子,對于一個論文標題「MarkovBlanket Feature Selection for Support Vector Machines」,不同的分割方法可能會將它劃分到不同的 Topic 里面,例如僅僅根據「Vector」,可能會把這篇文章劃分到數學、物理的 Topic 中。但是顯然「Support Vector Machines」是一個整體,它是屬于計算機的 Topic。根據上述公式的迭代,則可以將這個標題進行如下的 Phrase 分割。這種方法有多好呢?韓家煒又講了一個故事。David Blei 是做 Topic Model 非常權威的專家,某次去 UIUC 訪問,看到了這個結果之后非常震驚,因為他從來沒有見過這么好的結果。結果好的原因,歸結起來在于TopMine 將 Topic Model 分為了兩步,先做了Phrase Mining,然后才做 Topic model。這種方法避免了長度統一的 gram 將一個 Phrase 中的Word 分割開。(2)SegPhrase:弱監督、高質量的 Phrase Mining
韓家煒的學生劉佳硉認為TopMine 的方法完全是無監督的,如果有少量的 Label 數據可能會在很大程度上提高 Topic Model 的結果。于是他精心選擇了 300 個高質量的 Labels(150 個正例,150 個反例)。
這篇論文發表在 SIGMOD2015 上后,不久 Yelp 就給他們頒發了一個「Grandprize of 2015 Yelp Data Set Challenge」的獎,并且這個方法還被應用在了TripAdvisor 等平臺上。
(3)AutoPhrase:自動的 Phrase Mining
韓家煒的學生商靜波認為人工挑選300 個高質量 Labels 還是挺費精力的,于是選擇使用Wikipedia 的詞條作為 Label,這樣可以很快就得到幾十萬的 Labels。這種方法的一個問題是,有一些Phrase 并不在 Wikipedia 中,這些Phrase 并不一定是 Nagative Label。他們通過 ranking 解決了這個問題。這種方法的結果與其他方法相比有顯著提升。2、識別TypedEntity
知道了 Phrase 以后,還需要讓 Phrase make sense,也即識別實體、標注 Type。按照韓家煒的話:
“Identifying token?span asentity mentions in documents and labeling their types?—— Enabling structuredanalysis of unstructured text corpus.”
這有幾個難點:
領域限制。用一般語料獲得的實體標注在特定領域、動態領域或者新興的領域無法很好的工作。
名稱的歧義性。多個實體可能共享同一個表面名字(SurfaceName,例如「Washington」,它可能是州、市、人名、球隊名等)
上下文稀疏。對同一個關系可能有許多種表示方法。(想想中文有多少中表示體育比賽結果的方法)
(1)ClusType
韓家煒講了他們發表在 KDD 2015 上的一篇文章。在這篇文章中他們構建了如下一張異質結構圖,其中c1、c2、c3 代表實體的 Surface Name,p1、p2……代表文本中 Surface Name 左右的 Phrase,而 m1、m2 ……代表實體(EntityMention)。每個 Entity Mention 都是沒有歧義的獨立對象。
將 Surface Name 、Phrase 和 Entity Mention 連接起來,其中兩個對象越有可能共享相同的 label,連接它們的邊的權重就越大?;谶@樣一張異質圖,他們將兩個任務聯合起來構建了一個基于圖的半監督學習:- 在圖中進行類型演化。通過聚類的同義關系 Phrase 推斷連接起來的實體類別(例如,「Kabul is an ally of Washington」,如果已知 Kabul 的類別是「government」,那么可以推斷這里的「Washington」的類別也是「government」)。
- 將關系 phrase 進行聚類。反過來,已經標注類型的實體也可以作為很好的 feature 來對 phrase 進行聚類。
(2)Cotype:going deeper
上述的類別往往比較粗糙,例如只區分了「person」、「food」、「job」、「event」、「government」等等,粒度比較大。以特朗普為例,特朗普的大的類別是「person」,但是作為一個「person」,特朗普可以是一個政治家,也可以是一個商人或者藝術家等。如何進行更精細的類別分類呢?方法就是 Embedding。韓家煒舉了一個他們在 WWW 2017 上發表的一篇文章。[4] 在這篇文章中,他們發明了叫做 CoType 的方法,將 Entity 和 Phrase 全部都 Embedding 到一個低維空間中(而不僅僅是 Embedding Entity)。
例如在這個 Embedding空間中,如果要標記的「Trump」和「Hillary」相近,則很明顯應該給這個「Trump」標記為「politician」;如果是和企業相關的 Phrase 相近,那么就標記為「businessman」。通過 Entity 和 Phrase 的相互促進來提升整體的標記內容。
[4] 論文中舉的例子是「Obama」,這里用的是韓家煒報告中的例子。3、尋找MetaPattern
韓家煒考慮地其實更遠,不光是找Phrase,也不光是找 Type,還要找文本中的Pattern,通過 Pattern 來從文本中自動并大量地挖掘結構信息。
何謂 Pattern 呢?其實通俗點兒來說,就是「套路」。我們語言很多都是在套用模板,例如「the government of USA」,「the government ofChina」,「the goverment ofBurkina Faso」等等。你可能一下子不知道「Burkina Faso」是什么,但是通過類似的模式,你知道這肯定是一個國家。
同樣的,這對機器來說也并不難。只要有 Pattern,機器可以迅速地從文本中挖掘出相同 Pattern 的大量信息。韓家煒舉了他們實驗室讀博士后的蔣朦在KDD 2017 上發表的文章。
這篇工作也是在 Phrase 的工作上來做的,但這是 Meta Pattern 的 Meta Phrase。
從上面這個圖可以很清晰看出他們的工作流程:對語料文本進行 Meta Pattern 分割,得到 Meta Pattern;通過 Meta Pattern 可以找到大量相符的三元組;再通過這些三元組數據進一步地改進Meta Pattern,例如提升粒度或獲得同義的 Meta Pattern。值得注意的是,這種方法并不需要大量的標注數據,也不需要相應的領域知識,同樣也不需要搜索日志。他們將這種方法應用到新聞語料庫中,一下子就把所有的國家和領導人,以及大大小小的公司和他們的 CEO 挖了出來。同樣的方法應用在醫學研究的語料中,迅速就挖掘出相應的疾病和治療方案,細菌和抗體。這項工作的思想很簡單,但是結果卻很 amazing。4、建立層級分類
在以上工作的基礎上,很多人也在研究如何建立起 Entity 的層級分類。人類經過訓練后可以很容易地給不同的 Entity 進行分類,例如 Machine Learning、Computer Science 顯然不是同一個層級的。能否讓機器根據文本的 Title 來自動生成 Entity 的層級分類呢?
韓家煒說,自動建立層級分類其實「挺難的」。他們經過多種嘗試后,提出了兩種有效的方法:Adaptive Spherical Clustering 和 LocalEmbedding。
(1)AdaptiveSpherical Clustering
通過考慮 Popularity和 Concentration 兩個特性,設計一個排名模型,通過排名模型選出每一個聚類的代表性 Phrases(Representative Phrases)。隨后將那些背景性 Phrases(Background Phrases)向上一級或向下一級(根據 Embedding 后距離的遠近)推移。最重要的一點就是,不強求每個 Phrase 必須屬于某個 Cluster。(2)Local Embedding
所謂 LocalEmbedding,就是說只選用與 Cluster 相關的Phrases 進行 Embedding。之所以這樣,是因為當把所有的 Phrase 放在一起進行 Embedding(Global Embedding),其他 Cluster 的 Phrases 就會產生很多噪聲,這會湮沒真正有用的東西。而如果使用 LocalEmbedding 則可以把真正有用的 Phrase 顯露出來。
五、構建多維TextCube
以上這些研究的目的是什么呢?韓家煒說,主要是想要建立一個多維 Text Cube。
一個可能的疑問是,前面 2.2節不是已經有了建好的 Text Cube 嗎,為什么還要構建?我們需要注意的是,那個 Text Cube 是 NY Times 的數據,這是已經按照 Topic(sport、economic、political、science...)或者 Location(China、USA、Japan...)等標簽構建好的 Text Cube;而真實的世界中的文本則大多并沒有標簽,這需要我們自己來構建。
一個現實的問題就是,假如給你100 萬個 Documents,而只有少量幾個標簽(例如上述Location、Topic 的標簽),那么你能否自動地生成成百上千的標簽,并將文本正確地放入到這些標簽構建的多維 Text Cube 中呢?
首先去做的當然是Embedding,但是已知的標簽太少了。所以韓家煒他們建了一個 L-T-D(Label-Term-Document)圖,其中的 Term 是從文本中抽取出來的。
我們查看每個 Term 在每個已知 Label 中的分布情況。
例如「stock market」,它在每個 Location 維度中分布的概率基本一致,這說明「stock market」這個 term 不屬于 Location 這個維度;而另一方面,它在 Topic 維度的分布則有很強的差別性。根據一個稱為 Dimension-FocalScore 的標準可以判別出它是屬于 economy 標簽下的。依據上面的方法以及該 term在這個標簽下的普遍程度(如果大于某個值),則可以判斷出這個 Term(例如「stock market」)屬于相應標簽維度下的一個標簽。藉此,我們可以自動地生成大量的標簽,并同時將文本放入到這些標簽構建的多維度 Text Cube 當中。構建出這樣的 TextCube 之后,再去進行數據挖掘就會方便很多。六、研究方向總結
韓家煒最后做了報告總結,這里我們將韓的原話整理如下,稍做修改:我們認為,要把大的數據變成大的Knowledge,其中很重要的一條就是要有結構。我們找到兩種結構,一個是Network,一個是 Text Cube。用這兩種結構導出Knowledge,我們已經有很好的例子,而且很 powerful。當然這兩種結構在某種程度上是應該結合起來的,現在我們有人在研究怎樣將它們結合起來。真實的數據到結構化數據,再到有用的知識,這仍然是一條很長的路。我們這么多年做 Data Mining 也是沿著這條路走的。從 2000 年我們出的第一本書(注:2011 年第三版),隨后 Philip、Faloutsos 和我在 2010 年合著了《Link Mining》,再往后是孫怡舟做的《Mining HeterogeneousInformation Network》;隨后是王箎做的《Mining Latent EntityStructures》;最近呢,是劉佳硉、商靜波他們把 Phrase mining 做了出來(《Phrase Mining From Massive Text and Its Application》)。這些以后都會成為書。我們接下來有任翔他們,還會接著往下走。(AI科技評論2019年11月注:目前任翔已經出了《Mining Structures of Factual Knowledge from Text》,隨后張超出版了《Multidimensional Mining of Massive Text Data》)
在這條路上,我們現在只是找到了幾個口子可以往前走。現在這還不是一條大路,只是一條小路。要想變成一條康莊大道,需要大家共同努力。這條路通寬了,將來我們就可以從大量的無結構的文本,變成大量的有用的知識。這是我要講的重點。
——END——
總結
以上是生活随笔為你收集整理的数据挖掘领头人韩家炜教授:如何从无结构文本到有用的知识?的全部內容,希望文章能夠幫你解決所遇到的問題。