美團大腦:知識圖譜的建模方法及其應用 | 公開課筆記

分享嘉賓 | 王仲遠(美團 AI Lab NLP 中心負責人)

整 理 | 周翔

出 品 | AI科技大本營

作爲人工智能時代最重要的知識表示方式之一,知識圖譜能夠打破不同場景下的數據隔離,爲搜索、推薦、問答、解釋與決策等應用提供基礎支撐。

比如美團大腦就圍繞吃喝玩樂場景構建的生活娛樂領域的超大規模知識圖譜,爲用戶和商家建立起全方位的鏈接,對應用場景下的用戶偏好和商家定位進行更深度的理解,從而能夠提供更好的智能化服務。

近日,AI科技大本營邀請到了美團 AI Lab NLP 中心負責人、大衆點評搜索智能中心負責人——王仲遠博士,爲大家講解美團大腦的設計、構建以及挑戰,以及美團大腦在美團點評內的具體應用。

AI科技大本營將主要內容整理如下:

▌知識圖譜的重要性

這些年來人工智能正在快速地改變人們的生活,我們可以看到各家科技公司都紛紛推出人工智能產品或者系統,比如說在 2016 年的時候,谷歌推出的 AlphaGo ,一問世便橫掃圍棋界,完勝人類的冠軍。又比如說亞馬遜推出的 Amazon Go 無人超市,用戶只需下載一個 App,直接走進這家超市,拿走商品,無需排隊結賬便可離開,這是人工智能時代的新零售體驗。又比如說老牌的科技公司微軟推出的 Skype Translator,它能夠幫助不同國家、不同地區的人進行實時的語音交流。再比如說世界上最大的科技公司蘋果推出的 Siri 智能助理,讓每一個用蘋果手機的用戶都能夠非常便捷地完成各項的任務。所有這些人工智能產品的出現都依賴於背後各個領域突飛猛進的進展,比如說機器學習、計算機視覺、語音識別、自然語言處理等等。

作爲一家領先的生活服務電子商務平臺,美團點評在人工智能方面也積極地佈局。今年 2 月份,AI 平臺部 NLP 中心正式成立,我們的願景是用人工智能幫大家吃得更好,生活更好。語言是人類智慧的結晶,而自然語言處理是人工智能中最爲困難的問題之一,其核心是讓機器像人類一樣理解和使用語言。

我們希望在不遠的將來,當用戶發表一條評價的時候,能夠讓機器閱讀這條評價,充分理解用戶的喜怒哀樂。當用戶進入大衆點評的一個商家頁面時,面對成千上萬條用戶評論,我們希望機器能夠代替用戶快速地閱讀這些評論,總結商家的情況,供用戶進行參考。未來,當用戶有任何餐飲、娛樂方面的決策需求的時候,我們能夠提供人工智能助理服務,幫助用戶快速決策。

所有這一切都依賴於人工智能背後兩大技術驅動力:深度學習和知識圖譜。我將這兩個技術做了一個簡單的比較。

我們將深度學習歸納爲隱性的模型,它通常是面向某一個具體任務,比如說下圍棋、識別貓、人臉識別、語音識別等等,通常而言它需要海量的訓練數據,以及非常強大的計算機,同時它也有非常多的侷限性,比如說難以進行任務上的遷移,同時可解釋性比較差。

另一方面,知識圖譜是人工智能的另外一大技術驅動力,它能夠廣泛地適用於不同的任務,相比深度學習,知識圖譜的可解釋性非常強,類似於人類的思考。

我們可以通過上面的例子來觀察深度學習技術和人類是如何識別貓的,以及它們的過程有哪些區別。

2012 年,Google X 實驗室宣佈使用深度學習技術,讓機器成功識別了圖片中的貓。它們使用了 1000 臺服務器,16000 個處理器,連接成一個 10 億節點的人工智能大腦。這個系統閱讀了 1000 萬張從 YouTube 上抽取的圖片,最終成功識別出這個圖片裏有沒有貓。

我們再來看看人類是如何做的。對於一個 3 歲的小朋友,我們只需要給他看幾張貓的圖片,他就能夠識別出不同圖片中的貓,而這背後其實就是大腦對於這些知識的推理。

2011 年的時候,Science 上有一篇非常出名的論文,叫 How to Grow a Mind。這篇論文的作者來自於 MIT、CMU、UC Berkeley、Stanford 等美國牛校的教授。在這篇論文裏,最重要的一個結論就是,如果我們的思維能夠跳出給定的數據,那麼必須有 another source of information 來 make up the difference。

