楊玉基:知識圖譜在美團推薦場景中的應用

来源:https://www.cnblogs.com/datafuntalk/archive/2022/05/16/16278155.html
-Advertisement-
Play Games

導讀: 美團是一個生活服務領域的平臺,需要大量知識來理解用戶的搜索意圖,同時對於商家側我們也需要利用現有的知識對海量信息進行挖掘與提取,進而優化用戶體驗。今天分享的主題是知識圖譜在美團推薦場景中的應用。主要包括以下幾方面內容: 美團知識圖譜介紹 美團推薦場景介紹 美團推薦中的知識應用 總結與展望 - ...


file


導讀: 美團是一個生活服務領域的平臺,需要大量知識來理解用戶的搜索意圖,同時對於商家側我們也需要利用現有的知識對海量信息進行挖掘與提取,進而優化用戶體驗。今天分享的主題是知識圖譜在美團推薦場景中的應用。主要包括以下幾方面內容:

  • 美團知識圖譜介紹
  • 美團推薦場景介紹
  • 美團推薦中的知識應用
  • 總結與展望

--

01 美團知識圖譜介紹

首先介紹美團的知識圖譜:美團大腦。

美團所涉足的生活服務領域需要大量知識。例如,當用戶搜索“10人聚餐”的query時,我們需要對它結合知識進行理解,得到用戶想找大桌或者找包間的意圖。同時,對於商家側,我們也需要利用UGC評論中挖掘出類似於“有大桌”、“有包間”這樣的標簽。基於知識的理解和匹配,我們可以把滿足需求的商家推薦給用戶,當用戶點擊進入商家詳情頁時,有別於之前用戶需要逐條查看海量評論,費時費力,我們從UGC中挖掘出細粒度的情感標簽,把大部分用戶關心的細粒度特征顯式地展示出來,從而節省用戶的時間,提升用戶體驗。

file

因為生活服務領域需要大量的知識,美團NLP中心從2018年開始就著手構建了生活娛樂領域超大規模的知識圖譜——美團大腦。我們從餐飲圖譜開始,後來逐漸擴展至標簽圖譜、場景圖譜、商品圖譜、到綜圖譜等。

file

美團大腦目前是正在構建中的超大規模的生活服務領域知識圖譜,其主要的主體類型是商家(千萬級)、商品(十億級)、店菜(億級)、海量的用戶評價(70億量級)以及從評價中挖掘出的場景標簽(百萬級)。

--

02 美團推薦場景介紹

file

美團推薦屬於LBS(基於位置的服務)推薦,它與電商推薦、新聞推薦、視頻推薦等存在很大差異。LBS推薦中位置約束以及場景化的要求很高,供給約束是區域型的,其主目標是訂單或者IPay(業務新客訂單)而非Dau或者時長。此外,LBS推薦的社交粘性較弱。

file

美團推薦存在著以下四點挑戰:

  • 可解釋性需求強烈:可解釋性可以直接影響用戶的體驗和決策,從而促進交易,達成美團的業務目標;
  • 美團涉及的領域多、差異大:領域包含了吃、住、行、游、購、娛等;
  • 數據稀疏:除了到餐外賣等高頻業務外,大部分業務的訂單相對較少,且新用戶的占比偏高;
  • 時空場景複雜:我們需要考慮到本異地、時間、地點等因素。一個典型的本異地的場景例子是一個用戶在出差前需要查看目的地酒店。有關時間因素的例子如一個用戶在早上喜歡吃豆漿油條,中午就喜歡吃正餐。又如一個用戶在家和在公司喜歡點的外賣不一樣,這就是一個考慮地點因素的例子。

--

03 美團推薦中的知識應用

1. 可解釋性需求強烈

file

比如對於一個商務人士,他的搜索需求是“商務宴請”,若我們僅僅直接向他推薦“湘江宴”與標簽“湘菜”,那麼他無法得知商家是否能滿足自己的宴請需求。如果我們將商家的“有大桌”,“包間”等知識信息展示給他時,那麼他就可以輕鬆地判斷出推薦的商家可以滿足自己的需求。

file

因此,知識圖譜最典型的應用是結構化信息展示。例如,我們可以從藥品的說明書中挖掘出藥品的功效來展示給消費者;我們可以將知識圖譜利用在商品篩選項中,如用戶搜索薯片時向其展示按口味區分的篩選項,從而使他能夠快速地選擇符合口味的薯片進行購買。

file

