自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

大眾點評搜索相關(guān)性技術(shù)探索與實踐

原創(chuàng) 精選
人工智能 新聞
搜索相關(guān)性用于衡量Query和Doc的相關(guān)程度,是搜索引擎的重要環(huán)節(jié),本文主要講述大眾點評搜索團隊在相關(guān)性計算上的技術(shù)探索和實踐,通過多相似矩陣模型結(jié)構(gòu)、多階段訓(xùn)練等方法提升預(yù)訓(xùn)練模型在相關(guān)性問題上的效果,同時解決基于交互的模型在線預(yù)測的性能問題,希望為從事相關(guān)工作的同學(xué)能夠帶來一些啟發(fā)或者幫助。

作者:校婭 沈元 朱迪等

1. 背景

點評搜索是大眾點評App的核心入口之一,用戶通過搜索來滿足不同場景下對生活服務(wù)類商戶的找店需求。搜索的長期目標(biāo)是持續(xù)優(yōu)化搜索體驗,提升用戶的搜索滿意度,這需要我們理解用戶搜索意圖,準(zhǔn)確衡量搜索詞與商戶之間的相關(guān)程度,盡可能展示相關(guān)商戶并將更相關(guān)的商戶排序靠前。因此,搜索詞與商戶的相關(guān)性計算是點評搜索的重要環(huán)節(jié)。

大眾點評搜索場景面臨的相關(guān)性問題復(fù)雜多樣,用戶的搜索詞比較多樣,例如搜索商戶名、菜品、地址、類目以及它們之間的各種復(fù)雜組合,同時商戶也有多種類型的信息,包括商戶名、地址信息、團單信息、菜品信息以及其他各種設(shè)施和標(biāo)簽信息等,導(dǎo)致Query與商戶的匹配模式異常復(fù)雜,容易滋生出各種各樣的相關(guān)性問題。具體來說,可以分為如下幾種類型:

  • 文本誤匹配:在搜索時,為保證更多商戶被檢索和曝光,Query可能會被拆分成更細(xì)粒度的詞進行檢索,因此會帶來Query錯誤匹配到商戶不同字段的問題,如圖1(a)所示的用戶搜“生蠔火鍋”應(yīng)該想找湯底中包含生蠔的火鍋,而“生蠔”和“火鍋”分別匹配到商戶的兩個不同菜品。
  • 語義偏移:Query與商戶字面匹配,但商戶與Query的主要意圖在語義上不相關(guān),如“奶茶”-“黑糖珍珠奶茶包”,如圖1(b)所示。
  • 類目偏移:Query與商戶字面匹配且語義相關(guān),但主營類目與用戶需求不符,例如用戶搜索“水果”時一家提供“果盤”的KTV商戶明顯與用戶的需求不相關(guān)。?

圖片

(a) 文本誤匹配示例

圖片

(b) 語義偏移示例

圖1 點評搜索相關(guān)性問題示例

基于字面匹配的相關(guān)性方法無法有效應(yīng)對上述問題,為了解決搜索列表中的各類不符合用戶意圖的不相關(guān)問題,需要更準(zhǔn)確地刻畫搜索詞與商戶的深度語義相關(guān)性。本文在基于美團海量業(yè)務(wù)語料訓(xùn)練的MT-BERT預(yù)訓(xùn)練模型的基礎(chǔ)上,在大眾點評搜索場景下優(yōu)化Query與商戶(POI,對應(yīng)通用搜索引擎中的Doc)的深度語義相關(guān)性模型,并將Query與POI的相關(guān)性信息應(yīng)用在搜索鏈路各環(huán)節(jié)。

本文將從搜索相關(guān)性現(xiàn)有技術(shù)綜述、點評搜索相關(guān)性計算方案、應(yīng)用實戰(zhàn)、總結(jié)與展望四個方面對點評搜索相關(guān)性技術(shù)進行介紹。其中點評搜索相關(guān)性計算章節(jié)將介紹我們?nèi)绾谓鉀Q商戶輸入信息構(gòu)造、使模型適配點評搜索相關(guān)性計算及模型上線的性能優(yōu)化等三項主要挑戰(zhàn),應(yīng)用實戰(zhàn)章節(jié)將介紹點評搜索相關(guān)性模型的離線及線上效果。

2. 搜索相關(guān)性現(xiàn)有技術(shù)

搜索相關(guān)性旨在計算Query和返回Doc之間的相關(guān)程度,也就是判斷Doc中的內(nèi)容是否滿足用戶Query的需求,對應(yīng)NLP中的語義匹配任務(wù)(Semantic Matching)。在大眾點評的搜索場景下,搜索相關(guān)性就是計算用戶Query和商戶POI之間的相關(guān)程度。

文本匹配方法:早期的文本匹配任務(wù)僅考慮了Query與Doc的字面匹配程度,通過TF-IDF、BM25等基于Term的匹配特征來計算相關(guān)性。字面匹配相關(guān)性線上計算效率較高,但基于Term的關(guān)鍵詞匹配泛化性能較差,缺少語義和詞序信息,且無法處理一詞多義或者多詞一義的問題,因此漏匹配和誤匹配現(xiàn)象嚴(yán)重。

