外卖商品的标准化建设与应用
外賣菜品命名個性化程度高,為運營分析、召回排序、后臺管理等業務帶來一定的困難。本文系外賣美食知識圖譜系列的第二篇文章,介紹了外賣從零到一建設菜品標準化體系的過程及方案,涉及的主要技術包括NLP領域的實體抽取、文本匹配、關系分類,以及CV領域的圖像匹配等。最后,通過標準名在外賣業務中的應用實踐,驗證了標準名體系建設的價值和意義。
1. 背景及目標
商品作為外賣交易過程中的核心要素,決定了供需匹配的精準度,直接影響交易行為是否可以達成。外賣平臺美食、甜點、飲品類在線商品有億級之多,其中很多是屬性信息一致的相同商品。建立對商品的標準化描述、聚合相同商品,是很多業務場景的訴求。
供銷分析場景:想分析一下望京的商家都售賣哪些菜品,有多少商家賣“西紅柿炒雞蛋”?
遇到的問題:由于菜品是非標品,并且商家對菜品命名的個性化程度也較高,因此在外賣平臺,同一個菜品名出現不同的命名方式;例如“西紅柿炒雞蛋”有西紅柿炒蛋、小番茄炒蛋、西紅柿雞蛋、京城三絕~番茄炒蛋【正價小份菜】等,沒有辦法簡單通過關鍵字進行聚合。
主題推薦場景:想出一個菜品粒度的主題,快速篩選“小龍蝦”、“烤魚”、“雞公煲”、“黃燜雞”等熱門菜品?
遇到的問題:商品分類的顆粒度不夠精細,無法快速找到適合顆粒度的菜品。
商家上單場景:像“魚香肉絲”這樣普遍的菜品,每個商家上單都需要錄入食材、口味、做法、菜系、葷素等標簽,錄入成本較高,能不能像淘寶一樣,選擇“iPhone 12”,它的屬性就能夠自動關聯。
遇到的問題:沒有將菜品的屬性標準化,菜品和屬性之間沒有關聯關系。
基于上述業務應用的痛點,啟動外賣商品的標準化建設。目標是建立商品的標準化名稱,實現對相同商品的聚合,從而為業務提供合理粒度的概念劃分,賦能運營端供銷分析、用戶端個性化召回排序、商家端標簽生產。
2. 業界調研
對于業界的參考,主要參考淘寶標準化SPU建設。SPU在淘寶體系中決定了商品是什么,是商品信息聚合的最小單位,由關鍵屬性+綁定屬性來構成。
- 關鍵屬性:用來約束和定義一個商品的,比如iPhone X,決定他的就是“蘋果”這個品牌和“X”這個系列。
- 綁定屬性:是關鍵屬性的補充和細化,比如當iPhone X已經明確了這個產品后,其他的屬性也確定,比如網絡模型,屏幕尺寸等,進一步補充這些屬性內容,逐步明確了一個產品。
可見淘寶對于SPU的建設,實際上是對屬性的建設,例如格力空調S1240,通過“格力”品牌、“空調”類目、“S1240”型號來標準化、唯一化。
但對于餐飲行業,對于核心屬性食材“牛肉”、做法“炒”、口味“辣”,都無法確定是什么菜,更談不上唯一化;但如果通過“小炒黃牛肉”來標準化,行業/用戶對其有普遍的認知,較固定的食材口味做法,適合用來進行標準化。因此淘寶是標準化屬性,而餐飲是標準化菜品名稱,所以我們稱之為標準菜品名。
3. 問題分析及挑戰
淘寶的標準化主要針對標品,而餐飲標準化都是針對非標品,難度較大,面臨著個性化問題、錄入不規范、粒度無行業標準、認知局限性等挑戰。
3.1 個性化問題
餐飲商家可以較低成本的自定義生產,個性化程度較高,同一個菜品在不同商家的命名可能不同,需要大量的同義詞聚合,而同義詞的召回是最大的難點(如何將潛在的同義詞挖掘出來進行標注)。例如,京城三絕-番茄炒蛋【正價小份菜】、西紅柿炒蛋(小份)、小番茄炒蛋、西紅柿炒土雞蛋(小份),都表示“西紅柿炒蛋”這個商品。
3.2 錄入不規范
商家在錄入商品名稱時,存在缺失關鍵信息的問題,例如“繽紛水果”是水果拼盤、飲品還是披薩,“韭菜雞蛋”是包子還是餃子。除商品名稱外,需要借助商家分類,商品左側欄tag等相關信息,對名稱進行推理和補全。
3.3 粒度無行業標準
在進行標準化處理時,沒有統一的標準,粒度難以把控:過粗容易產生非菜品錯誤(例如:“香辣雞腿”->“雞腿”),過細則標準名內聚性偏弱(例如:“傳統黃燜雞【大碗】”本身粒度過細,需要提煉到“黃燜雞”)。
3.4 認知局限性
中華美食文化博大精深,對于一些不為大眾所熟知的小眾或者地方特色菜品,需要具有一定的專業背景知識,例如“炒雞”也是一個標準的名稱,還并非商家沒有填寫完整。
4. 方案
商品標準化的整體方案如圖所示:首先,基于美食、甜點飲品類商家全量在線的億級商品,通過名稱清洗、置信度判別、人工檢驗,獲得近菜名主干;通過同義詞挖掘,對主干名進一步聚合壓縮,映射到標準名主詞上;對于單個商品,進行名稱糾錯、清洗,通過模型匹配,建立商品-標準名的映射;為了滿足不同業務場景的聚合粒度要求,通過上下級關系挖掘、深度遍歷,進一步構建標準名層級樹。分別對名稱聚合、匹配映射、層級構建三個模塊,涉及的算法模型進行介紹。
4.1 名稱聚合
清洗后的主干名仍然存在很多同義說法,比如土豆燒牛肉、牛肉燒土豆、洋芋燒牛肉、小土豆燒牛肉,表示相同的商品。目標通過挖掘這種潛在的同義關系,進一步提升名稱的內聚性。在迭代過程中,先后采用了規則匹配和語義匹配的方法,挖掘潛在同義詞;聚合后,根據流行度判別其中的主詞,并將原始主干詞映射至標準名主詞上。分別對兩種同義詞挖掘方法介紹如下。
4.1.1 規則匹配
一期首先采用了規則匹配的方法,利用NER模型對主干名進行成份識別,結合知識圖譜構建的屬性同義詞表,判別兩個主干名是否是同義關系。
如圖所示,其中“牛肉燒土豆”通過名稱解析得到牛肉-食材,燒-做法,土豆-食材;“洋芋燒牛肉”通過名稱解析得到洋芋-食材,燒-做法,牛肉-食材。對比兩個主干名的成份詞,其中土豆和洋芋是一對同義詞,其余成份相同,進而獲得二者之間是同義關系。
通過這種方式,挖掘了十萬級同義詞。根據標準名覆蓋的商品供給數計算流行度值,將更流行度高的作為主詞;人工校驗后補充到標準名體系,提升了名稱的聚合度。
4.1.2 語意匹配
由于規則匹配挖掘到的同義詞有限,比如“擔擔面”和“擔擔湯面”,根據NER模型,擔擔面和湯面都會被識別成類目。如此,兩個主干名是無法建立同義關系的。
我們二期調研了一些匹配模型,借鑒搜索算法組的經驗,采用BERT+DSSM的語義匹配模型進行同義關系的擴覆蓋。如圖所示,首先基于一期積累的同義詞,通過組內生成正例、跨組交叉生成負例的方式,構造百萬級樣本,訓練了一版基礎模型;為了進一步優化模型性能,通過主動學習和數據增強兩種方式,對樣本數據進行了迭代。
主動學習的方式是先利用基礎模型,圈定一批待標注的相似樣本,交與外包標注,將標注正確的樣本補充至已有同義詞中,標注錯誤的樣本作為負例加入訓練集,用于模型的優化迭代。通過主動學習的方式,補充了萬級樣本,模型準確率取得了明顯提升。
進一步分析結果,我們發現了一批很有特點的Bad Case,比如紅燒獅子頭和紅燒獅子頭蓋飯、香椿拌豆腐和拌豆腐等,它們都屬于字面相似度很高,但核心成份不同的匹配錯誤。基于這個特點,先根據字面距離圈定了一批字面相似度高的樣本,再利用名稱解析模型對它們進行成份識別,找出其中的負例。通過這種方式,在不增加標注成本的情況下,自動補充了十萬級樣本,進一步提升了模型準確率。
利用語義匹配模型,新增了十萬級同義詞,進一步提升了標準名的內聚性。
4.2 匹配映射
在挖掘到的標準名詞表和同義詞基礎上,為億級在線商品建立“商品-標準名”映射(如“招牌蛋炒小番茄(大份)”映射到“西紅柿炒雞蛋”),以實現對相同商品的標準化描述與聚合。采用“文本+圖像”相結合的匹配模型,覆蓋了絕大部分的美食、甜點飲品類商家的在線商品。
4.2.1 文本匹配
文本匹配流程如圖4所示,整體上包括召回、排序兩個階段。首先,對商品名稱中的規格、分量等描述信息進行清洗,將清洗后的商品名和標準名進行2-Gram切片,通過關聯相同切片的方式召回待匹配的標準名;基于召回的標準名,通過計算Jaccard距離,保留其中Top 20的標準名;在此基礎上,利用BERT向量化模型,生成商品名和標準名的向量表示,通過計算Jaccard字面距離以及Cosine向量相似度,獲取其中綜合得分最高的標準名。
其中,BERT向量化模型是基于上文提到的同義語義匹配模型,通過級聯一維類型編碼的方式,對標準名和商品名加以區分,改造成非對稱的標準名匹配模型。之所以進行這一改造,是因為與同義匹配不同,標準名匹配是非對稱的,如應該將“香鍋盔”匹配上相對抽象的標準名“鍋盔”,而不是匹配上一個更加具體的標準名“五香鍋盔”。改造后,匹配準確率提升顯著。
4.2.2 圖像匹配
由于菜品名稱長度有限及商家命名不規范,會導致僅從菜品名稱中獲取的信息有限,而無法建立到標準名的匹配。通過引入商品圖片信息,提升對文本信息不全商品的匹配準確和覆蓋。
圖像匹配采用的是多分類模型,根據標準名層級聚合(詳見3層級構建)后的頂級、二級,選擇待匹配的標準名標簽,并根據文本匹配結果構造樣本集。由于采用大規模非人工標注樣本,不可避免地要解決樣本噪聲問題。在本場景下,噪聲主要有兩個主要來源:一是文本信息不全,導致樣本標簽錯誤;二是由于頂級、二級聚合程度高,導致分類粒度過粗,需要細分多個標簽。針對這些問題,采用樣本和模型迭代優化的方式,根據基礎樣本集訓練初版模型,利用模型挖掘噪聲數據,人工校驗后進行模型微調。如此迭代,實現低標注成本的模型優化。
圖像分類模型選取了對MBConv模塊的參數進行精細化調整的Basebone網絡Efficientnet,通過調整網絡的分辨率、深度、寬度,確定最優組合。噪聲挖掘方法首先通過Metric-Learn的方法,學習獲得每個類別的聚類中心,及類內樣本與聚類中心距離的均值、方差、中位數,對其進行排序挖掘出類內離散度較大的類別;再借助分類模型在驗證集上的預測、O2U-Net和Forgetting Event 挖掘樣本噪聲。通過上述方法優化模型,提升對噪聲樣本的魯棒性。
4.3 層級構建
推薦場景下,為了保證用戶的個性化和多樣性體驗,需要對商品進行合理粒度的聚合。對于商品列表排序場景,現有的類目過粗會導致多樣性不足,標準名過細又會導致結果重復。目標是建立一個層級化商品體系,為業務提供合理的聚合粒度。通過關系挖掘、層級遍歷,構造萬級頂點的層級樹,支持了商品列表、美食排行榜、交互式推薦等業務的上線和優化。構建方法包括規則匹配和模型判別,分別對這兩類方法進行介紹。
4.3.1 規則匹配
規則匹配方法是基于已有的NER模型和屬性詞表,通過結構化匹配的方法,挖掘到十萬級上下級關系,進一步遍歷生成萬級頂點的標準名層級樹。這種方法比較簡單且基于已有工作,開發周期短,在項目初期快速支持上線,并取得了明顯的業務收益。
4.3.2 模型判別
規則匹配方法由于NER模型錯誤和屬性詞關系缺少,導致挖掘到的關系有限,需要通過判別模型進一步提升泛化性。基于BERT的關系分類模型如圖8所示,對待分類一對標準名用[SEP]進行拼接,并在開頭增加[CLS]標識符;將拼接結果編碼后,傳入BERT模型,取出[CLS]位的Embedding;再接一個全聯接層和Softmax層,輸出關系分類結果。標準名關系包括:同義、上級、下級、無關系,一共四個類別。
樣本數據包括簡單例和難例兩部分,其中:簡單例基于已有同義詞、上下級,以及同義詞組間交叉生成無關系,一共構造百萬級樣本;在此基礎上,進一步利用已有的向量化模型,召回相似度較高的標準名對,交與外包標注其類別。第二類樣本更加貼近實際分類場景,且屬于混淆度較高的分類難例。
利用第一類樣本預訓練初版模型,并在此基礎上,利用第二類樣本對模型進行微調,進一步提升了分類模型準確率。經人工校驗,進一步補充了萬級詞關系。
5. 在外賣業務中的應用
標準名作為品類和商品的中間層,為業務提供了更加豐富、合理的聚合粒度,支持了流量轉化的策略優化,以及系列產品形態的開發上線。商品列表通過接入標準名層級,實現對商品合理粒度的聚合,解決了線上商品重復的問題;標準名作為基礎數據,支持了美食排行榜的開發和上線,幫助提升用戶的決策效率;針對用戶當前訪問的商品,利用標準名召回相關商品,實現交互式推薦。標準名作為重要的基礎數據,支持了產品形態多元化、推薦策略優化,對于提升用戶粘性、流量轉化,搭建商家用戶友好的平臺生態,具有重要的價值和意義。
6. 總結與展望
目前已完成基本的體系建設,并成功應用于不同的場景、取得業務收益。已經建成的標準名層級體系,覆蓋了外賣絕大多數的在線商品。標準名作為基礎和特征數據,應用到用戶端的商品列表、美食排行榜等業務場景,支持策略優化、帶來流量收益;同時,也通過服務接口的形式,跨部門支持SaaS點餐推薦的模型優化,以提升用戶體驗和業務收益。
標準名作為重要的商品特征數據,應用的業務場景廣泛。在未來的工作中,需要持續迭代優化,保證標準名自身的準確性和質量;同時加深業務理解,根據業務需要優化層級體系,為業務提供更加合理的聚合粒度,提升轉化收益;此外,重點建設一批用戶感知強、供給覆蓋高的標準名,降低業務方的接入成本和提高收益。
6.1 詞表及同義詞優化
標準名詞表體量大、同義關系復雜,詞表建設不是一蹴而就的,需要長期的迭代和優化。針對標準名詞表中存在的非菜品、不規范等錯誤,以及同義詞聚合不足、過度的問題,采用算法圈定+人工標注的方式,通過模型挖掘潛在同義詞、圈定問題詞組;人工校驗后,進行批量補充和修改,持續優化詞表、同義詞。
6.2 層級結構合理化
目前標準名層級是通過規則和模型的方式直接生成的,人工參與度較低,與業務場景的結合不夠深入。后續會結合業務需要,明確剪枝、聚合粒度準則,合理化層級結構,優化層級的合理性。從而更加靈活、高效地支持不同的業務應用,提升落地效果。
6.3 核心標準名建設
標準名有20萬之多,為業務應用造成一定的選擇成本、帶來不便。結合業務需要,圈定其中用戶感知強、供給覆蓋高、優質的標準名,作為核心標準名進行重點建設。核心標準名輕量且精煉,更加貼近業務需要,可以幫助業務方降低接入成本、提高收益。
7. 參考文獻
- [1] Devlin J, Chang M W, Lee K, et al. BERT: Pre-training of deep bidirectional transformers for language understanding[J]. arXiv preprint arXiv:1810.04805, 2018.
- [2] Lample G, Ballesteros M, Subramanian S, et al. Neural architectures for named entity recognition[J]. arXiv preprint arXiv:1603.01360, 2016.
- [3] Chen Q, Zhu X, Ling Z, et al. Enhanced lstm for natural language inference[J]. arXiv preprint arXiv:1609.06038, 2016.
- [4] Huang P S, He X, Gao J, et al. Learning deep structured semantic models for web search using clickthrough data[C]//Proceedings of the 22nd ACM international conference on Information & Knowledge Management. 2013: 2333-2338.
- [5]Tan M , Le Q V . EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks[J]. 2019.
8. 作者簡介
劉柳、懋地、崇錦、曉星等,均來自美團外賣技術團隊。
閱讀美團技術團隊更多技術文章合集
前端 | 算法 | 后端 | 數據 | 安全 | 運維 | iOS | Android | 測試
| 在公眾號菜單欄對話框回復【2020年貨】、【2019年貨】、【2018年貨】、【2017年貨】等關鍵詞,可查看美團技術團隊歷年技術文章合集。
| 本文系美團技術團隊出品,著作權歸屬美團。歡迎出于分享和交流等非商業目的轉載或使用本文內容,敬請注明“內容轉載自美團技術團隊”。本文未經許可,不得進行商業性轉載或者使用。任何商用行為,請發送郵件至tech@meituan.com申請授權。
總結
以上是生活随笔為你收集整理的外卖商品的标准化建设与应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 走出计算机安全防范的六个误区
- 下一篇: auto.js教程:找图函数,图片内随机