這裏的知識語言是什麼?對於人類來講,其實就是我們從小到大接受的學校教育,報紙上、電視上看到的信息,通過社交媒體,通過與其他人交流,不斷積累起來的知識。

這些年來,不管是學術界還是工業界都紛紛構建知識圖譜,有面向全領域的知識圖譜,也有面向垂直領域的知識圖譜。其實早在文藝復興時期,培根就提出了“知識就是力量”,在當今人工智能時代,各大科技公司更是紛紛提出知識圖譜就是人工智能的基礎。

全球的互聯網公司都在積極佈局知識圖譜。早在 2010 年微軟就開始構建知識圖譜,包括 Satori 和 Probase。2012 年,Google 正式發佈了 Google Knowledge Graph。到目前爲止,整個 Google Knowledge Graph 的規模在 700 億左右。目前微軟和 Google 擁有全世界最大的通用知識圖譜,Facebook 擁有全世界最大的社交知識圖譜,而阿里巴巴和亞馬遜則構建了商品知識圖譜。

如果按照人類理解問題和回答問題這一過程來進行區分,我們可以將知識圖譜分成兩類。我們來看這樣一個例子,如果用戶看到這樣一個問題,“Who was the U.S. President when the Angels won the World Series?”我想所有的用戶都能夠理解這個問題,也就是當 Angels 隊贏了 World Series 的時候,誰是美國的總統?

這是一個問題理解的過程,它所需要的知識通常我們叫它 common sense knowledge(常識性知識)。另外一方面,我想很多網友們應該回答不出這個問題,因爲它需要另外一個百科全書式的知識。

因此,我們將知識圖譜分成兩大類,一類叫 Common Sense Knowledge Graph(常識知識圖譜),另外一類叫Encyclopedia Knowledge Graph(百科全書知識圖譜)。這兩類知識圖譜有很明顯的區別。針對 Common Sense Knowledge Graph,通常而言我們會挖掘這些詞之間的 linguistic knowledge;對於 Encyclopedia Knowledge Graph,我們通常會在乎它的 Entities,和這些 Entities 之間的 Facts。

對於 Common Sense Knowledge Graph,一般而言我們比較在乎的 relation 包括 isA relation,isPropertyOf relation。對於 Encyclopedia Knowledge Graph,通常我們會預定義一些謂詞,比如說DayOfbirth,LocatedIn,SpouseOf。

對於Common Sense Knowledge Graph 通常帶有一定概率,但是 Encyclopedia Knowledge Graph 通常非黑即白,那麼構建這種知識圖譜的時候我們在乎的是 Precision(準確率)。

Common Sense Knowledge Graph 比較有代表性的工作包括 WordNet、KnowItAll、NELL,以及 Microsoft Concept Graph。而 Encyclopedia Knowledge Graph 則有 Freepase、Yago、Google Knowledge Graph,以及正在構建中的“美團大腦”。

在今天的課程中,我會跟大家介紹兩個代表性工作,分別是 Common Sense Knowledge Graph:Probase,以及我們正在做的美團大腦,它是一個 Encyclopedia Knowledge Graph。

▌常識性知識圖譜(Common Sense Knowledge Graph)

Microsoft Concept Graph 於 2016 年 11 月正式發佈,但是它早在 2010 年就已經開始進行研究,是一個非常大的圖譜。在這個圖譜裏面有上百萬個 Nodes(節點),這些 Nodes 有Concepts(概念),比如說 Spanish Artists(西班牙藝術家);有 Entities(實體),比如說 Picasso(畢加索);有 Attributes(屬性),比如 Birthday(生日);有 Verbs(動詞),有 Adjectives(形容詞),比如說 Eat、Sweet。也有很多很多的邊,最重要的邊,是這種 isA 邊,比如說 Picasso,還有 isPropertyOf邊。對於其他的 relation,我們會統稱爲 Co-occurance 。

這是我們在微軟亞洲研究院期間對 Common Sense Knowledge Graph 的 Research Roadmap(研究路線圖)。當我們構建出 Common Sense Knowledge Graph 之後,重要的是在上面構建各種各樣的模型。我們提出了一些模型叫 Conceptualization(概念化模型),它能夠支持 Term Similarity、Short Text Similarity 以及 Head-Modifier Detection,最終支持各種應用,比如NER,文本標註,Ads,Query Recommendation,Text Understanding。