除了利用知識圖譜來向用戶進行結構化信息展示之外,我們還利用圖譜路徑來引導推薦。如相關搜索-召回的業務場景,當一個用戶輸入一個query以後下滑了很久都沒有進行點擊,那麼我們就會為其推薦一部分更好的query。一個簡單的做法就是直接使用知識圖譜路徑召回,將query對應的實體在圖譜中有連接的下位實體推薦給用戶,如“奶茶”對應的“珍珠奶茶”、“香草奶茶”等。這一方法的優點在於其召回的相關性較好,這得益於知識圖譜的質量很高,缺點是召回率低,因為用戶的query含有雜訊信息,而知識圖譜的實體較為純凈。在實際業務中,我們更常用的做法是利用embedding進行召回,具體做法是將用戶歷史query以及點擊poi進行構圖,之後使用GNN模型來訓練embedding。當用戶輸入一個query時,我們在訓練好的向量空間中搜索query向量的近鄰向量作為候選召回。這一做法的優點是召回率高,但是召回的bad case較多,且即便embedding的質量非常高也無法避免bad case的出現。

file

美團在業務中會首先使用embedding召回的方法生成一系列候選召回集合。隨後,我們使用用戶交互行為與知識圖譜來進行構圖。如上圖所示,query與poi、query與deal(商家的團單)是點擊關係,這部分來源於點擊行為;deal屬於poi,且每個poi都從屬於一個類目,這部分信息來源於知識圖譜。我們通過兩部分信息的結合構成一系列路徑,可以通過每一條路徑來計算query屬於哪一類poi類目的得分,其對應於query對應的類目分佈。通過計算交叉熵,將不符合要求的候選召回過濾掉,從而實現在召回率高的同時減少bad case。

file

基於上述embedding召回+圖譜路徑過濾的方法,美團推薦的預設詞模塊、熱門搜索模塊、相關搜索模塊都得到顯著的業務指標的提升,尤其是相關搜索模塊,無結果率下降了10個百分點,點擊QV提升了34%。

file

我們還基於圖譜的知識推理來生成推薦理由。以上圖為例,左側是知識圖譜,可以通過它來學習每個用戶到每個商戶的路徑分。比如學習到用戶的家鄉屬於某一個城市,以及這個城市的特色菜品,同時這個菜品又隸屬於某個商戶,若此時這一路徑在當前用戶對當前商戶的所有路徑中得分最高,就可以按照這條路徑生成推薦理由,如“和你一樣的四川老鄉也喜歡這家店的水煮魚”。可以看出,這一方法生成的推薦理由是十分個性化的,且其吸引力較強。

file

基於圖譜的推薦理由生成線上上也取得了很好的收益。與從UGC中挖掘的推薦理由相比,這一方法有兩個優勢。

首先,這一方法不依賴商戶評價數據,這對新店較為友好,我們可以使用用戶交互行為和知識圖譜來為用戶提供個性化推薦理由。

第二,由於生成的路徑很靈活,我們可以輕鬆地為用戶從個性化與多維度的角度生成推薦理由。

2. 領域多、差異大

file

在美團推薦的場景下,我們需要為用戶同時推薦多個領域的內容。例如點評內容推薦,我們需要為用戶推薦的領域包括寵物、露營、旅游、運動、親子、美食、野生動物等。傳統模型使用一個向量表徵用戶,其對用戶多興趣的建模比較粗糙。最近有一些多興趣模型的工作,使用多個向量表徵用戶,對用戶的興趣建模更加精細。

file

已有的工作使用用戶item序列id作為輸入,使用諸如多通道或者動態路由的結構來輸出用戶多個興趣向量,但存在兩個問題。首先,它們都以item為最小粒度,忽視了item蘊含的豐富語義信息,興趣建模不精細。其次,這些模型的可解釋性不強,它們無法回答用戶的興趣具體是什麼以及item所從屬的興趣是什麼。

file

在美團推薦場景中,我們使用海量數據構建了基於常識的概念圖譜。圖譜中包含了事實、事件,它們都包含了具體的語義信息,如遛狗這一事件發生在周末晚上,地點在狗咖或者擼狗店等,需要使用到狗玩具、遛狗繩等。

file

我們想將概念圖譜加入多興趣建模中,使得興趣建模更加精細。如上圖所示,第一個點評內容包含了圖譜中多個實體,每個實體都對應於多個興趣集合。我們想要建模的可解釋性更強,這就對應了三個目標:

  • items需要有一個整體的興趣集合
  • 每個item對應一個興趣分佈
  • 每個user對應一個興趣分佈

file

