淘寶搜索算法現(xiàn)狀

0 評(píng)論 12931 瀏覽 43 收藏 11 分鐘

【7哥導(dǎo)讀】本文是由淘寶搜索算法總監(jiān)青峰寫的算法現(xiàn)狀,介紹了算法模型、線下評(píng)估、線上測(cè)試的機(jī)制。對(duì)于希望了解淘寶搜索算法的同學(xué)很有幫助。

作者介紹:青峰,淘寶搜索算法總監(jiān)。

淘寶搜索排序的目的是幫助用戶快速的找到需要的商品。從技術(shù)上來(lái)說(shuō),就是在用戶輸入關(guān)鍵詞匹配到的商品中,把最符合用戶需求的商品排到第一位,其它的依次排在后續(xù)相應(yīng)的位置。為了更好的實(shí)現(xiàn)這個(gè)目標(biāo),算法排序系統(tǒng)基本按三個(gè)方面來(lái)推進(jìn):

一.算法模型

當(dāng)用戶輸入關(guān)鍵詞進(jìn)行搜索的時(shí)候,系統(tǒng)依據(jù)算法模型來(lái)給匹配到的每個(gè)商品進(jìn)行實(shí)時(shí)的計(jì)算,并按照分?jǐn)?shù)的大小對(duì)商品進(jìn)行排序。

對(duì)于好的算法模型,首先需要考慮我們能夠有哪些特征因子可以應(yīng)用。比如在網(wǎng)頁(yè)搜索中,算法模型基本就是按網(wǎng)頁(yè)的重要性和相關(guān)性給網(wǎng)頁(yè)計(jì)算一個(gè)分?jǐn)?shù),然后進(jìn)行排序。這里的相關(guān)性,和重要性就是網(wǎng)頁(yè)排序模型中兩個(gè)重要的因子。具體來(lái)說(shuō)相關(guān)性因子是指搜索關(guān)鍵字在文檔中出現(xiàn)的度數(shù),當(dāng)這個(gè)度數(shù)越高時(shí),則認(rèn)為該文檔的相關(guān)程度越高。重要度因子比如Google的Pagerank,可以理解為一個(gè)網(wǎng)頁(yè)入口超級(jí)鏈接的數(shù)目:一個(gè)網(wǎng)頁(yè)被其他網(wǎng)頁(yè)引用得越多,則該網(wǎng)頁(yè)就越有價(jià)值。特別地,一個(gè)網(wǎng)頁(yè)被越重要的網(wǎng)頁(yè)所引用,則該網(wǎng)頁(yè)的重要程度也就越高。

考慮淘寶搜索的時(shí)候,有些特征因子是很容易能想到的,比如

A.文本的相關(guān)性:關(guān)鍵詞和商品的匹配,匹配的程度,是否重要詞的匹配,匹配詞之間的距離等,都可能影響相關(guān)性。比如搜索“小鴨子洗衣機(jī)”的時(shí)候,一個(gè)商品的中心詞是洗衣機(jī)的要比賣洗衣機(jī)配件商品的相關(guān)性高,小鴨子連在一起的相關(guān)性要比“小”和“鴨子”分開時(shí)候的相關(guān)性高等。文本相關(guān)性最基本的計(jì)算方式可以參考BM25等。

B.類目熱點(diǎn):淘寶數(shù)據(jù)的一個(gè)重要特質(zhì)是每個(gè)商品都掛靠在類目屬性體系下面,每個(gè)商品都做了一個(gè)很好的分類。在搜索過(guò)程中,同一搜索詞的大量用戶行為數(shù)據(jù)很容易聚焦到相應(yīng)的熱點(diǎn)類目,比如“手機(jī)”的搜索行為會(huì)集中到手機(jī)類目,而不是配件類目。

C.圖片質(zhì)量:圖片是電子商務(wù)網(wǎng)站非常重要的一個(gè)數(shù)據(jù),圖片是否精美吸引人,圖片上是否有各種各樣的“牛皮癬”,和商品匹配度等都很大程度上影響著用戶的點(diǎn)擊和購(gòu)買決策。

D.商品質(zhì)量:每個(gè)商品都有不同的質(zhì)量,商品的描述真實(shí)性,是否物美價(jià)廉,受人歡迎的程度等