到底什麼是 short text understanding?常識怎麼用在 text understanding 裏?下面我們可以看一些具體的例子。

當大家看到上面中間的文本的時,我想所有人都能夠認出這應該是一個日期,但是大家沒辦法知道這個日期代表什麼樣的含義。但如果我再多給一些上下文信息,比如 Picasso、Spanish,大家對這個日期就會有一些常識性的推理。我們會猜測這個日期很可能是 Picasso 的出生日期,或者是去世日期,這就是常識。

比如說當我們給定 China 和 India 這兩個 entity 的時候,我們的大腦就會做出一些常識性的推理,我們會認爲這兩個 entity 在描述 country。如果再多給一個 entity:Brazil,這時候我們通常會想到 emerging market。如果再加上 Russia,通常大家可能就會想的是金磚四國或者金磚五國。所有這一切就是常識性的推理。

再比如當我們看到 engineer 和 apple 的時候,我們會對 apple 做一些推理,認爲它就是一個 IT company,但是如果再多給一些上下文信息,在這個句子裏面由於 eating 的出現,我相信大家的大腦也會一樣地做出常識推理,認爲這個 apple 不再是代表 company,而是代表 fruit。

所以這就是我們提出來的 Conceptualization Model,它是一個 explicit representation。我們希望它能夠將 text,尤其是 short text,映射到 millions concepts,這樣的 representation 能夠比較容易讓用戶進行理解,同時能夠應用到不同場景當中。

在這一頁的 PPT 裏面,我們展示了 Conceptualization 的結果。當輸入是 pear 和 apple 的時候,那麼我們會將這個 apple 映射到 fruit。但是如果是 ipad apple 的時候,我們會將它映射到 company,同時大家注意這並不是唯一的結果,我們實際上是會被映射到一個 concept vector。這個 concept vector 有多大?它是百萬級維度的 vector,同時也是一個非常sparse的一個 vector。

通過這樣的一個 Conceptualization Model,我們能夠解決什麼樣的文本理解問題?我們可以看這樣一個例子。比如說給定一個非常短的一個文本,Python,它只是一個 single instance,那麼我們會希望將它映射到至少兩大類的 concept 上,一種可能是 programming language,另外一種是 snake。當它有一些 context,比如說 Python tutorial 的時候,那麼這個時候 Python 指的應該是 programming language。另外如果當它有其他的 adjective、verb,比如 dangerous 的時候,這時候我們就會將 Python 理解爲 snake。

同時如果在一個文本里麪包含了多個的 entity,比如說 DNN Tool,Python,那麼我們希望能夠檢測出在這個文本里面哪一個是比較重要的 entity,哪一個是用來做限制的 entity。

下面我將簡單地介紹一下具體是怎麼去做的。當我們在 Google 裏搜一個 single instance 的時候,通常在右側會出現這個 Knowledge Panel。對於 Microsoft 這樣一個 instance,我們可以看到這個紅色框所框出來的 concept,Microsoft 指向的是 technology company,這背後是怎麼去做的?

我們可以看到,Microsoft 實際上會指向非常非常多的 concept,比如說 company,software company,technology leader 等等。我們將它映射到哪一個 concept 上最合適?

如果我們將它映射到 company 這個 concept 上,很顯然它是對的,但是我們卻沒辦法將 Microsoft 和 KFC、BMW 這樣其他類型的產品區分開來。另外一方面,如果我們將 Microsoft 映射到 largest desktop OS vendor 上,那麼這是一個非常 specific 的一個concept,這樣也不太好,爲什麼?因爲這個 concept 太 specific,太 detail,它可能只包含了 Microsoft 這樣一個 entity,那麼它就失去了 concept 的抽象能力。

所以我們希望將 Microsoft 映射到一個既不是特別 general(抽象),又不是一個特別 specific(具體)的 concept 上。在語言學上,我們將這種映射稱之爲 Basic-level,我們將整個映射過程命名爲 Basic-level Conceptualization。

我們提出了一種計算 Basic-level Conceptualization 的方法,其實它非常簡單但有非常有效。就是將兩種的typicality做了一些融合,同時我們也證明了它們跟 PMI 和 Commute Time 之間的一些關聯。並且在一個大規模的數據集上,我們通過 Precision 和 NDCG 對它們進行了評價。最後證明,我們所提出來的scoring方法,它在 NDCG 和 Precision 上都能達到比較好的結果。最重要的是,它在理論上是能夠對 Basic-Level 進行很好的解釋。