為了實現上述可解釋性的目標,我們採用了基於神經圖靈機(Neural Turing Machine,NTM)的記憶網路結構。NTM中的memory模塊具有存儲信息的能力,控制器controller用於控制讀寫操作。NTM的好處在於可以使用memory模塊存儲items的興趣集合,實現了上述第一個目標;通過read操作,NTM可以得到用戶交互的item的興趣分佈,實現了前述第二個目標。但是,原始的NTM無法存儲user的興趣,於是我們提出了基於雙重記憶力模塊的NTM。

file

模型的輸入是用戶對應的item序列,包含點擊序列以及點擊的item多關聯的entity。

首先,輸入序列會通過異質圖神經網路模型(HGNN),將item與entity在統一的向量空間中進行建模。

之後,item和entity向量會輸入至雙重記憶網路(Dual Memory Networks),通過讀寫操作更新MI(儲存item的興趣分佈)和MU(儲存user的興趣分佈)。我們可以通過目標item,使用讀操作得到對應的興趣分佈。

最後,我們使用聚合操作可以得到用戶的興趣分佈。通過這一網路結構,可以滿足提出的三個目標。

file

我們使用上述網路架構在點評業務上進行了對比實驗。實驗結果發現與單興趣模型與已有的多興趣模型相比,我們的模型在所有指標上都有不同程度的提升。

file

我們也進行了一些消融實驗。當我們將網路結構中item memory去除後,模型效果下降得最明顯;當我們將user interest去除後,模型效果也有所下降。為了保證item與對應的entity所學習到的分佈的一致性,我們加入了KL散度損失函數進行約束。如果去除這一限制,模型效果也略有下降。消融實驗有力地證明瞭雙重記憶網路的有效性。

file

模型訓練完成後MI可以被看作一系列“槽”,對應了每一個領域的興趣。每個“槽”中存儲了一些實體,那麼所有item有一個整體的興趣集合。當一個item輸入記憶網路時,我們可以使用網路中的讀操作得到item對應的興趣分佈。類似地,user也可以得到對應的興趣分佈。

3. 數據稀疏

file

在美團的業務中,到餐/外賣這一業務交互量較大,但是如買菜業務的交互量就較小,只有部分用戶與部分item進行交互。美團擁有豐富的圖譜知識,我們發現買菜業務中的菜品其實與到餐/外賣業務中的菜品有一定關係。基於這一事實,我們考慮使用知識圖譜與交互量較大的業務領域,使用跨域學習的方法來增強數據稀疏領域的業務效果。

file

我們採用的是單目標的跨域學習,即只關註目標域中user和item的推薦效果。源域中的user、item以及知識圖譜都作為網路的輸入。這一方法的重點在於如何更好地將源域中的信息以及知識圖譜中的信息融入目標域的向量表達中。

file

比如內容推薦場景包含的低頻用戶數量較多,他們的點擊行為少,導致推薦效果較差。我們的解決方案是加入域外的知識圖譜以及域外的交互行為。例如,用戶在域外的點擊、搜索行為,點擊的poi在知識圖譜中包含的知識(如屬於的類目、商圈、標簽等)都可以被用來構建一張更大的異構圖,進而在這張圖上學習節點表徵。最後,我們線上上使用增強後的表徵進行I2I/U2I的召回。

file

休閑娛樂推薦領域也屬於低頻的場景。不僅如此,該領域內還包含了很多小域,如按摩/足療、洗浴/汗蒸、KTV等。這更加重了小域中的數據稀疏問題,導致針對眾多小域中的item進行整體排序十分困難。這時,我們發現在“美團搜索”這個大域中很多實體或者搜索query可以對應於休閑娛樂小域中的實體或者用戶意向,例如用戶搜索“狼人殺”時隱含了桌游的意向,那麼在休閑娛樂域我們就可以給他推薦“桌游館”。

file

所以,我們考慮使用美團首頁搜索行為與休閑娛樂領域的行為構建一張異構圖,使得我們可以利用美團首頁搜索行為信息增強休閑娛樂領域的節點表徵。更具體地,我們認為首頁搜索行為僅在一個時間間隔內(過去一周或者過去一個月)對目標域有效,所以我們採用了基於時序的採樣和聚合。最終實驗結果顯示,在原有模型中增加了跨域學習後,在點擊ndcg的指標上提升了26BP。

04 總結與展望

知識圖譜在美團推薦中是一個十分重要的信息輸入源。知識圖譜的應用可以分為顯式應用和隱式應用。顯式應用是指直接將知識圖譜應用於推薦中的展示引導和結構召回(如知識展示、路徑召回、圖譜推薦理由),解決了可解釋需求強烈的問題。隱式應用是指將知識圖譜通過表徵更容易、更廣泛地嵌入下游任務。它可以通過引入概念性常識圖譜解決用戶多興趣建模中領域差異大的問題,還可以通過知識跨域增強改善目標域的數據稀疏問題。