傳統(tǒng)語義匹配模型:為彌補字面匹配的缺陷,語義匹配模型被提出以更好地理解Query與Doc的語義相關(guān)性。傳統(tǒng)的語義匹配模型主要包括基于隱式空間的匹配:將Query和Doc都映射到同一個空間的向量,再用向量距離或相似度作為匹配分,如Partial Least Square(PLS[1];以及基于翻譯模型的匹配:將Doc映射到Query空間后進行匹配或計算Doc翻譯成Query的概率[2]

隨著深度學(xué)習(xí)和預(yù)訓(xùn)練模型的發(fā)展,深度語義匹配模型也被業(yè)界廣泛應(yīng)用。深度語義匹配模型從實現(xiàn)方法上分為基于表示(Representation-based)的方法及基于交互(Interaction-based)的方法。預(yù)訓(xùn)練模型作為自然語言處理領(lǐng)域的有效方法,也被廣泛使用在語義匹配任務(wù)中。

圖片

(a) 基于表示的多域相關(guān)性模型

圖片

(b) 基于交互的相關(guān)性模型

圖2 深度語義匹配相關(guān)性模型

基于表示的深度語義匹配模型:基于表示的方法分別學(xué)習(xí)Query及Doc的語義向量表示,再基于兩個向量計算相似度。微軟的DSSM模型[3]提出了經(jīng)典的雙塔結(jié)構(gòu)的文本匹配模型,即分別使用相互獨立的兩個網(wǎng)絡(luò)構(gòu)建Query和Doc的向量表示,用余弦相似度衡量兩個向量的相關(guān)程度。微軟Bing搜索的NRM[4]針對Doc表征問題,除了基礎(chǔ)的Doc標(biāo)題和內(nèi)容,還考慮了其他多源信息(每類信息被稱為一個域Field),如外鏈、用戶點擊過的Query等,考慮一個Doc中有多個Field,每個Field內(nèi)又有多個實例(Instance),每個Instance對應(yīng)一個文本,如一個Query詞。模型首先學(xué)習(xí)Instance向量,將所有Instance的表示向量聚合起來就得到一個Field的表示向量,將多個Field的表示向量聚合起來得到最終Doc的向量。SentenceBERT[5]將預(yù)訓(xùn)練模型BERT引入到雙塔的Query和Doc的編碼層,采用不同的Pooling方式獲取雙塔的句向量,通過點乘、拼接等方式對Query和Doc進行交互。

大眾點評的搜索相關(guān)性早期模型就借鑒了NRM和SentenceBERT的思想,采用了圖2(a)所示的基于表示的多域相關(guān)性模型結(jié)構(gòu),基于表示的方法可以將POI的向量提前計算并存入緩存,線上只需計算Query向量與POI向量的交互部分,因此在線上使用時計算速度較快。

基于交互的深度語義匹配模型:基于交互的方法不直接學(xué)習(xí)Query和Doc的語義表示向量,而是在底層輸入階段就讓Query和Doc進行交互,建立一些基礎(chǔ)的匹配信號,再將基礎(chǔ)匹配信號融合成一個匹配分。ESIM[6]是預(yù)訓(xùn)練模型引入之前被業(yè)界廣泛使用的經(jīng)典模型,首先對Query和Doc進行編碼得到初始向量,再用Attention機制進行交互加權(quán)后與初始向量進行拼接,最終分類得到相關(guān)性得分。

引入預(yù)訓(xùn)練模型BERT進行交互計算時,通常將Query和Doc拼接作為BERT句間關(guān)系任務(wù)的輸入,通過MLP網(wǎng)絡(luò)得到最終的相關(guān)性得分[7],如圖2(b)所示。CEDR[8]在BERT句間關(guān)系任務(wù)獲得Query和Doc向量之后,對Query和Doc向量進行拆分,進一步計算Query與Doc的余弦相似矩陣。美團搜索團隊[9]將基于交互的方法引入美團搜索相關(guān)性模型中,引入商戶品類信息進行預(yù)訓(xùn)練,并引入實體識別任務(wù)進行多任務(wù)學(xué)習(xí)。美團到店搜索廣告團隊[10]提出了將基于交互的模型蒸餾到基于表示的模型上的方法,實現(xiàn)雙塔模型的虛擬交互,在保證性能的同時增加Query與POI的交互。

3. 點評搜索相關(guān)性計算

基于表示的模型重在表示POI的全局特征,缺乏線上Query與POI的匹配信息,基于交互的方法可以彌補基于表示方法的不足,增強Query和POI的交互,提升模型表達(dá)能力,同時,鑒于預(yù)訓(xùn)練模型在文本語義匹配任務(wù)上的強勁表現(xiàn),點評搜索相關(guān)性計算確定了基于美團預(yù)訓(xùn)練模型MT-BERT[11]的交互式方案。將基于預(yù)訓(xùn)練模型的交互式BERT應(yīng)用在點評搜索場景的相關(guān)性任務(wù)中時,仍存在諸多挑戰(zhàn):

  • 如何更好地構(gòu)造POI側(cè)模型輸入信息:Doc側(cè)模型輸入信息的構(gòu)造是相關(guān)性模型中的重要環(huán)節(jié)。在通用網(wǎng)頁搜索引擎中,Doc的網(wǎng)頁標(biāo)題對相關(guān)性的判斷極為重要,但在點評搜索場景下,POI信息具有字段多、信息復(fù)雜的特點,不存在能提供類似“網(wǎng)頁標(biāo)題”信息量的字段,每個商戶都通過商戶名、類目、地址、團單、商戶標(biāo)簽等多種結(jié)構(gòu)化信息來表達(dá)。在計算相關(guān)性分?jǐn)?shù)時,大量多源商戶信息無法全部輸入到模型中,而僅使用商戶名和類目等基礎(chǔ)信息又會因為信息缺失無法達(dá)到滿意的效果,因此如何更好地構(gòu)造具有豐富信息量的POI側(cè)模型輸入是我們要解決的首要問題。
  • 如何優(yōu)化模型來更好地適配點評搜索相關(guān)性計算:大眾點評搜索場景中的文本信息與通用的預(yù)訓(xùn)練模型語料信息有一定差異,例如通用語義場景下“開心”和“高興”同義,但在點評搜索的場景下“開心燒烤”和“高興燒烤”卻是兩家完全不同的品牌。同時,Query和POI的相關(guān)性判定邏輯與通用NLP場景的語義匹配任務(wù)也不完全相同,Query和POI的匹配模式非常復(fù)雜,當(dāng)Query匹配到POI的不同字段時,相關(guān)性的判定結(jié)果也有所不同,例如Query“水果”匹配到“水果店”商戶類目時相關(guān)性較高,而命中KTV的“水果拼盤”標(biāo)簽時則相關(guān)性較弱。因此,相比通用的基于交互的BERT句間關(guān)系語義匹配任務(wù),相關(guān)性計算還需要關(guān)注Query和POI兩部分之間的具體匹配情況。如何優(yōu)化模型來適配點評搜索的場景,并能處理復(fù)雜多樣的相關(guān)性判斷邏輯,盡可能地解決各種不相關(guān)問題,是我們面臨的主要挑戰(zhàn)。
  • 如何解決預(yù)訓(xùn)練相關(guān)性模型的在線性能瓶頸:基于表示的模型雖計算速度較快但表達(dá)能力有限,基于交互的模型可以增強Query和POI的交互從而提升模型效果,但在線上使用時存在較大的性能瓶頸。因此,在線上使用12層BERT的基于交互的模型時,如何在保證模型計算效果的同時保證整個計算鏈路的性能,使其在線上穩(wěn)定高效運行,是相關(guān)性計算線上應(yīng)用的最后一道關(guān)卡。