下面我們來看一下當 instance 有了一些 context 之後,我們應該怎麼去進行處理。我們通過一個例子來簡單地解釋一下這背後最主要的思想。

比如說 ipad,apple,其中 ipad 基本上是沒有歧異的,它會映射到 device、product。但是對於 apple 而言,它可能會映射到至少兩類的 concept 上,比如說 fruit,company。那麼我們怎麼用 ipad 對 apple 做消歧呢?

方法其實也挺直觀的。我們會通過大量的統計去發現像 ipad 這樣的 entity,通常會跟company、product 共同出現。比如說 ipad 有可能會跟三星共同出現,有可能會跟 google 共同出現,那麼我們就發現它會經常跟 brand,company,product共同出現。於是我們就利用新挖掘出來的 knowledge 對 apple 做消歧,這就是背後最主要的思想。

除了剛纔這樣一個general context 以外,在很多時候這些 text 可能還會包含很多一些特殊的類型,比如說verb、adjective。具體而言,我們希望在看到 watch harry potter 時,能夠知道 harry potter 是 movie,當我們看到 read harry potter 時,能夠知道 harry potter 是 book。同樣的,harry potter 還有可能是一個角色名稱或者一個遊戲名稱。

那麼我們來看一看應該怎樣去解決這樣一件事情。當我們看到 watch harry potter 的時候,我們首先要知道,harry potter 有可能是一本 book,也有可能是一部 movie。我們可以算出的一個先驗概率,這通常要通過大規模的統計。同時我們要知道,watch 它有可能是一個名詞,同時它也有可能是一個動詞,並且我們還需要去挖掘,當 watch 作爲動詞的時候,它和 movie 有非常緊密的關聯。

所以我們本質上是要去做一些概率上的推理。在論文中我們就會將條件概率做非常細粒度的分解,最後做概率計算。

通過概率計算的方法,我們實際上就可以構建出一個非常非常大的離線的的知識圖譜,那麼我們在這個上面就可以有很多的 term,以及它們所屬的一些 type,以及不同term之間的一些關聯。

當我們用這樣一個非常大的離線知識圖譜來做 text understanding 的時候,我們可以首先將這個 text 進行分割處理,在分割之後,我們實際上是可以從這個非常大的離線知識圖譜截取出它的一個子圖。最後我們使用了 Random walk with restart 的模型,來對這樣一個在線的 subgraph 進行分類。

我們再來看,如果一個文本里包含了 multiple entities,要怎樣處理?我們需要做知識挖掘,怎麼做?首先我們可以得到非常多的 query log,然後我們也可以去預定一些 pattern,通過這種 Pattern 的定義,可以抽取出非常多 entity 之間 head 和 modifier 這樣的 relation,那麼在接下來我們可以將這些 entity 映射到 concept 上,之後得到一個 pattern。

在這個過程之中,我們要將 entity 映射到 concept 上,那麼這就是前面所提到的Conceptualization。我們希望之後的映射不能太 general,避免 concept pattern 衝突。

但是它也不能太 specific,因爲如果太 specific,可能就會缺少表達能力。最壞的情況,它有可能就會退化到 entity level,而 entity 至少都是百萬的規模,那麼整個 concept patterns 就有可能變成百萬乘以百萬的級別,顯然是不可用的。

所以我們就用到了前面介紹的 Basic-level Conceptualization 的方法,將它映射到一個既不是特別 general,也不是特別 specific 的 concept 上。

大家可以看一下我們能夠挖掘出來的一些 Top 的 concept patterns,比如說 game 和platform,就是一個 concept 和一個 pattern。它有什麼用?舉一個具體的例子,當用戶在搜 angry birds、ios 的時候,我們就可以知道用戶想找的是 angry birds 這款遊戲,而 ios 是用來限制這款遊戲的一個 platform。蘋果公司每年都會推出新版本的 ios,那麼我們挖掘出這樣的 concept pattern之後,不管蘋果出到 ios 15或者 ios 16,那麼我們只需要將它們映射到 platform,那麼我們的 concept patterns 就仍然有效,這樣可以很容易地進行知識擴展。

所以 Common Sense Knowledge Mining 以及 Conceptualization Modeling,可以用在很多很多的應用上,它可以用來算 Short text similarity,所以它可以用來做 classification,clustering,也可以用來做廣告的 semantic match,Q/A system,Chatbot 等等。

▌美團大腦——百科全書式知識圖譜(Encyclopedia Knowledge Graph)