之後我們會在兩個方向上繼續探索知識圖譜在推薦中的應用。首先,我們會繼續聚焦於通用推薦場景建模,如繼續優化用戶多興趣、引入物品多模態、對用戶與物品交互行為進一步探索場景時空性等。其次,針對很多業務中面臨的數據稀疏問題,我們會著重探索推薦公平性、跨域學習以及圖預訓練。

--

05 精彩問答

Q1:知識圖譜在圖譜路徑引導推薦中召回階段和排序階段是不是使用一個演算法模型?還是一個模型將兩個階段的任務全部完成了?

A:首先,我們在做圖譜路徑引導推薦時,召回階段使用的是GNN模型,如同質圖模型GraphSage或者異質圖模型R-GAT、R-GCN等。圖譜其實在召回中的作用是對召回候選集進行過濾,去掉不太相關的bad case。其次,在一般工業級應用中,不會在召回層和排序層使用同一個模型,這可以讓不同業務的同學分開優化各自負責的部分。

Q2:圖譜路徑到推薦理由的轉化是人工適配還是機器自動完成?

A:目前我們會通過人工提前確定一些模板。模型利用知識圖譜得到路徑分最高的路徑後去填充模板中對應的槽。在工業級的產品中,因為基於模型的文本生成演算法出現bad case的概率較高且不太可控,影響用戶體驗,實際業務場景中會比較慎重地使用。

Q3:雙重記憶網路線上上使用性能如何?

A:雙重記憶網路主要用於用戶多興趣建模的召回場景。我們目前的使用方式是t+1調度更新,定期離線訓練模型得到模型參數和item向量,每天infer得到user向量。線上使用時,我們直接使用得到的向量作為user和item的興趣向量表徵,在向量空間中通過ANN演算法索引,性能不是問題。

今天的分享就到這裡,謝謝大家。

閱讀更多技術乾貨文章,請關註微信公眾號“DataFunTalk”



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 為了瞭解應用程式是如何配置和初始化,本文將探討ASP.NET Core和ABP框架最基本的構建模塊。我們將從 ASP.NET Core 的 Startup類開始瞭解為什麼我們需要模塊化系統,以及 ABP 如何提供模塊化方式來配置和初始化應用程式。然後我們將探索 ASP.NET Core 的依賴註入, ...
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 1.下載WSL Ubuntu 打開微軟商店,搜索linux,找到Ubuntu並下載 2.安裝WSL Ubuntu 下載完成以後先不要安裝,因為預設安裝位置是在c盤,此時在其他盤新建一個文件夾,打開C:\Program Files\WindowsA ...
  • ##方法一: ###1、首先打開控制面板,然後將右側的查看方式設置為大圖標,接著選擇區域和語言。 ###2、進入到界面之後,先定位到上方的格式,接著把格式設置為中文。 ###3、之後再定位到上方的位置,選擇中國。 ###4、接著再定位到上方的管理選項,然後點擊更改系統區域設置。 ###5、接著在彈出 ...
  • rpm命令 rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 發行版專門用來管理 Linux 各項套件的程式,由於它遵循 GPL 規則且功能強大方便,因而廣受歡迎。逐漸受到其他發行版的採用。RPM 套件管理方式的出現,讓 Linux 易於安裝,升級 ...
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 centos換源+安裝postgresql http://mirror.nsc.liu.se/centos-store/8.2.2004/isos/x86_64/ 鏡像安裝網站 https://mirrors.edge.kernel.org/pu ...
  • 本文例子參考《STM32單片機開發實例——基於Proteus虛擬模擬與HAL/LL庫》 源代碼:https://github.com/LanLinnet/STM33F103R6 項目要求 實現通過串口助手發送單位元組數據,單片機收到數據後,交換高4位與低4位,將新的數據通過串口發回串口助手。例如,串口 ...
  • 前言: 這是《VMware 虛擬機圖文安裝和配置 Rocky Linux 8.5 教程》一文的姐妹篇教程,如果你需要閱讀它,請點擊這裡。 2020 年,CentOS 宣佈:計劃未來將重心從 CentOS Linux 轉移到 CentOS Stream。CentOS 8 的生命周期已於 2021 年 ...
  • 一、Azkaban API概述 通常,企業里一般不用使用web UI去設置或者執行任務,只是單純的在頁面上查看任務或者排查問題,更多的是通過Azkaban API去提交執行任務計劃。Azkaban提供了一些常用的API操作,可以通過curl或其他HTTP請求客戶端訪問。但是API調用都需要首先進行適 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...