經(jīng)過不斷探索與嘗試,我們針對POI側(cè)的復(fù)雜多源信息,構(gòu)造了適配點評搜索場景的POI文本摘要;為了讓模型更好地適配點評搜索相關(guān)性計算,采用了兩階段訓(xùn)練的方法,并根據(jù)相關(guān)性計算的特點改造了模型結(jié)構(gòu);最后,通過優(yōu)化計算流程、引入緩存等措施,成功降低了模型實時計算和整體應(yīng)用鏈路的耗時,滿足了線上實時計算BERT的性能要求。

3.1 如何更好地構(gòu)造POI側(cè)模型輸入信息

在判定Query與POI的相關(guān)程度時,POI側(cè)有十幾個參與計算的字段,某些字段下的內(nèi)容特別多(例如一個商戶可能有上百個推薦菜),因此需要找到合適的方式抽取并組織POI側(cè)信息,輸入到相關(guān)性模型中。通用搜索引擎(如百度),或常見垂類搜索引擎(如淘寶),其Doc的網(wǎng)頁標(biāo)題或商品標(biāo)題信息量豐富,通常是相關(guān)性判定過程中Doc側(cè)模型輸入的主要內(nèi)容。

如圖3(a)所示,在通用搜索引擎中,通過搜索結(jié)果的標(biāo)題可以一眼看出對應(yīng)網(wǎng)站的關(guān)鍵信息及是否與Query相關(guān),而在圖3(b)大眾點評App的搜索結(jié)果中,僅通過商戶名字段無法得到充足的商戶信息,需要結(jié)合商戶類目(奶茶果汁)、用戶推薦菜品(奧利奧利奶茶)、標(biāo)簽(網(wǎng)紅店)、地址(武林廣場)多個字段才能判斷該商戶與Query“武林廣場網(wǎng)紅奶茶”的相關(guān)性。

圖片

(a) 通用搜索引擎搜索結(jié)果示例

圖片

(b) 大眾點評App搜索結(jié)果示例

圖3 通用搜索引擎與大眾點評搜索結(jié)果對比