在介紹完 Common Sense Knowledge Graph 之後,給大家介紹一下 Encyclopedia Knowledge Graph。這是美團的知識圖譜項目——美團大腦。

美團大腦是什麼?美團大腦是我們正在構建中的一個全球最大的餐飲娛樂知識圖譜。我們希望能夠充分地挖掘關聯美團點評各個業務場景裏的公開數據,比如說我們有累計 40 億的用戶評價,超過 10 萬條個性化標籤,遍佈全球的 3000 多萬商戶以及超過 1.4 億的店菜,我們還定義了 20 級細粒度的情感分析。

我們希望能夠充分挖掘出這些元素之間的關聯,構建出一個知識的大腦,用它來提供更加智能的服務。

那麼下面我簡單地介紹一下美團大腦是如何進行構建的。我們會使用 Language Model(統計語言模型)、Topic Model(主題生成模型) 以及 Deep Learning Model(深度學習模型) 等各種模型,希望能夠做到商家標籤的挖掘,菜品標籤的挖掘和情感分析的挖掘等等。

爲了挖掘商戶標籤,首先我們要讓機器去閱讀評論。我們使用了無監督和有監督的深度學習模型。

無監督模型我們主要用了LDA,它的特點是成本比較低,無需標註的數據。當然,它準確性會比較不可控,同時對挖掘出來的標籤我們還需要進行人工的篩選。至於有監督的深度學習模型,那麼我們用了 LSTM,它的特點是需要比較大量的標註數據。

通過這兩種模型挖掘出來的標籤,我們會再加上知識圖譜裏面的一些推理,最終構建出商戶的標籤。

如果這個商戶有很多的評價,都是圍繞着寶寶椅、帶娃吃飯、兒童套餐等話題,那麼我們就可以得出很多關於這個商戶的標籤。比如說我們可以知道它是一個親子餐廳,它的環境比較別緻,它的服務比較熱情。

下面介紹一下我們如何對菜品進行標籤的挖掘?我們使用了 Bi-LSTM 以及 CRF 模型。比如說從這個評論裏面我們就可以抽取出這樣的 entity,再通過與其他的一些菜譜網站做一些關聯,我們就可以得到它的食材、烹飪方法、口味等信息,這樣我們就爲每一個店菜挖掘出了非常豐富的口味標籤、食材標籤等各種各樣的標籤。

下面再簡單介紹一下我們如何進行評論數據的情感挖掘。我們用的是 CNN+LSTM 的模型,對於每一個用戶的評價我們都能夠分析出他的一些情感的傾向。同時我們也正在做細粒度的情感分析,我們希望能夠通過用戶短短的評價,分析出他在不同的維度,比如說交通、環境、衛生、菜品、口味等方面的不同的情感分析的結果。這種細粒度的情感分析果,目前在全世界都沒有很好的解決辦法。

下面介紹一下我們的知識圖譜是如何進行落地的。目前業界知識圖譜已經有非常多的成熟應用,比如搜索、推薦、問答機器人、智能助理,包括在穿戴設備、反欺詐、臨牀決策上都有非常好的應用。同時業界也有很多的探索,包括智能的商業模式、智能的市場洞察、智能的會員體系等等。

如何用知識圖譜來改進我們的搜索?如果大家現在打開大衆點評,當大家搜索某一個菜品時,比如說麻辣小龍蝦,其實我們的機器是已經幫大家提前閱讀了所有的評價,然後分析出提供這道菜品的商家,我們還會用用戶評論的情感分析結果來改進搜索排序。

此外,我們也將它用在了商圈的個性化推薦。當大家打開大衆點評時,如果你現在位於某一個商場或者商圈,那麼大家很快就能夠看到這個商場或者商圈的頁面入口。當用戶進入這個商場和商戶的頁面時,通過知識圖譜我們就能夠提供千人千面的個性化排序和個性化推薦。

在這背後其實使用了一個水波的深度學習模型,關於這個深度學習模型更詳細的介紹,大家可以參見我們在 CIKM 上的一篇論文。

所有的這一切其實還有很多的技術突破等待我們的解決。比如整個美團大腦的知識圖譜在百億的量級,是世界上最大的餐飲娛樂知識圖譜。爲了支撐這個知識圖譜,我們需要去研究千億級別的圖存儲和計算引擎技術。我們也正在搭建一個超大規模的 GPU 集羣,來支持海量數據的深度學習算法。未來當所有的這些技術都 ready 之後,我們希望能夠爲所有用戶提供智慧餐廳和智能助理的體驗。

【完】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章