美團外賣美食知識圖譜的迭代及應用

菜品是外賣交易過程的核心要素,對菜品的理解也是實現外賣供需匹配的重點。今天咱們將一次推送三篇文章,系統地介紹了美團外賣美食知識圖譜的構建和應用。《美團外賣美食知識圖譜的迭代及應用》會介紹外賣知識圖譜的體系全貌,包括菜品類目、標準菜品、美食基礎屬性和美食業務主題屬性。《外賣商品的標準化建設與應用》將重點介紹外賣菜品標準化建設思路、技術方案和業務應用。因爲外賣的業務特色是搭配成單,而《外賣套餐搭配的探索和應用》一文會針對性地介紹外賣套餐搭配技術的迭代以及應用實踐。但願對從事相關工做的同窗可以帶來一些啓發或者幫助。

本文系外賣美食知識圖譜系列的第一篇文章,這篇文章系統地介紹了美團外賣美食知識圖譜的標籤體系結構,包括菜品類目標籤、標準菜品名、美食基礎屬性(食材、口味、菜系等)和美食業務主題屬性(商家招牌、類目經典等)。在技術層面,舉例對標籤體系的具體構建方法進行介紹,例如基於BERT預訓練的分類模型。在應用方面,介紹了美食知識圖譜在美團外賣業務的具體應用,包括支撐套餐搭配的菜品表徵、提高搜索和商家推薦等業務的用戶體驗。前端

1. 背景

知識圖譜,旨在描述真實世界中存在的各類實體和實體之間的關係。在美團外賣業務中,美食商品是美團向用戶提供服務的基礎,美食知識圖譜的建設,能夠幫助咱們向用戶提供更加準確、更加豐富、更加個性化的美食服務。另外,美團外賣業務向用戶提供「到家」吃飯的服務,到店餐飲業務則向用戶提供「到店」吃飯的服務,而外賣和到店的商家和菜品有至關程度的重合,菜品數據的對齊,爲咱們進行線上(外賣場景)線下(到店場景)數據的對比分析也提供了一個很好的「抓手」。算法

本文介紹了外賣美食知識圖譜的建設,基於對外賣業務數據(外賣交易數據、商家錄入的商品標籤信息、專業描述PGC、用戶評論UGC、商品圖片等)和站外數據(百科、菜譜等)的挖掘和分析,造成了針對外賣美食的分類體系(美食類目標籤)和標準化體系(標準菜品名標籤),並進一步針對不一樣類型的美食商品,構建包含口味、食材等衆多美食基礎屬性體系。同時,依託美團外賣的業務特性,構建美食商品在外賣業務中涉及的主題屬性體系,例如商家招牌、商家主營、類目經典等。目前,外賣美食知識圖譜的標籤結構以下圖1所示:後端

圖1 美食知識圖譜標籤體系

外賣美食知識圖譜包含如下四種維度的標籤(以「宮保雞丁」爲例,以下圖2所示):安全

  1. 類目標籤:包括主食、小吃、菜品等類目,並在每一個類目下,造成了層級化的三百多種細分類目。例如「宮保雞丁」的類目是「菜品」。類目標籤是美食商品的基礎分類信息,根據類目的不一樣,美食商品的基礎屬性也不一樣。例如「菜品」類目存在「葷素」、「菜系」之分,而「酒水飲品」類目則沒有這種屬性標籤。
  2. 標準菜品名標籤:標準菜品名標籤主要爲標準商品信息,例如「宮保雞丁(招牌必點)」的標準商品是「宮保雞丁」。因商家輸入商品的多樣性,標準菜標籤的建設,實現了相同美食的聚合。
  3. 基礎屬性:根據美食商品的類目不一樣,構建包括美食的食材、菜系、口味、製做方法、葷素等基礎屬性。例如「宮保雞丁」的菜系是「川菜」,食材有「雞胸」和「花生」,葷素標籤是「葷」。基礎屬性的挖掘對咱們理解商品起到關鍵做用,在商品的篩選、展現、商品表徵等業務需求方面,提供基本的數據特徵。
  4. 主題屬性:主題屬性主要體現美食的業務主題,包括美食在外賣的交易行爲、美食在商家的定位、美食在用戶反饋中的好評度等。例如某商家的「宮保雞丁(招牌必點)」是該商家的「招牌菜」。