標(biāo)簽抽取是業(yè)界比較通用的抽取主題信息的途徑,因此我們首先嘗試了通過商戶標(biāo)簽來構(gòu)造POI側(cè)模型輸入的方法,根據(jù)商戶的評論、基礎(chǔ)信息、菜品、商戶對應(yīng)的頭部搜索點擊詞等抽取出具有代表性的商戶關(guān)鍵詞來作為商戶標(biāo)簽。在線上使用時,將已抽取的商戶標(biāo)簽,及商戶名和類目基礎(chǔ)信息一起作為模型的POI側(cè)輸入信息,與Query進行交互計算。然而,商戶標(biāo)簽對商戶信息的覆蓋仍不夠全面,例如用戶搜索菜品“雞蛋羹”時,某個距用戶很近的韓式料理店有雞蛋羹售賣,但該店的招牌菜、頭部點擊詞等均與“雞蛋羹”無關(guān),導(dǎo)致該店所抽取的標(biāo)簽詞也與“雞蛋羹”相關(guān)性較低,因此模型會將該店判斷為不相關(guān),從而對用戶體驗帶來傷害。

為了獲取最全面的POI表征,一種方案是不抽取關(guān)鍵詞,直接將商戶的所有字段拼接到模型輸入中,但是這種方式會因為模型輸入長度過長而嚴(yán)重影響線上性能,且大量冗余信息也會影響模型表現(xiàn)。

為構(gòu)造更具信息量的POI側(cè)信息作為模型輸入,我們提出了POI匹配字段摘要抽取的方法,即結(jié)合線上Query的匹配情況實時抽取POI的匹配字段文本,并構(gòu)造匹配字段摘要作為POI側(cè)模型輸入信息。POI匹配字段摘要抽取流程如圖4所示,我們基于一些文本相似度特征,將與Query最相關(guān)且最具信息量的文本字段提取出來,并融合字段類型信息構(gòu)建成匹配字段摘要。線上使用時,將已抽取的POI匹配字段摘要、商戶名及類目基礎(chǔ)信息一起作為POI側(cè)模型輸入。

圖片

圖4 POI匹配字段摘要抽取流程在確定POI側(cè)模型輸入信息后,我們采用BERT句間關(guān)系任務(wù),先用MT-BERT對Query側(cè)和POI側(cè)匹配字段摘要信息進行編碼,然后使用池化后的句向量計算相關(guān)分。采用POI匹配字段摘要的方案構(gòu)造POI側(cè)模型輸入信息后,配合樣本迭代,相比基于標(biāo)簽的方法,模型的效果有了極大的提升。

3.2 如何優(yōu)化模型來更好地適配點評搜索相關(guān)性計算

讓模型更好地適配點評搜索相關(guān)性計算任務(wù)包含兩層含義:大眾點評搜索場景下的文本信息與MT-BERT預(yù)訓(xùn)練模型使用的語料在分布上存在著一定的差異;預(yù)訓(xùn)練模型的句間關(guān)系任務(wù)與Query和POI的相關(guān)性任務(wù)也略有不同,需要對模型結(jié)構(gòu)進行改造。經(jīng)過不斷探索,我們采用基于領(lǐng)域數(shù)據(jù)的兩階段訓(xùn)練方案,結(jié)合訓(xùn)練樣本構(gòu)造,使預(yù)訓(xùn)練模型更適配點評搜索場景的相關(guān)性任務(wù);并提出了基于多相似矩陣的深度交互相關(guān)性模型,加強Query和POI的交互,提升模型對復(fù)雜的Query和POI信息的表達(dá)能力,優(yōu)化相關(guān)性計算效果。

3.2.1 基于領(lǐng)域數(shù)據(jù)的兩階段訓(xùn)練

為了有效利用用戶點擊數(shù)據(jù),并使預(yù)訓(xùn)練模型MT-BERT更適配點評搜索相關(guān)性任務(wù),我們借鑒百度搜索相關(guān)性[12]的思想,引入多階段訓(xùn)練方法,采用用戶點擊和負(fù)采樣數(shù)據(jù)進行第一階段領(lǐng)域適配的預(yù)訓(xùn)練(Continual Domain-Adaptive Pre-training),采用人工標(biāo)注數(shù)據(jù)進行第二階段訓(xùn)練(Fine-Tune),模型結(jié)構(gòu)如下圖5所示:

圖片

圖5 基于點擊及人工標(biāo)注數(shù)據(jù)的兩階段訓(xùn)練模型結(jié)構(gòu)

基于點擊數(shù)據(jù)的第一階段訓(xùn)練