E.作弊因子:類似于全網(wǎng)搜索有關(guān)鍵詞堆砌,link spam,網(wǎng)頁(yè)重復(fù)等等作弊的問(wèn)題,電子商務(wù)搜索也面臨同樣的問(wèn)題,比如商品關(guān)鍵詞堆砌,重復(fù)鋪貨,重復(fù)開店,廣告商品引流等等,也有商品特有的問(wèn)題如價(jià)格作弊,交易作弊等,需要利用統(tǒng)計(jì)分析或者機(jī)器學(xué)習(xí)來(lái)做異常行為,異常規(guī)律的發(fā)現(xiàn)和識(shí)別并運(yùn)用到排序中

F.公平因子:淘寶的商品很豐富,每個(gè)搜索詞下都有足夠多的商品在競(jìng)爭(zhēng),需要在相似質(zhì)量的情況下讓更多的商品和賣家有展示的機(jī)會(huì),而不是像網(wǎng)頁(yè)搜索一樣是一個(gè)基本靜態(tài)的排序,照成商品點(diǎn)擊和展示的馬太效應(yīng)。

類似的商品,賣家,買家,搜索詞等方面的特征因子有很多,一個(gè)排序模型就是把各種各樣不同的特征因子組合起來(lái),給出一個(gè)最終的關(guān)鍵詞到商品的相關(guān)性分?jǐn)?shù)。只用其中的一到兩個(gè)特征因子,已經(jīng)可以對(duì)商品做一些最基本的排序。如果有更多的特征參與到排序,我們就可能得到一個(gè)更好的排序算法。組合的方法可以有簡(jiǎn)單的人工配置到復(fù)雜的類似Learning to Rank等的學(xué)習(xí)模型。

那么如何衡量不同算法之間的優(yōu)劣呢?

二.線下評(píng)估

算法模型的評(píng)估一般分為線下的評(píng)估和線上的評(píng)估,線下的評(píng)估很多都體現(xiàn)在搜索中常用的相關(guān)性(Relevance)指標(biāo)。相關(guān)性的定義可以分為狹義相關(guān)性和廣義相關(guān)性兩方面,狹義相關(guān)性一般指檢索結(jié)果和用戶查詢的相關(guān)程度。而從廣義的層面,相關(guān)性可以理解為用戶查詢的綜合滿意度。當(dāng)用戶在搜索框輸入關(guān)鍵詞,到需求獲得滿足,這之間經(jīng)歷的過(guò)程越順暢,越便捷,搜索相關(guān)性就越好。

在淘寶搜索衡量狹義相關(guān)性的時(shí)候,一般是使用PI(Per Item)測(cè)試的方法:

A.抽取具有代表性的查詢關(guān)鍵詞,組成一個(gè)規(guī)模適當(dāng)?shù)年P(guān)鍵詞集合

B.針對(duì)這個(gè)關(guān)鍵詞集合,從模型的產(chǎn)出結(jié)果中查詢對(duì)應(yīng)的結(jié)果,進(jìn)行人工標(biāo)注(人工判斷為相關(guān)性好,中,差等). ? ? ? ? 對(duì)人工評(píng)測(cè)的結(jié)果數(shù)據(jù),使用預(yù)定義好的評(píng)價(jià)計(jì)算公式比如DCG等,用數(shù)值化的方法來(lái)評(píng)價(jià)算法模型的結(jié)果和標(biāo)注的理想結(jié)果的接近程度

利用人工標(biāo)注數(shù)據(jù)來(lái)計(jì)算相關(guān)性的分?jǐn)?shù),來(lái)判斷模型的好壞;在這個(gè)過(guò)程中人工不可避免的會(huì)有主觀的判斷,但綜合了多人的判斷結(jié)果還是可以獲得一個(gè)有統(tǒng)計(jì)意義的結(jié)果,另一方面標(biāo)注數(shù)據(jù)也可以幫助我們找到一個(gè)算法表現(xiàn)不理想的地方,有針對(duì)性的提升。

廣義的相關(guān)性線下評(píng)測(cè)比較困難,受人工主觀因素的影響更大,一般使用SBS(Side by Side)的評(píng)測(cè)方法,針對(duì)一個(gè)關(guān)鍵詞,把兩個(gè)不同算法模型產(chǎn)出的結(jié)果同時(shí)展示在屏幕上,每次新模型和對(duì)比模型展示的位置關(guān)系都是隨即的,人工判斷的時(shí)候不知道哪一邊的數(shù)據(jù)是新模型的結(jié)果,人工判斷那一邊的搜索結(jié)果好,以最終的統(tǒng)計(jì)結(jié)果綜合來(lái)衡量新模型和老模型的搜索表現(xiàn)。