圖2 外賣美食知識圖譜樣例

菜品對齊,涉及到菜品數據,來自外賣在線菜品、點評推薦菜品、美團商家套餐等。網絡

2. 需求及挑戰

目前,外賣美食知識圖譜已經應用於美團外賣的多個場景,例如推薦、搜索、套餐搭配、運營分析等。業務的深刻發展,對美食知識圖譜的建設和迭代也提出了更加複雜的要求,例如:運維

  1. 美食商品愈來愈多樣,相應的美食知識圖譜則須要愈來愈精細和準確。例如美食知識圖譜的類目標籤從零開始,建設了包含一百多種類目的類目標籤體系。但隨着業務發展,部分類目存在明顯的可細化空間。
  2. 圖譜標籤的挖掘,偏向於靜態標籤的挖掘,對於相同圖譜標籤下的美食,缺乏業務相關的主題屬性描述。例如一樣包含「花生」的「酒鬼花生」,相比「宮保雞丁」,更能表明「花生」相關的美食。
  3. 外賣美食知識圖譜主要描述外賣美食商品,而同一商家的美食商品,也可能會出如今該店的線下收銀等業務中。經過對齊不一樣業務的美食商品,能夠在美食實體層面,完善美食知識圖譜對商家美食的描述,從而指導商品和商家運營。

爲知足業務需求,咱們對類目標籤和基礎屬性進行了迭代和優化;同時,構建了業務相關的主題屬性。另外,咱們將外賣菜品和到餐菜品進行了實體對齊。其中,挖掘主題屬性,即挖掘業務相關的圖譜知識,是一個須要綜合考慮外賣業務和商品自己屬性的複雜過程。外賣菜品和到餐菜品的對齊,則須要綜合考慮菜品多樣性表述和菜品主體歸一。學習

外賣美食知識圖譜的迭代難點主要體如今如下幾點:測試

  1. 業務相關的主題屬性挖掘,並無現成的體系能夠參考,在構建過程當中,涉及大量的分析和體系設計工做。
  2. 主題屬性的挖掘,最重要的是須要從用戶的需求出發,分析用戶對商品的需求點,並將其反映在商品的圖譜層面,造成相應的主題屬性標籤。同時,商家的商品信息是一個動態變化的過程,例如銷量、供給、商品標籤等,先後兩天的信息可能就會徹底不一樣。所以業務性主題屬性的挖掘,一方面須要建設相對完善的體系,另外一方面也須要適配業務數據的動態變化過程,也就在圖譜挖掘和需求匹配上帶來了極大的挑戰。
  3. 商家錄入菜品時,對菜品存在多樣性表述,例如同一道菜在份量、口味、食材等方面存在的差別。菜品對齊時,則須要對這些多樣性表述進行平衡,例如是否忽略份量因素等。但目前並無現成的對齊標準能夠參考。

3. 外賣美食知識圖譜的迭代

因篇幅受限,本文主要對其中菜品類目,不一樣類目、口味、食材、葷素、作法下的經典美食,健康餐等圖譜標籤的挖掘進行介紹。其中,在圖譜標籤挖掘中涉及到的數據來源和採用的技術,大體以下表所示:優化

標籤 技術
菜品類目 BERT分類模型
不一樣類目、口味、食材、葷素、作法下的經典美食 數據統計、實體識別、關係識別、產品定義(綜合考慮銷量和供給量)
健康餐 分類模型+產品定義(符合必定食材、作法、功效的商品)

3.1 菜品類目

菜品類目標籤的挖掘,主要解決美食菜品是什麼類別的問題。實現這一目標的挑戰有兩方面:首先是類目體系如何創建,其次是如何將商品連接到相應的類目節點。在最開始的體系構建時,咱們從美食商品的特色以及業務的具體需求出發,從零開始創建起包含一百多種類別的層次化類別體系,部分實例如圖3(左)所示。同時,構建基於CNN+CRF的分類模型,對美食商品進行類目分類,如圖4(左)所示。spa