引入點擊數(shù)據(jù)作為第一階段訓(xùn)練任務(wù)的直接原因是在點評搜索場景下存在著一些特有的問題,例如“開心”和“高興”兩個詞在通用場景下是幾乎完全同義的詞,但是在點評搜索的場景下“開心燒烤”和“高興燒烤”卻是兩家完全不同的品牌商戶,因此點擊數(shù)據(jù)的引入能夠幫助模型學(xué)習(xí)到搜索場景下的一些特有知識。但是直接將點擊樣本用于相關(guān)性判斷會存在較大噪聲,因為用戶點擊某個商戶可能是由于排序較為靠前導(dǎo)致的誤點擊,而未點擊某個商戶也可能僅僅是因為商戶距離較遠(yuǎn),而并不是因為相關(guān)性問題,因此我們引入了多種特征和規(guī)則來提高訓(xùn)練樣本自動標(biāo)注的準(zhǔn)確率。

在構(gòu)造樣本時,通過統(tǒng)計是否點擊、點擊位次、最大點擊商戶距用戶的距離等特征篩選候選樣本,將曝光點擊率大于一定閾值的Query-POI對作為正例,并根據(jù)業(yè)務(wù)特點對不同類型商戶調(diào)整不同的閾值。在負(fù)例的構(gòu)造上,Skip-Above采樣策略將位于點擊商戶之前且點擊率小于閾值的商戶才做為負(fù)樣本。此外,隨機負(fù)采樣的方式可以為訓(xùn)練樣本補充簡單負(fù)例,但考慮隨機負(fù)采樣時也會引入一些噪聲數(shù)據(jù),因此我們利用人工設(shè)計的規(guī)則對訓(xùn)練數(shù)據(jù)進行降噪:當(dāng)Query的類目意圖與POI的類目體系較為一致時或者與POI名高度匹配時,則將其從負(fù)樣本中剔除。

基于人工標(biāo)注數(shù)據(jù)的第二階段訓(xùn)練

經(jīng)過第一階段訓(xùn)練后,考慮到無法完全清除掉點擊數(shù)據(jù)中的噪音,以及相關(guān)性任務(wù)的特點,因此需要引入基于人工標(biāo)注樣本的第二階段訓(xùn)練來對模型進行糾偏。除了隨機采樣一部分?jǐn)?shù)據(jù)交給人工去標(biāo)注外,為了盡可能提升模型的能力,我們通過難例挖掘和對比樣本增強方式生產(chǎn)大量高價值樣本交給人工去標(biāo)注。具體如下:

1)難例挖掘

  • 特定類型樣本挖掘:通過設(shè)計一種基于Query和POI的特征和兩者的匹配情況來刻畫BadCase類型的方法,自動化從候選數(shù)據(jù)集中篩選出特定BadCase類型的樣本進行送標(biāo)。
  • 用戶點擊過但線上舊版模型判定為不相關(guān)的:該方法可以挖掘出當(dāng)前線上模型預(yù)測錯誤及語義接近的用戶難以區(qū)分的難例。
  • 邊緣采樣:通過邊緣采樣的方式挖掘具有較高不確定性的樣本,如抽取模型預(yù)測得分在閾值附近的樣本。
  • 模型或人工識別困難的樣本:用當(dāng)前模型預(yù)測訓(xùn)練集,將模型預(yù)測結(jié)果與標(biāo)注標(biāo)簽不一致的樣本,及人工標(biāo)注標(biāo)簽有沖突的樣本類型重新送標(biāo)。

2)對比樣本增強:借鑒對比學(xué)習(xí)的思想,為一些高度匹配的樣本生成對比樣本進行數(shù)據(jù)增強,并進行人工標(biāo)注確保樣本標(biāo)簽的準(zhǔn)確率。通過對比樣本之間的差異,模型可以關(guān)注到真正有用的信息,同時提升對同義詞的泛化能力,從而得到更好的效果。

  • 針對菜品詞較容易出現(xiàn)的跨菜品匹配的相關(guān)性問題(例如搜“鵝肝漢堡”匹配到售賣“牛肉漢堡”和“鵝肝壽司”的商家),分別用菜品的各個子成分與推薦菜字段進行匹配,生產(chǎn)大量對比樣本,加強模型對于跨菜品匹配問題的識別能力。
  • 針對菜品詞命中推薦菜前綴的問題,通過改造完全匹配到推薦菜的情況(搜“榴蓮蛋糕”匹配到售賣“榴蓮蛋糕”的商家),僅保留搜索詞中的前綴,構(gòu)造出匹配推薦菜前綴的對比樣本(搜"榴蓮"和售賣"榴蓮蛋糕"的商家),使模型能更好的區(qū)分匹配推薦菜前綴時的情況。

圖片

圖6 對比樣本增強示例

以跨菜品匹配的相關(guān)性問題為例,如上圖6所示,同樣是Query拆開后與商戶的多個推薦菜字段匹配的情況,Query“榴蓮蛋糕”與推薦菜“榴蓮千層、黑森林蛋糕”是相關(guān)的,但Query“鵝肝漢堡”與“鐵板鵝肝、芝士牛肉漢堡”是不相關(guān)的,為了增強模型對這類高度匹配但結(jié)果相反的Case的識別能力,我們構(gòu)造了“榴蓮蛋糕”與“榴蓮千層”、“鵝肝漢堡”與“鐵板鵝肝”這兩組對比樣本,去掉了與Query在文本上匹配但對模型判斷沒有幫助的信息,讓模型學(xué)到真正決定是否相關(guān)的關(guān)鍵信息,同時提升模型對“蛋糕”和“千層”這類同義詞的泛化能力。類似地,其他類型的難例同樣可以用這種樣本增強方式來提升效果。