線下評(píng)測(cè)的方法和指標(biāo)有很多,不同的搜索引擎會(huì)關(guān)注不同的指標(biāo),比如以前Yahoo的全網(wǎng)搜索引擎比較關(guān)注RCFP (Relevance,Coverage,F(xiàn)reshness, Perspective)等,淘寶搜索線下評(píng)測(cè)時(shí)候一般統(tǒng)計(jì)DCG和SBS的指標(biāo)。

線下的評(píng)測(cè)方法從統(tǒng)計(jì)上有一定的指導(dǎo)意義,能從一定程度上區(qū)分模型的好壞,但要真正驗(yàn)證算法模型的好壞,還需要接受真實(shí)的流量來(lái)驗(yàn)證。

三.線上測(cè)試

為了真實(shí)驗(yàn)證一個(gè)算法模型的好壞,需要有一個(gè)系統(tǒng)能提供真實(shí)的流量來(lái)檢驗(yàn)。淘寶搜索實(shí)現(xiàn)的BTS(Bucket Testing System)系統(tǒng)就是這樣的一個(gè)環(huán)境,在用戶搜索時(shí),由搜索系統(tǒng)根據(jù)一定的策略來(lái)自動(dòng)決定用戶的分組號(hào)(Bucket id),保證自動(dòng)抽取導(dǎo)入不同分組的流量具有可對(duì)比性,然后讓不同分組的用戶看到的不同算法模型提供的結(jié)果。用戶在不同模型下的行為將被記錄下來(lái),這些行為數(shù)據(jù)通過(guò)數(shù)據(jù)分析形成一系列指標(biāo),而通過(guò)這些指標(biāo)的比較,最后就形成了不同模型之間孰優(yōu)孰劣的結(jié)論。只要分組的流量達(dá)到一定的程度,數(shù)據(jù)指標(biāo)從統(tǒng)計(jì)意義上就具有可比性。

不同的BTS系統(tǒng)會(huì)關(guān)注不同的數(shù)據(jù)指標(biāo),在淘寶搜索,有一些重要的指標(biāo)是很多算法模型測(cè)試的時(shí)候關(guān)注的:

  • 訪問(wèn)UV成交轉(zhuǎn)化率:來(lái)淘寶搜索的UV,最終通過(guò)搜索結(jié)果成交的用戶占比。
  • IPV-UV轉(zhuǎn)化率:來(lái)淘寶搜索的UV,有多少比例的用戶點(diǎn)擊了搜索結(jié)果
  • CTR:搜索產(chǎn)生的點(diǎn)擊占搜索產(chǎn)生的PV的比例
  • 客單價(jià):每個(gè)成交用戶在淘寶搜索上產(chǎn)生成交的平均價(jià)格
  • 基尼系數(shù):基尼系數(shù)是一個(gè)經(jīng)濟(jì)學(xué)名詞,考量社會(huì)財(cái)富的集中度;如果社會(huì)財(cái)富集中到很少一部分富人手中的時(shí)候,基尼系數(shù)就會(huì)增大,社會(huì)的穩(wěn)定性和可持續(xù)發(fā)展性就會(huì)出現(xiàn)問(wèn)題;淘寶搜索借用了這個(gè)概念來(lái)衡量搜索帶給賣家的PV展示,和點(diǎn)擊的集中度,在保證用戶體驗(yàn)的前提下,給更多的優(yōu)質(zhì)或小小而美的賣家展示的機(jī)會(huì)。

大部分時(shí)候我們都有好幾個(gè)模型和功能在線上測(cè)試,我們用BTS的方式來(lái)觀察測(cè)試的情況,如果提升穩(wěn)定就逐漸開放給所有用戶,如果沒有提升,我們也能從中獲得經(jīng)驗(yàn)幫助我們更好的理解用戶。

文章來(lái)源:鬼腳七的微信

本文由“人人都是產(chǎn)品經(jīng)理”QQ群④群的 ?Charles-PM-北京?推薦

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒評(píng)論,等你發(fā)揮!