然而,隨着業務的發展,已有分類目已經沒法支持現有業務的需求。例如:原先的類目體系,對熱菜描述不夠詳細,譬如沒有區分熱菜的作法等。爲此,咱們與外賣的供給規劃部合做,將類目體系擴充到細分的三百多種類目標籤,劃分更加詳細,覆蓋也更加全面,部分實例如圖3(右)所示。

圖3 類目體系的迭代

類目的細分,要求模型更加精確。在進行類目識別時,可用的數據包括菜品名、商家店內側邊欄分類名稱、商家名等。考慮到可以使用的信息大多爲文本信息,而且,商家錄入的文本並無必定的規範,菜品名也多種多樣,爲提升模型精度,咱們將原先的CNN+CRF的分類模型進行了升級,採用模型容量更大的BERT預訓練+Fine-Tuning的模型。模型結構以下圖4(右)所示。

圖4 類目模型迭代

3.2 不一樣類目、口味、食材、葷素、作法下的經典美食標籤

咱們在建設主題屬性時,首先在基礎屬性標籤維度,綜合考慮商品的銷量和供給狀況,對菜品進行選優。例如類目下的經典美食等。但在建設過程當中,咱們發現菜系的經典美食識別,假如依據銷量和供給進行識別,則識別結果傾向於菜系下的「家常菜」,所以將經典菜系美食進行單獨識別。

類目經典美食等指的是銷量較高、供給量豐富的類目美食商品,例如主食經典美食、小吃經典美食。口味、食材、作法經典美食標籤等也是類似的定義。

在建設過程當中,咱們發現,假如直接在商品維度進行識別,由於商品的更新頻率相對較高,對新錄入的暫時沒有銷量或者暫時銷量低的美食商品不友好,銷量水平須要考慮在線時間的影響。所以咱們使用標準菜品進行類目、口味經典等的識別,並經過標準菜品,泛化到具體的美食商品上。

其中,「標準菜品」借用其它類電商業務中的「標品」概念,雖然絕大部分菜品的生產都不是標準化的過程,可是這裏咱們只關注主要的共性部分,忽略次要的差別部分。例如「西紅柿雞蛋」、「番茄炒蛋」都是同一類菜品。從結果上看,目前咱們聚合出來的「標準菜品」達到幾十萬的量級,而且可以覆蓋大部分美食商品。

藉助標準菜品,咱們將類目、口味、食材、葷素、作法等標籤聚合到標準菜品維度,並將銷量、供給量進行標準菜品維度計算,這樣就解決了商品在線時間長短的問題。在具體打標過程當中,例如類目經典,咱們基於銷量和供給,在類目維度對標準菜進行排序,並選擇Top n%標準菜進行打標,做爲類目經典下的商品。例如在「麪食」類目下,「西紅柿雞蛋麪」的銷量和供給量均在Top n%的水平,所以就認爲「西紅柿雞蛋麪」是一個麪食類經典美食。

3.3 健康餐

這裏的健康餐主要指低脂低卡餐,即低卡路里、低脂肪、高纖維、製做簡單、原汁原味、健康養分的食物,通常爲蔬菜水果(如羅勒、甘藍、秋葵、牛油果等),富含優質蛋白的肉類(如三文魚、蝦、貝類、雞胸等),穀物(主要以粗糧爲主,如燕麥、高粱、藜麥等)。烹飪方法也堅持「少油,少鹽,少糖」的原則,主要作法爲蒸、煮、少煎、涼拌等。

健康餐的識別,主要挑戰在於自己的樣本較少,可是由於健康餐的特殊性,商家在進行商品錄入時,通常會對其進行描述,例如指出這個美食商品是「健康」的、「低卡」的、「健身」類型的,所以咱們構建了一個分類模型,對健康餐進行識別。可以使用的數據,包括商品名、商家導航欄、商家名稱、商家對商品的描述等。而商家類目與商品的類目處於迭代狀態,所以並無對這部分信息進行使用。

