機器學(xué)習(xí)在搜索中的應(yīng)用:個性化排序
編輯導(dǎo)語:隨著科技的發(fā)展,AI、機器學(xué)習(xí)等逐漸出現(xiàn)在我們的生活里,有了這些的出現(xiàn),我們進行搜索時會變得更加準確和智能;本文作者詳細介紹了機器學(xué)習(xí)在搜索中的應(yīng)用,我們一起來看一下。
AI、機器學(xué)習(xí),是現(xiàn)在媒體的高頻曝光詞,市面上的很多應(yīng)用都逐漸接入了AI的能力;搜索這樣的‘古董’級產(chǎn)品,其實也是應(yīng)用機器學(xué)習(xí)技術(shù)的先驅(qū)。
本次從搜索的一個場景——搜索結(jié)果排序,來聊聊機器學(xué)習(xí)在搜索產(chǎn)品中的應(yīng)用。
一、為什么有機器學(xué)習(xí)排序
先從搜索的常規(guī)三步驟:query解析->召回->排序說起。
用戶輸入一個搜索關(guān)鍵詞(也稱為query),通過分詞/語義理解后,將從系統(tǒng)數(shù)據(jù)庫中召回大量相關(guān)的內(nèi)容;接下來的問題就是如何對成百上千條的數(shù)據(jù)進行排序,把用戶搜索意圖最相關(guān)的內(nèi)容排在前面。
1.?傳統(tǒng)的排序方法
排序:是對一系列的數(shù)據(jù)按某些特征因子進行排名,特征的選擇以及特征權(quán)重的賦予;將影響內(nèi)容排序的先后,一套排序規(guī)則的確定通常需要產(chǎn)品專家與算法專家共同設(shè)計。
對于特征的選擇,可以按內(nèi)容的屬性特征與文本相關(guān)特征分為兩類。
內(nèi)容的屬性是由業(yè)務(wù)性質(zhì)所決定,比如電商業(yè)務(wù),內(nèi)容屬性特征就可以包括價格、銷量、加購、收藏、庫存、類目、品牌、上架時間、評論、商家信譽等;視頻類業(yè)務(wù)就可以考慮播放時長、觀看量、完播率、點贊、收藏、評論數(shù)、轉(zhuǎn)發(fā)數(shù)、主題類型等。
文本相關(guān)特征,則主要是query和內(nèi)容的文本屬性,如query對應(yīng)內(nèi)容文檔的BM-25、TD-IDF分值、內(nèi)容文檔的不同范圍(如標題、簡介、廣告詞、URL鏈接、描述等)的語言模型得分等,這一塊主要以算法專家主導(dǎo)。
特征選取后,再對所有特征賦予一定權(quán)重,最后對加權(quán)的特征計算一個相關(guān)性的總分,就可以對結(jié)果進行排序,方便理解起見,把排序打分想象為以下的組合公式:
F_score = W1*X1+W2*X2+…+Wn*Xn
X就是某一項特征,W就是對應(yīng)特征的權(quán)重系數(shù),在實際應(yīng)用中,通??梢杂僧a(chǎn)品與算法專家們基于對實際業(yè)務(wù)的理解并結(jié)合定期的數(shù)據(jù)反饋不斷進行特征與權(quán)重的調(diào)整。
2. 機器學(xué)習(xí)排序
隨著業(yè)務(wù)愈發(fā)復(fù)雜,特征愈發(fā)多樣,影響一次搜索的因子可能達到幾十甚至上百個,每個特征因子都由人工進行調(diào)權(quán)將變得愈發(fā)困難。
那么能否把專家的經(jīng)驗固化為系統(tǒng)自動化的方式呢,機器學(xué)習(xí)排序的方式應(yīng)運而出。
機器學(xué)習(xí),是教會系統(tǒng)從歷史數(shù)據(jù)的事實中總結(jié)經(jīng)驗,形成規(guī)律并對未來新的數(shù)據(jù)進行預(yù)測。
參照傳統(tǒng)專家排序,機器學(xué)習(xí)解決排序問題的思路大致分為以下三步:定義學(xué)習(xí)目標、明確學(xué)習(xí)策略、找到達成目標的最優(yōu)解。
1)定義學(xué)習(xí)目標
即系統(tǒng)要解決什么問題,對于搜索排序通常就是如何更好的提升結(jié)果的點擊率;但是結(jié)合業(yè)務(wù)再深挖一步的話,指標選擇可以更細化,比如電商則希望能提升訂單的成交率,視頻則看重點擊后是否能提升觀看時長等——不同的業(yè)務(wù)目標最終決定了機器要學(xué)習(xí)成怎樣的結(jié)果。
2)明確學(xué)習(xí)策略
解決的是系統(tǒng)如何去學(xué)的問題,為此要給機器確定學(xué)習(xí)的范圍與學(xué)習(xí)的養(yǎng)料。
學(xué)習(xí)的范圍,即判斷系統(tǒng)達成目標需要包含哪些因素,解決思路其實與經(jīng)典排序的特征因子選擇的思想同出一源。
讓我們再回看上文提到的排序打分公式F_score=W1*X1+W2*X2+…+Wn*Xn,特征的個數(shù)及其意義,就組成了系統(tǒng)學(xué)習(xí)的范圍框架;在選擇特征因子這個過程中,特征的設(shè)計都可以由業(yè)務(wù)專家們提供指導(dǎo);當(dāng)特征因子的組合能愈發(fā)表征我們的學(xué)習(xí)目標,模型效果往往愈發(fā)逼近業(yè)務(wù)期望。
比如我們現(xiàn)在要優(yōu)化電商業(yè)務(wù)的搜索,假定目標是提升搜索帶來的下單轉(zhuǎn)化率,那么可以考慮從如下四個維度構(gòu)建影響目標效果的特征:
- 用戶特征,即用戶靜態(tài)屬性,如性別、年齡、學(xué)歷、地域、收入、婚姻狀況等。
- 行為特征,通常是看用戶的歷史行為,如上一次的搜索詞、近一周有過點擊次數(shù)最多的搜索詞、加購的商品、收藏點贊的商品、近一周瀏覽訪問最多的頻道/商鋪,考慮復(fù)購因素還可以納入一段時間(如一個月或三個月)有過購買次數(shù)的商品類目等。
- 交易特征,即關(guān)注用戶的消費偏好,如近期(一周/一個月)消費金額、消費頻次,是否分期用戶、是否會員等。
- 商品特征,即商品本身屬性,如上文提到的價格、庫存、類目、品牌、評價、銷量(通常要考慮時間衰減性,計算一定時間周期如一周的數(shù)量)等。把這些與業(yè)務(wù)屬性相關(guān)的因素梳理好,結(jié)合文本相關(guān)特征,也就大致把機器學(xué)習(xí)的邊界框定了下來。
學(xué)習(xí)的養(yǎng)料,即訓(xùn)練模型的數(shù)據(jù),我們需要從學(xué)習(xí)目標與學(xué)習(xí)范圍出發(fā),為機器構(gòu)造適合學(xué)習(xí)的內(nèi)容。
特征敲定了,接下來就是把數(shù)據(jù)來源拿過來——數(shù)據(jù)采集,如商品交易數(shù)據(jù)源頭在訂單系統(tǒng),另外如行為數(shù)據(jù),則需要對前端進行埋點采集;這可能會需要與多個業(yè)務(wù)系統(tǒng)對接或者從數(shù)據(jù)倉庫中取數(shù),在系統(tǒng)對接之前,一定要先確定數(shù)據(jù)的口徑是否與特征意義保持一致。
3)找到達成目標的最優(yōu)解
最后一步其實就是建模的過程,包括模型選擇、模型訓(xùn)練、模型評估;有了特征數(shù)據(jù),算法工程師可以依據(jù)經(jīng)驗選擇某類機器學(xué)習(xí)的模型,對特征進行組合與學(xué)習(xí),最終完成對目標的求解。
以上是機器學(xué)習(xí)排序構(gòu)建的思路,下面將用白話的方式簡要介紹排序?qū)W習(xí)的算法原理,不關(guān)注技術(shù)算法的同學(xué)可以略過~
二、LearningToRank
LearningToRank(LTR)是一種用來解決排序問題的算法框架思想,本質(zhì)上屬于有監(jiān)督學(xué)習(xí)的過程,感興趣的同學(xué)可以參考文獻1、2等進一步研究。
1. 學(xué)習(xí)方式分類
LTR按學(xué)習(xí)方式的不同分為三類,單文檔方法(Pointwise)、文檔對方法(Pairwise)和文檔列表方法(Listwise)三類。
1)Pointwise
單文檔方法是對于給定的查詢query,某一單個文檔結(jié)果與查詢的關(guān)聯(lián)程度,例如查詢‘華為’,點擊了華為手機,那么只有華為手機是與搜索詞’華為’關(guān)聯(lián)的,華為平板電腦、華為手表都是該查詢詞的負樣本。
2)Pairwise
文檔對方法考慮的是對于給定查詢詞query,返回的結(jié)果中兩個文檔對之間的相對相關(guān)度,比如搜‘炸雞’,返回結(jié)果的相關(guān)性‘KFC’>’麥當(dāng)勞’,以“炸雞,(KFC>麥當(dāng)勞)”這樣的組合方式對機器進行訓(xùn)練,最終的序列是考慮了兩兩相關(guān)度比較之后的結(jié)果。
3)Listwise
文檔列表方法考慮的是給定查詢下的文檔集合的整體序列,直接優(yōu)化模型輸出的文檔序列,使得其盡可能接近真實文檔序列。
2. 模型實現(xiàn)
基于上述排序?qū)W習(xí)的思想,目前部分模型在原生框架中已經(jīng)集成了對L2R的實現(xiàn)。
1)樹模型
樹模型可以理解為是一系列的if-else規(guī)則的組合,通過每一個特征的決策來影響最終結(jié)果的判斷輸出,其中的典型代表是XGBoost / LightGBM。
XGBoost / LightGBM模型本身已支持對排序問題的訓(xùn)練,通過設(shè)置模型中的參數(shù)即可直接訓(xùn)練LTR問題。(XGBoost是處理分類/回歸的通用模型,并不是為解決排序問題而提出,在這里不得不驚嘆其不愧為機器學(xué)習(xí)界的大殺器~)。
2)TF-RANKING
這是谷歌公司在2018年提出的基于TensorFlow的LTR解決方案,嚴格來說其并非一種模型而是一個框架;其中包括一整套學(xué)習(xí)到排名的算法,可自定義損失函數(shù)及模型評估指標,對Pairwise和Listwise都提供支持。
三、小結(jié)
排序是搜索流程中最重要的問題之一,是最終直接面向用戶的環(huán)節(jié);排序結(jié)果的好壞很大程度上影響用戶體驗和商業(yè)轉(zhuǎn)化,也因此排序流程很早就開始引入機器學(xué)習(xí)的方式來進行優(yōu)化。
當(dāng)然客觀的說,機器學(xué)習(xí)也并非是優(yōu)化這一問題的最佳方式,某些業(yè)務(wù)通過專家規(guī)則的方式依然有很好的效果。
搜索排序是伴隨著我們的業(yè)務(wù)發(fā)展將不斷優(yōu)化的工作。
參考鏈接:
[1]https://zhuanlan.zhihu.com/p/93196423
[2]https://blog.csdn.net/ld326/article/details/81609783
[3]https://mp.weixin.qq.com/s/UpN7tAMjbFLSPcDYsWaykg
[4]https://blog.csdn.net/weixin_44220002/article/details/85212636
作者:策略伽;公眾號:策略伽
本文由 @策略伽 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議。
- 目前還沒評論,等你發(fā)揮!