數據挖掘領頭人韓家煒教授:如何從無結構文本到有用的知識?

  • 2019 年 11 月 10 日
  • 筆記

無結構數據->有結構數據->有用的知識

作者 | Camel

編輯 | 唐里

這幾日,對於許多數據挖掘領域的研究者來說,北京是一個關注的焦點,原因無他,作為數據挖掘領域的兩大高峰會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 的路上他們也做出了許多嘗試和成果,現在仍在進行中。韓家煒認為這是一條很長的路,他們現在只是在這條路上突破了幾個可以往前走的口子,還只是一條小路,要變成一條康庄大道則需要各國學者共同努力。

韓家煒教授的研究工作並非跟隨熱點,而是在十年如一日地去打通一條從無結構數據到結構化知識的康庄大道,因此脈絡極為清晰且極具連貫性。

以下內容來自AI科技評論在2018年初整理的韓家煒教授的演講報告文章《韓家煒在數據挖掘上開闢的「小路」是什麼》,僅供大家參考。相比一年前,韓家煒教授的團隊也在不斷將當前最新的研究進展融入到他們這條「小路」當中,例如BERT、Spherical Text Embedding等,這些請查閱韓家煒教授團隊近期發表論文。

一、數據挖掘三部曲

革命需要指導原則,研究也是。

韓家煒認為若想從 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,但是你能否預測到我明年寫什麼文章?」韓回答道:「我連自己的都預測不到,更別提你的啦。」於是當時下面哄堂大笑。回去後韓家煒將這個笑話講給當時還在他手下讀博士的孫怡舟聽。孫怡舟很嚴肅地認為這不是一個簡單的笑話。經過分析和討論後孫怡舟定了一個新課題,預測 Christos 今後幾年會有哪些新的 authors 合作。

這個課題導致孫怡舟隨後提出了我們現在廣泛使用的 Meta path 的概念,並於 2011 年在 ASONAM 上發表了一篇影響力巨大的文章。在文章中,孫怡舟預測了裴建的合作者。根據裴建在 [1996-2002] 年間的文章(作為特徵集)準確地預測了他在 [2003-2009] 年間會有哪些合作者(測試集),排名前五的預測中只有一個沒有出現在測試集中。

另外一個是預測錯誤嗎?並不是,裴建和 Osmar 也有合作,只不過他們合作的 paper 發表在 2011 年;沒有被統計進測試集中而已。

這就說明如果有一個 Network 將 Big Data 結構化後,其預測能力(或者別的能力)將是非常強的。

三、Text Cube的強大

我們知道如果在 Database(也即 Data Cube)上做統計和分析是非常方便的。現在分析無結構的 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 進行聚類。

將這兩個步驟循環進行將得到很好的結果。從結果中可以看出其 F1-score 遠遠超出了其他 NLP 領域頂尖的研究。

(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》)

在這條路上,我們現在只是找到了幾個口子可以往前走。現在這還不是一條大路,只是一條小路。要想變成一條康庄大道,需要大家共同努力。這條路通寬了,將來我們就可以從大量的無結構的文本,變成大量的有用的知識。這是我要講的重點。