識別過程以下

  • 訓練數據構建:因健康餐自己的佔比相對較少,所以首先總結和健康餐相關的關鍵詞,使用關鍵詞進行文本匹配,採樣機率相對較高的健康餐數據,進行外包數據標註。此處,咱們總結出「沙拉、穀物飯、穀物碗、低油、低卡、無糖、減脂、減肥、輕食、輕卡」等關鍵詞。
  • 模型構建:同一個商品因其中使用的配料不一樣,在健康餐識別方面也會不一樣,例如菜名爲「招牌沙拉」的商品,假如沙拉中添加了芝士,則有可能商品就不會被識別成健康餐。爲了綜合考慮商家錄入的商品信息,使用商品名、商家名、導航欄名稱、商家錄入的商品描述等。這四種數據爲不一樣尺度的數據源,商品名等爲相對較短的文本,所以在模型構建時,考慮使用相似Text-CNN[1]的結構進行字級別的特徵提取;商品描述則是相對較長的文本,所以在構建時,考慮使用相似Transformer[2]的結構進行特徵提取,使用Multi-head Attention的機制,提取長文本中,「字」層面的特徵。具體結構以下:

    • 採用了兩種結構:Multihead-attention(Transformer)和Text-CNN。實驗發現,採用兩種結構聯合的方式,比採用單一結構準確率高。
    • 在建模時,均使用字級別特徵處理,避免由於分詞形成的偏差,同時也避免未登陸詞的影響。
  • 數據迭代加強:由於使用關鍵詞進行樣本構建,在模型訓練時,模型會朝着包含這些關鍵詞的方向學習,所以存在漏召回的狀況。在這裏,咱們進行了必定的訓練數據加強,例如在評估時,選取可識別出健康餐的商家,對該商家中漏召回的數據進行訓練數據補充;同時,對部分特徵明顯的關鍵詞,進行補充並擴充正例。經過對訓練樣本的屢次擴充,最終完成健康餐的高準確率識別。

圖5 健康餐識別模型

3.4 菜品實體對齊

考慮到同一商家菜品在不一樣業務線的菜品名可能略有差別,咱們設計了一套菜品名匹配的算法,經過拆解菜品名稱的量詞、拼音、先後綴、子字符串、順序等特徵,利用美食類目識別、標準菜品名抽取、同義關係匹配等進行菜品實體對齊。例如:碳燒鴿=炭燒鴿、重慶辣子雞=重慶歌樂山辣子雞、茄子肉泥蓋飯=茄子肉泥蓋澆飯、番茄炒蛋=西紅柿炒蛋等。目前,造成以下圖的菜品歸一體系:

圖6 菜品歸一體系

4. 應用

這裏對外賣美食知識圖譜的應用,進行舉例說明。主要涉及套餐搭配、美食商品展現等。

4.1 套餐搭配-表徵菜品

爲知足用戶的搭配成單需求,進行套餐搭配技術的探索。套餐搭配技術的關鍵在於,對美食商品的認知,而外賣美食知識圖譜,則提供了最全面的數據基礎。咱們基於同商家內的商品信息和歷史成單信息,對商品的搭配關係進行擬合,參考指針網絡[2]等結構,構建了基於Multi-Head Attention[3]的Enc-Dec模型,具體的模型結構以下:

  1. Encoder:對商家菜單進行建模,因菜單爲無序數據,所以採用Attention的方式進行建模。商品的信息主要包括商品名、商品圖譜標籤、交易統計數據等三部分。

    1. 對菜名、商品標籤分別進行Self-Attention計算,獲得菜名和商品標籤對應的向量信息,而後與交易統計數據進行Concat,做爲商品的初步表示。
    2. 對商品的初步表示進行Self-Attention計算,以對同商家的商品有所感知。
  2. Deocoder:對搭配關係進行學習,基於當前已選擇的商品,對下一個可能的搭配進行預估。

    1. 在搭配輸出時,使用Beam-Search進行多種搭配結果的輸出。
    2. 爲了保證輸出搭配中的商品的多樣性,添加Coverage機制[2]。
  3. 訓練以後,將Encoder部分分離,進行離線調度,可實現天天的向量產出。

具體的模型結構以下圖所示:

圖7 套餐搭配模型