3.2.2 基于多相似矩陣的深度交互模型

BERT句間關(guān)系是一個通用的NLP任務(wù),用于判斷兩個句子的關(guān)系,而相關(guān)性任務(wù)是計算Query和POI的相關(guān)程度。在計算過程中,句間關(guān)系任務(wù)不僅計算Query與POI的交互,還計算Query內(nèi)部和POI內(nèi)部的交互,而相關(guān)性計算更關(guān)注Query與POI的交互。此外,在模型迭代過程中,我們發(fā)現(xiàn)部分類型的困難BadCase對模型的表達(dá)能力有更高要求,例如文本高度匹配但不相關(guān)的類型。因此,為進一步提升模型對復(fù)雜的Query和POI在相關(guān)性任務(wù)上的計算效果,我們對第二階段訓(xùn)練中的BERT句間關(guān)系任務(wù)進行改造,提出了基于多相似矩陣的深度交互模型,通過引入多相似矩陣來對Query和POI進行深度交互,引入indicator矩陣以更好地解決困難BadCase問題,模型結(jié)構(gòu)如下圖7所示:

圖片

圖7 基于多相似矩陣的深度交互相關(guān)性模型

受CEDR[8]的啟發(fā),我們將經(jīng)過MT-BERT編碼后的Query和POI向量進行拆分,用于顯式地計算兩部分的深度交互關(guān)系,將Query和POI拆分并進行深度交互,一方面可以專門用于學(xué)習(xí)Query與POI的相關(guān)程度,另一方面,增加的參數(shù)量可以提升模型的擬合能力。

參考MatchPyramid[13]模型,深度交互相關(guān)性模型計算了四種不同的Query-Doc相似矩陣并進行融合,包括Indicator、Dot-product、余弦距離及歐氏距離,并與POI部分的輸出進行Attention加權(quán)。其中Indicator矩陣用來描述Query與POI的Token是否一致,計算方式如下:

其中代表匹配矩陣的第行列對應(yīng)的元素,代表Query的第個Token,代表POI的第個Token。由于Indicator矩陣是表示Query與POI是否字面匹配的矩陣,與另外三個語義匹配矩陣的輸入格式不同,Dot-product、余弦距離、歐式距離三個匹配矩陣先進行融合,再將得到的結(jié)果與Indicator矩陣進一步融合后再計算最終的相關(guān)性得分。

Indicator矩陣可以較好地刻畫Query和POI的匹配關(guān)系,該矩陣的引入主要考慮到判定Query和POI相關(guān)程度時的一個難點:有時即使文本高度匹配,兩者也不相關(guān)?;诮换サ腂ERT模型結(jié)構(gòu)更容易將文本匹配程度高的Query和POI判定為相關(guān),但是在點評搜索場景中,有些難例卻未必如此。比如“豆汁”和“綠豆汁”雖然高度匹配,但并不相關(guān)?!柏埧铡焙汀柏埖奶炜罩恰彪m然是拆開匹配,但因為前者是后者的縮寫而相關(guān)。因此,將不同的文本匹配情況通過Indicator矩陣直接輸入給模型,讓模型顯式地接收“包含”、“拆開匹配”等文本匹配情況,在幫助模型提升對難例判別能力的同時,也不會影響大部分正常的Case的表現(xiàn)。

基于多相似矩陣的深度交互相關(guān)性模型將Query和POI拆分后計算相似矩陣,相當(dāng)于讓模型對Query和POI進行顯式交互,使模型更加適配相關(guān)性任務(wù)。多個相似矩陣則增加了模型對Query和POI相關(guān)程度計算的表征能力,而Indicator矩陣則是針對相關(guān)性任務(wù)中復(fù)雜的文本匹配情況做的特殊設(shè)計,讓模型對不相關(guān)結(jié)果的判斷更加準(zhǔn)確。

3.3 如何解決預(yù)訓(xùn)練相關(guān)性模型的在線性能瓶頸

將相關(guān)性計算部署在線上時,現(xiàn)有方案通常會采用知識蒸餾的雙塔結(jié)構(gòu)[10,14]以保證線上計算效率,但此種處理方式或多或少對于模型的效果是有損的。點評搜索相關(guān)性計算為保證模型效果,在線上使用了基于交互的12層BERT預(yù)訓(xùn)練相關(guān)性模型,需要對每個Query下的數(shù)百個POI經(jīng)過12層BERT的模型預(yù)測。為保證線上計算效率,我們從模型實時計算流程和應(yīng)用鏈路兩個角度出發(fā),通過引入緩存機制、模型預(yù)測加速、引入前置黃金規(guī)則層、將相關(guān)性計算與核心排序并行化等措施優(yōu)化相關(guān)性模型在線上部署時的性能瓶頸,使得12層基于交互的BERT相關(guān)性模型在線上穩(wěn)定高效運行,保證可以支持?jǐn)?shù)百個商戶和Query間的相關(guān)性計算。

