前言
之前北京爬山的時(shí)候,剛好遇到京東搞推薦相關(guān)的朋友,在交流過(guò)程中發(fā)現(xiàn)推薦系統(tǒng)似乎和搜索系統(tǒng)在模型選用上有很大差別,特別是在排序模型這塊。后面在學(xué)習(xí)王喆老師的《深度學(xué)習(xí)推薦系統(tǒng)》一書時(shí),發(fā)現(xiàn)在推薦系統(tǒng)中經(jīng)常采用深度網(wǎng)絡(luò)模型,以進(jìn)行特征的深層次交叉,而對(duì)傳統(tǒng)的(但具有可解釋性)樹模型的應(yīng)用似乎沒(méi)看到。本文簡(jiǎn)單談下筆者得到粗淺理解,由于筆者工作中沒(méi)接觸過(guò)推薦系統(tǒng),如有謬誤請(qǐng)聯(lián)系指出,本文遵守 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)聯(lián)系作者并注明出處,謝謝。
? \nabla ? 聯(lián)系方式:
e-mail: FesianXu@gmail.com
github: https://github.com/FesianXu
知乎專欄: 計(jì)算機(jī)視覺(jué)/計(jì)算機(jī)圖形理論與應(yīng)用
微信公眾號(hào): 機(jī)器學(xué)習(xí)雜貨鋪3號(hào)店
筆者看來(lái),推薦系統(tǒng)和搜索系統(tǒng)選用模型的區(qū)別,主要是由于建模目標(biāo)和特征特性導(dǎo)致的。搜索系統(tǒng)相關(guān)的博文,之前筆者簡(jiǎn)單寫過(guò)一些[1-4],對(duì)于搜索系統(tǒng)的用戶而言,他們的某次檢索行為大多數(shù)都是向系統(tǒng)“索要”答案的過(guò)程,用戶期待系統(tǒng)返回的內(nèi)容能解決ta的疑惑,并且這個(gè)內(nèi)容最好具有質(zhì)量好,權(quán)威性高,不會(huì)過(guò)時(shí)(時(shí)效性好)等優(yōu)點(diǎn)。在這個(gè)消費(fèi)過(guò)程中,用戶具有明顯的目的性,如果我們的系統(tǒng)單純以用戶指標(biāo),比如點(diǎn)擊率,展現(xiàn),跳轉(zhuǎn),分發(fā),pv,uv等指標(biāo)去衡量策略的優(yōu)劣,那么即便這個(gè)內(nèi)容的CTR,CVR預(yù)估等的確是非??壳暗?,也很有可能出現(xiàn)系統(tǒng)返回的結(jié)果并不能滿足用戶的檢索需求。這點(diǎn)很容易理解,舉個(gè)例子,輕微涉黃類的內(nèi)容(美女主播搞擦邊球),激進(jìn)社評(píng)這類型的吸引眼球的內(nèi)容總是有更多的用戶點(diǎn)擊,但是這些內(nèi)容并不能滿足用戶的檢索需求(用戶在這些內(nèi)容中找不到答案),如果用戶在搜索系統(tǒng)中無(wú)論搜索什么內(nèi)容,都出來(lái)這類型的結(jié)果,用戶體驗(yàn)將會(huì)極其惡劣。
因此搜索系統(tǒng)的結(jié)果好壞,是需要同時(shí)評(píng)估用戶指標(biāo)和用戶體驗(yàn)的。用戶指標(biāo)通過(guò)AB試驗(yàn)進(jìn)行評(píng)估,而用戶體驗(yàn)則會(huì)考慮對(duì)于同一個(gè)query,按照基線和策略分別檢索得到兩批doc list,評(píng)估這策略 vs 基線中,這兩批doc list結(jié)果的優(yōu)劣(Good, Same或者Bad的case數(shù)量)。這個(gè)評(píng)估同樣可以在不同產(chǎn)品中進(jìn)行評(píng)估,比如對(duì)于檢索詞“雞塊上有黑點(diǎn)怎么辦”,如Fig 1.1所示在百度和頭條上有不同的搜索結(jié)果,一般我們?cè)u(píng)估都需要剔除廣告后進(jìn)行評(píng)估(因?yàn)閺V告結(jié)果是由商業(yè)部門插入的,和搜索部門無(wú)關(guān),搜索部門只考慮自然結(jié)果的排序和呈現(xiàn))。顯然,用戶對(duì)于“雞塊”的理解,和百度搜索對(duì)于“雞塊”的理解有所偏差,對(duì)于系統(tǒng)理解的“雞塊”并不是當(dāng)前用戶的主需求,因此就這個(gè)case而言,百度用戶體驗(yàn)指標(biāo)是Bad(相對(duì)于競(jìng)品而言)。當(dāng)然,這只是一個(gè)case,百度還會(huì)有其他Good case,對(duì)于兩個(gè)系統(tǒng),或者兩個(gè)策略的綜合評(píng)估,需要抽樣不少的query進(jìn)行用戶體驗(yàn)評(píng)估后才能作出。
而對(duì)于推薦系統(tǒng),就筆者個(gè)人觀點(diǎn)來(lái)看,是比較少考慮搜索系統(tǒng)用戶體驗(yàn)這個(gè)維度的,更多的還是在關(guān)注用戶指標(biāo)。無(wú)論是視頻,文章,新聞,音樂(lè)還是商品,用戶期望在推薦系統(tǒng)中刷到自己喜歡的東西,對(duì)于“喜歡”的定義通常是多維度的。用戶可能之前剛剛關(guān)注了某個(gè)up主,就會(huì)傾向于推薦該up主的其他視頻;用戶可能經(jīng)常收聽古典音樂(lè),下一次推薦可能就是“月光奏鳴曲”;用戶剛買了牙刷,系統(tǒng)就推薦牙膏;用戶剛關(guān)注了一個(gè)LSP用戶,系統(tǒng)就傾向于推薦該LSP用戶喜歡的小黃圖(不是系統(tǒng)搞黃色,而是協(xié)同濾波:P);用戶剛將個(gè)人資料學(xué)歷改成了???,系統(tǒng)就推薦專升本廣告。我們作為用戶,在日常耍手機(jī)的過(guò)程中發(fā)現(xiàn)了無(wú)數(shù)類似的推薦模式,雖然知道這些套路但是我們還是喜歡點(diǎn)擊,無(wú)他,這就是推薦系統(tǒng)設(shè)計(jì)之處干的事情,推薦用戶喜歡的東西,充分刺激分泌你的多巴胺,荷爾蒙,促進(jìn)你的消費(fèi)。由于用戶通常是多標(biāo)簽的,對(duì)于推薦的物料通常沒(méi)有所謂的正確答案,因此驗(yàn)證推薦策略的好壞,更多還是依賴于AB試驗(yàn)得到用戶指標(biāo)后進(jìn)行評(píng)估。
從搜索系統(tǒng)和推薦系統(tǒng)的建模目標(biāo),我們不難看出搜索系統(tǒng)在解case的時(shí)候是更需要考慮模型的可解釋性的,出來(lái)一個(gè)如Fig 1.1所示的Bad case,我們要考慮整個(gè)系統(tǒng)中是哪個(gè)模塊出問(wèn)題導(dǎo)致的。正如筆者在博文[1]所講的,搜索系統(tǒng)就是由由各種打分與條件規(guī)則組合成的復(fù)雜系統(tǒng),那么bad case或多或少可以歸因到里面的某個(gè)或某些打分沒(méi)打?qū)Γ蛘吣承l件規(guī)則出現(xiàn)了意外情況導(dǎo)致的。對(duì)于打分沒(méi)打?qū)Φ那闆r,我們需要模型具有足夠的解釋性,讓我們分析倒底是哪個(gè)打分出問(wèn)題了。
說(shuō)到模型可解釋性,自然首選還是樹模型。樹模型在訓(xùn)練過(guò)程中,由于可以對(duì)每個(gè)特征的分裂增益進(jìn)行統(tǒng)計(jì),因此可以計(jì)算每個(gè)特征的重要程度,我們將其視為是特征的權(quán)重,越高表示該特征在樹模型決策中具有更重要的作用。在搜索系統(tǒng)中,根據(jù)訓(xùn)練結(jié)果是pointwise,pairwise或者listwise,我們經(jīng)常采用GBDT,GBRank,LambdaRank和RankSVM等LTR算法進(jìn)行排序[3]。如Fig 1.2所示,LTR排序模型的每個(gè)輸入都可能來(lái)自于其他高級(jí)特征,比如通過(guò)BERT建模的Query-Title的相關(guān)性匹配打分,通過(guò)雙塔多模態(tài)建模的Query-Video相關(guān)性,通過(guò)神經(jīng)網(wǎng)絡(luò)建模的CTR預(yù)估模型,甚至LTR排序模型的輸入可以是其他樹模型的輸出(比如權(quán)威性模型,質(zhì)量模型,CTR預(yù)估樹模型等)。當(dāng)然,LTR排序模型的輸入也可以是一些統(tǒng)計(jì)特征,比如后驗(yàn)播放時(shí)長(zhǎng),后驗(yàn)點(diǎn)擊率,后驗(yàn)跳轉(zhuǎn)等。在出現(xiàn)bad case的時(shí)候,我們通過(guò)分別交換case之間的樹模型特征,可以得到swap diff,這個(gè)diff衡量了在該特征下,目標(biāo)case和bad case之間排序打分差別。通過(guò)對(duì)比swap diff可以對(duì)特征的影響進(jìn)行分析,從而將debug的影響面快速收斂到一個(gè)或者幾個(gè)特征中,而不需要在海量的打分中進(jìn)行糾結(jié)和猜測(cè)。這樣debug快速收斂的能力,讓我們能夠?qū)Σ焕硐氲母呒?jí)特征模型進(jìn)行快速迭代。
對(duì)于推薦系統(tǒng)來(lái)說(shuō),其最主要還是用戶特征,物料特征,其他特征的充分特征交叉,以及如何對(duì)這些特征進(jìn)行表達(dá)。這些特征可能大部分都是未曾進(jìn)行預(yù)處理的原始特征,即便進(jìn)行了預(yù)處理,其預(yù)處理通常也是離散化(分桶),截?cái)?,除去離群值,填補(bǔ)缺失值等。這種情況在搜索系統(tǒng)中很少出現(xiàn),搜索的排序模型大多輸入都是高級(jí)特征,原始特征比如Title,Query,OCR,ASR等文本信息,文檔類型,視頻分類等ID類信息,大多都在高級(jí)模型里面轉(zhuǎn)化為數(shù)值型打分了。那么推薦系統(tǒng)為什么不考慮采用類似于搜索系統(tǒng)的模型構(gòu)型,采用樹模型進(jìn)行各個(gè)高級(jí)模型特征的匯總呢?其主要原因,筆者認(rèn)為還是建模目標(biāo)的不同,推薦系統(tǒng)不需要整個(gè)系統(tǒng)具有很強(qiáng)的可解釋性,但是比起搜索系統(tǒng)更強(qiáng)調(diào)在線用戶指標(biāo)的提升,需要考慮如何更好地進(jìn)行各種特征的交叉。正如上文舉的例子,用戶會(huì)對(duì)某個(gè)物料感興趣的原因是多種多樣的,ta可能剛好看到關(guān)注人觀看過(guò),可能是突然心血來(lái)潮,可能這個(gè)資源就是剛出的熱榜資源,流行度足夠高,也可能這個(gè)內(nèi)容和你最近的消費(fèi)習(xí)慣極其相關(guān),這些因素之間可能單獨(dú)生效,也可能多個(gè)因素綜合生效,導(dǎo)致你對(duì)某個(gè)資源感興趣。為了讓模型能夠充分地挖掘這些因子之間的關(guān)聯(lián),就需要設(shè)計(jì)模型讓特征進(jìn)行充分的交叉。如果采用類似于樹模型的結(jié)果,對(duì)神經(jīng)網(wǎng)絡(luò)模型個(gè)人覺(jué)得可能會(huì)有幾點(diǎn)不足:
- 樹模型的擬合能力不如深度模型,采用深度神經(jīng)模型的推薦模型可以更好地對(duì)特征之間的關(guān)系進(jìn)行學(xué)習(xí)。
- 樹模型常用于處理數(shù)值特征,數(shù)值特征是連續(xù)并且可比的。而推薦系統(tǒng)中存在大量的類別特征(categories feature),比如商品id,用戶id等,這類型的特征往往不可比,比如商品id=123456會(huì)比商品id=200000更差嗎?類別特征數(shù)值的比較通常是無(wú)意義的,在樹模型中不能直接進(jìn)行特征分裂(否則就是在比較類別特征的數(shù)值大小了),通常需要將其轉(zhuǎn)化為one-hot編碼后進(jìn)行處理。
- 樹模型無(wú)法很好地處理embedding特征。我們之前聊語(yǔ)義標(biāo)簽的時(shí)候[5]簡(jiǎn)單提過(guò)分布式表征,Embedding就是一種分布式表征,可以將one-hot編碼的稀疏特征轉(zhuǎn)化為密集表征(dense feature),從而提供語(yǔ)義關(guān)聯(lián)。目前大多數(shù)推薦模型都會(huì)考慮采用Embedding層對(duì)某些類別特征進(jìn)行Embedding編碼,而樹模型則無(wú)法很好地處理這類型信息。
Reference
[1]. https://blog.csdn.net/LoseInVain/article/details/126214410 《【見(jiàn)聞錄系列】我所理解的搜索業(yè)務(wù)二三事》
[2]. https://fesian.blog.csdn.net/article/details/125078683 《【見(jiàn)聞錄系列】我所理解的“業(yè)務(wù)”》
[3]. https://fesian.blog.csdn.net/article/details/123767279, 《搜索系統(tǒng)中的Learning To Rank模型:GBRank》
[4]. https://fesian.blog.csdn.net/article/details/116377189, 《從零開始的搜索系統(tǒng)學(xué)習(xí)筆記》文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-489714.html
[5]. https://blog.csdn.net/LoseInVain/article/details/114958239, 《語(yǔ)義標(biāo)簽(Semantic label)與多模態(tài)模型的一些關(guān)系》文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-489714.html
到了這里,關(guān)于【見(jiàn)聞錄系列】淺談搜索系統(tǒng)與推薦系統(tǒng)的一點(diǎn)區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!