基於外賣美食知識圖譜構建的套餐搭配模型,在多個入口(「滿減神器」、「對話點餐」、「菜品詳情頁」等)取得轉化的提高。

4.2 交互式推薦

經過分析外賣用戶的需求,發現用戶存在跨店類似商品對比的需求,爲打破商家界限的選購流程特色,提供便捷的跨店對比決策方式。交互式推薦,經過新的交互模式,打造推薦產品的突破點。在用戶的交互過程當中,根據用戶的歷史偏好、實時的點擊行爲,向用戶推薦可能喜歡的美食商品。以下圖8(左)所示,在向用戶進行同類美食的推薦時,美食知識圖譜中的標準菜品標籤提供了主要的數據支撐。

4.3 搜索

搜索做爲外賣核心流量入口,承載了用戶明確的外賣需求。用戶經過輸入關鍵詞,進行菜品檢索。在實際使用中,從搜索的關鍵詞類型看,多是某個具體的菜品,也多是某種食材、某種菜系。在美食知識圖譜中,圖譜標籤的高準確率和高覆蓋,有助於提高搜索入口的用戶體驗,最新的實驗也代表了這一點(新增部分食材、菜系、功效等標籤,在搜索的線上實驗效果正向)。

圖8 交互式推薦和搜索

5. 將來規劃

5.1 場景化標籤的挖掘

美食與咱們的生活息息相關,美團外賣天天爲千萬用戶提供美食方面的服務。然而,用戶的需求是多種多樣的,在不一樣的環境、不一樣的場景下,對美食的需求也不盡相同。目前美食知識圖譜挖掘,在場景相關的標籤較爲缺失,例如某些節氣、節日等圖譜知識;特定天氣狀況下的圖譜知識;特定人羣(增肌人羣、減肥人羣)等的圖譜知識。接下來咱們會在場景化標籤的挖掘方面進行探索。

在挖掘方法方面,目前的挖掘數據主要爲文本信息。在商品圖片、描述、結構化標籤等信息的融合方面,挖掘不夠深刻,模型的效果也有待提高。所以在多模態識別模型方面,咱們也會進行相應的探索。

5.2 基於圖譜的推薦技術研究

美團外賣在理解美食的基礎上,向用戶進行美食推薦,以更好地知足用戶對美食的需求。外賣美食知識圖譜和外賣業務數據,做爲實現這一點的數據基礎,包含上億的節點信息和十幾億的關係數據。經過對用戶的商品搜索、點擊、購買等行爲進行建模分析,能夠更加貼合用戶的需求,向用戶進行商品推薦,例如,將美食知識圖譜和外賣行爲數據融合,以用戶爲起點,進行隨機遊走,向用戶推薦相關的美食。在接下來的圖譜應用方面的探索中,咱們也會更加深刻的探索基於美食知識圖譜和用戶行爲的推薦技術。

6. 參考文獻

  • [1] Kim Y. Convolutional neural networks for sentence classification[J]. arXiv preprint arXiv:1408.5882, 2014.
  • [2] See A, Liu P J, Manning C D. Get to the point: Summarization with pointer-generator networks[J]. arXiv preprint arXiv:1704.04368, 2017.
  • [3] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in neural information processing systems. 2017: 5998-6008.
  • [4] Hamilton W, Ying Z, Leskovec J. Inductive representation learning on large graphs[C]//Advances in Neural Information Processing Systems. 2017: 1024-1034.

7. 做者簡介

楊林、郭同、海超、懋地等,均來自美團外賣技術團隊。

閱讀美團技術團隊更多技術文章合集

前端 | 算法 | 後端 | 數據 | 安全 | 運維 | iOS | Android | 測試

| 在公衆號菜單欄對話框回覆【2020年貨】、【2019年貨】、【2018年貨】、【2017年貨】等關鍵詞,可查看美團技術團隊歷年技術文章合集。

| 本文系美團技術團隊出品,著做權歸屬美團。歡迎出於分享和交流等非商業目的轉載或使用本文內容,敬請註明「內容轉載自美團技術團隊」。本文未經許可,不得進行商業性轉載或者使用。任何商用行爲,請發送郵件至tech@meituan.com申請受權。

相關文章
相關標籤/搜索