3.3.1 相關(guān)性模型計算流程性能優(yōu)化

圖片

圖8 相關(guān)性模型線上計算流程圖

點評搜索相關(guān)性模型的線上計算流程如圖8所示,通過緩存機制及TF-Serving模型預(yù)測加速來優(yōu)化模型實時計算的性能。

為有效利用計算資源,模型線上部署引入緩存機制,將高頻Query的相關(guān)性得分寫入緩存。后續(xù)調(diào)用時會優(yōu)先讀取緩存,若命中緩存則直接輸出打分,未命中緩存的則進行線上實時計算。緩存機制大大節(jié)省了計算資源,有效緩解在線計算的性能壓力。

對未命中緩存的Query,將其處理為Query側(cè)模型輸入,通過圖4所述的流程獲取每個POI的匹配字段摘要,并處理為POI側(cè)模型輸入格式,再調(diào)用線上相關(guān)性模型輸出相關(guān)分。相關(guān)性模型部署在TF-Serving上,在模型預(yù)測時,采用美團機器學(xué)習(xí)平臺的模型優(yōu)化工具ART框架(基于Faster-Transformer[15]改進)進行加速,在保證精度的同時極大地提高了模型預(yù)測速度。

3.3.2 應(yīng)用鏈路性能優(yōu)化

圖片

圖9 相關(guān)性模型在點評搜索鏈路中的應(yīng)用

相關(guān)性模型在搜索鏈路中的應(yīng)用如上圖9所示,通過引入前置黃金規(guī)則、將相關(guān)性計算與核心排序?qū)硬⑿谢瘉韮?yōu)化整體搜索鏈路中的性能。

為了進一步對相關(guān)性調(diào)用鏈路加速,我們引入了前置黃金規(guī)則對Query分流,對部分Query通過規(guī)則直接輸出相關(guān)分,從而緩解模型計算壓力。在黃金規(guī)則層中利用文本匹配特征對Query和POI進行判斷,例如,若搜索詞跟商戶名完全一致,則通過黃金規(guī)則層直接輸出“相關(guān)”的判定,而無需通過相關(guān)性模型計算相關(guān)分。

在整體計算鏈路中,相關(guān)性計算過程與核心排序?qū)舆M行并發(fā)操作,以保證相關(guān)性計算對搜索鏈路的整體耗時基本無影響。在應(yīng)用層,相關(guān)性計算被用在搜索鏈路的召回和排序等多個環(huán)節(jié)。為降低搜索列表的首屏不相關(guān)商戶占比,我們將相關(guān)分引入到LTR多目標(biāo)融合排序中進行列表頁排序,并采用多路召回融合策略,利用相關(guān)性模型的結(jié)果,僅將補充召回路中的相關(guān)商戶融合到列表中。

4. 應(yīng)用實戰(zhàn)

4.1 離線效果

為精準(zhǔn)反映模型迭代的離線效果,我們通過多輪人工標(biāo)注方式構(gòu)造了一批Benchmark,考慮到當(dāng)前線上實際使用時主要目標(biāo)為降低BadCase指標(biāo),即對不相關(guān)商戶的準(zhǔn)確識別,我們采用負(fù)例的準(zhǔn)確率、召回率、F1值作為衡量指標(biāo)。經(jīng)過兩階段訓(xùn)練、樣本構(gòu)造及模型迭代帶來的收益如下表1所示:

圖片

表1 點評搜索相關(guān)性模型迭代離線指標(biāo)

初始方法(Base)采用Query拼接POI匹配字段摘要信息的BERT句對分類任務(wù),Query側(cè)模型輸入采用用戶輸入的原始Query,POI側(cè)采用商戶名、商戶類目及匹配字段摘要文本拼接方式。引入基于點擊數(shù)據(jù)的兩階段訓(xùn)練后,負(fù)例F1指標(biāo)相比Base方法提升1.84%,通過引入對比樣本、難例樣本持續(xù)迭代訓(xùn)練樣本并配合第二階段的模型輸入構(gòu)造,負(fù)例F1相比Base顯著提升10.35%,引入基于多相似矩陣的深度交互方法后,負(fù)例F1相比Base提升11.14%。模型在Benchmark上的整體指標(biāo)也達(dá)到了AUC為0.96,F(xiàn)1為0.97的高值。

4.2 線上效果

為有效衡量用戶搜索滿意度,點評搜索每天對線上實際流量進行抽樣并人工標(biāo)注,采用列表頁首屏BadCase率作為相關(guān)性模型效果評估的核心指標(biāo)。相關(guān)性模型上線后,點評搜索的月平均BadCase率指標(biāo)相比上線前顯著下降了2.9pp(Percentage Point,百分比絕對點),并在后續(xù)幾周BadCase率指標(biāo)穩(wěn)定在低點附近,同時,搜索列表頁的NDCG指標(biāo)穩(wěn)定提升2pp??梢钥闯鱿嚓P(guān)性模型可以有效識別不相關(guān)商戶,顯著降低了搜索的首屏不相關(guān)性問題占比,從而提升了用戶的搜索體驗。

下圖10列舉了部分線上BadCase解決示例,小標(biāo)題是該示例對應(yīng)的Query,左邊為應(yīng)用了相關(guān)性模型的實驗組,右邊為對照組。圖10(a)中當(dāng)搜索詞為“佩姐”時,相關(guān)性模型將商戶核心詞包含“佩姐”的商戶“佩姐名品”判斷為相關(guān),并將用戶可能想找但輸錯的高質(zhì)目標(biāo)商戶“珮姐老火鍋”也判斷為相關(guān),同時,通過引入地址字段標(biāo)識,將地址中位于“珮姐”旁邊的商戶判斷為不相關(guān);圖10(b)中用戶通過Query“柚子日料自助”想找一家名為“柚子”的日料自助店,相關(guān)性模型將拆詞匹配到有柚子相關(guān)商品售賣的日料自助店“竹若金槍魚”正確判斷為不相關(guān)并將其排序靠后,保證展示在靠前的均為更符合用戶主要需求的商戶。

圖片

(a) 佩姐

圖片(b) 柚子日料自助圖10 線上BadCase解決示例

5. 總結(jié)與展望

本文介紹了大眾點評搜索相關(guān)性模型的技術(shù)方案及應(yīng)用實戰(zhàn)。為了更好地構(gòu)造商戶側(cè)模型輸入信息,我們引入了實時抽取商戶匹配字段摘要文本的方法來構(gòu)造商戶表征作為模型輸入;為了優(yōu)化模型來更好地適配點評搜索相關(guān)性計算,使用了兩階段訓(xùn)練的方式,采用基于點擊和人工標(biāo)注數(shù)據(jù)的兩階段訓(xùn)練方案來有效利用大眾點評的用戶點擊數(shù)據(jù),并根據(jù)相關(guān)性計算的特點提出了基于多相似矩陣的深度交互結(jié)構(gòu),進一步提升相關(guān)性模型的效果;為緩解相關(guān)性模型的線上計算壓力,在線上部署時引入緩存機制和TF-Serving預(yù)測加速,引入黃金規(guī)則層對Query分流,將相關(guān)性計算與核心排序?qū)硬⑿谢?,從而滿足了線上實時計算BERT的性能要求。通過將相關(guān)性模型應(yīng)用在搜索鏈路各環(huán)節(jié),顯著降低了不相關(guān)問題占比,有效改善了用戶的搜索體驗。

目前,點評搜索相關(guān)性模型在模型表現(xiàn)及線上應(yīng)用上仍有提升空間,在模型結(jié)構(gòu)方面,我們將探索更多領(lǐng)域先驗知識的引入方式,例如識別Query中實體類型的多任務(wù)學(xué)習(xí)、融入外部知識優(yōu)化模型的輸入等;在實際應(yīng)用方面,將進一步細(xì)化為更多檔位,以滿足用戶對于精細(xì)化找店的需求。我們還會嘗試將相關(guān)性的能力應(yīng)用到非商戶模塊中,優(yōu)化整個搜索列表的搜索體驗。

6. 作者簡介

校婭*、沈元*、朱迪、湯彪、張弓等,均來自美團/點評事業(yè)部搜索技術(shù)中心。*為本文共同一作。

責(zé)任編輯:張燕妮 來源: 美團技術(shù)團隊
相關(guān)推薦

2016-03-22 16:11:31

高可用性系統(tǒng)實踐經(jīng)驗

2016-05-23 16:22:49

大眾點評支付網(wǎng)關(guān)系統(tǒng)

2013-06-20 14:29:49

2016-02-16 17:14:13

高可用系統(tǒng)大眾點評

2015-10-12 11:25:20

android大眾點評下拉動畫

2016-09-29 15:03:50

大眾 點評

2015-07-16 13:23:13

2020-04-30 16:38:21

數(shù)據(jù)分析可視化代碼

2016-01-14 10:33:35

FusionServe華為大眾點評網(wǎng)

2013-06-19 09:51:00

大眾點評網(wǎng)大眾點評網(wǎng)被黑

2013-03-18 16:49:50

大眾點評315央視

2014-02-17 09:38:42

大眾點評股權(quán)微信入口

2012-04-20 18:26:09

大眾點評網(wǎng)王宏.Net

2019-05-28 14:43:25

CIO大眾點評APP

2015-10-08 10:09:16

2012-09-04 11:09:20

2012-04-25 18:07:17

大眾點評網(wǎng)王宏網(wǎng)站平臺遷移

2012-07-18 10:41:35

語音功能

2012-03-12 09:51:42

上市

2014-09-25 17:08:11

遷移Office 365大眾點評
點贊
收藏

51CTO技術(shù)棧公眾號