淘寶搜索算法現(xiàn)狀
【7哥導(dǎo)讀】本文是由淘寶搜索算法總監(jiān)青峰寫的算法現(xiàn)狀,介紹了算法模型、線下評估、線上測試的機制。對于希望了解淘寶搜索算法的同學(xué)很有幫助。
作者介紹:青峰,淘寶搜索算法總監(jiān)。
淘寶搜索排序的目的是幫助用戶快速的找到需要的商品。從技術(shù)上來說,就是在用戶輸入關(guān)鍵詞匹配到的商品中,把最符合用戶需求的商品排到第一位,其它的依次排在后續(xù)相應(yīng)的位置。為了更好的實現(xiàn)這個目標,算法排序系統(tǒng)基本按三個方面來推進: 一.算法模型 當用戶輸入關(guān)鍵詞進行搜索的時候,系統(tǒng)依據(jù)算法模型來給匹配到的每個商品進行實時的計算,并按照分數(shù)的大小對商品進行排序。 對于好的算法模型,首先需要考慮我們能夠有哪些特征因子可以應(yīng)用。比如在網(wǎng)頁搜索中,算法模型基本就是按網(wǎng)頁的重要性和相關(guān)性給網(wǎng)頁計算一個分數(shù),然后進行排序。這里的相關(guān)性,和重要性就是網(wǎng)頁排序模型中兩個重要的因子。具體來說相關(guān)性因子是指搜索關(guān)鍵字在文檔中出現(xiàn)的度數(shù),當這個度數(shù)越高時,則認為該文檔的相關(guān)程度越高。重要度因子比如Google的Pagerank,可以理解為一個網(wǎng)頁入口超級鏈接的數(shù)目:一個網(wǎng)頁被其他網(wǎng)頁引用得越多,則該網(wǎng)頁就越有價值。特別地,一個網(wǎng)頁被越重要的網(wǎng)頁所引用,則該網(wǎng)頁的重要程度也就越高。 考慮淘寶搜索的時候,有些特征因子是很容易能想到的,比如 A.文本的相關(guān)性:關(guān)鍵詞和商品的匹配,匹配的程度,是否重要詞的匹配,匹配詞之間的距離等,都可能影響相關(guān)性。比如搜索“小鴨子洗衣機”的時候,一個商品的中心詞是洗衣機的要比賣洗衣機配件商品的相關(guān)性高,小鴨子連在一起的相關(guān)性要比“小”和“鴨子”分開時候的相關(guān)性高等。文本相關(guān)性最基本的計算方式可以參考BM25等。 B.類目熱點:淘寶數(shù)據(jù)的一個重要特質(zhì)是每個商品都掛靠在類目屬性體系下面,每個商品都做了一個很好的分類。在搜索過程中,同一搜索詞的大量用戶行為數(shù)據(jù)很容易聚焦到相應(yīng)的熱點類目,比如“手機”的搜索行為會集中到手機類目,而不是配件類目。 C.圖片質(zhì)量:圖片是電子商務(wù)網(wǎng)站非常重要的一個數(shù)據(jù),圖片是否精美吸引人,圖片上是否有各種各樣的“牛皮癬”,和商品匹配度等都很大程度上影響著用戶的點擊和購買決策。 D.商品質(zhì)量:每個商品都有不同的質(zhì)量,商品的描述真實性,是否物美價廉,受人歡迎的程度等 E.作弊因子:類似于全網(wǎng)搜索有關(guān)鍵詞堆砌,link spam,網(wǎng)頁重復(fù)等等作弊的問題,電子商務(wù)搜索也面臨同樣的問題,比如商品關(guān)鍵詞堆砌,重復(fù)鋪貨,重復(fù)開店,廣告商品引流等等,也有商品特有的問題如價格作弊,交易作弊等,需要利用統(tǒng)計分析或者機器學(xué)習(xí)來做異常行為,異常規(guī)律的發(fā)現(xiàn)和識別并運用到排序中 F.公平因子:淘寶的商品很豐富,每個搜索詞下都有足夠多的商品在競爭,需要在相似質(zhì)量的情況下讓更多的商品和賣家有展示的機會,而不是像網(wǎng)頁搜索一樣是一個基本靜態(tài)的排序,照成商品點擊和展示的馬太效應(yīng)。 類似的商品,賣家,買家,搜索詞等方面的特征因子有很多,一個排序模型就是把各種各樣不同的特征因子組合起來,給出一個最終的關(guān)鍵詞到商品的相關(guān)性分數(shù)。只用其中的一到兩個特征因子,已經(jīng)可以對商品做一些最基本的排序。如果有更多的特征參與到排序,我們就可能得到一個更好的排序算法。組合的方法可以有簡單的人工配置到復(fù)雜的類似Learning to Rank等的學(xué)習(xí)模型。 那么如何衡量不同算法之間的優(yōu)劣呢? 二.線下評估 算法模型的評估一般分為線下的評估和線上的評估,線下的評估很多都體現(xiàn)在搜索中常用的相關(guān)性(Relevance)指標。相關(guān)性的定義可以分為狹義相關(guān)性和廣義相關(guān)性兩方面,狹義相關(guān)性一般指檢索結(jié)果和用戶查詢的相關(guān)程度。而從廣義的層面,相關(guān)性可以理解為用戶查詢的綜合滿意度。當用戶在搜索框輸入關(guān)鍵詞,到需求獲得滿足,這之間經(jīng)歷的過程越順暢,越便捷,搜索相關(guān)性就越好。 在淘寶搜索衡量狹義相關(guān)性的時候,一般是使用PI(Per Item)測試的方法: A.抽取具有代表性的查詢關(guān)鍵詞,組成一個規(guī)模適當?shù)年P(guān)鍵詞集合 B.針對這個關(guān)鍵詞集合,從模型的產(chǎn)出結(jié)果中查詢對應(yīng)的結(jié)果,進行人工標注(人工判斷為相關(guān)性好,中,差等). ? ? ? ? 對人工評測的結(jié)果數(shù)據(jù),使用預(yù)定義好的評價計算公式比如DCG等,用數(shù)值化的方法來評價算法模型的結(jié)果和標注的理想結(jié)果的接近程度 利用人工標注數(shù)據(jù)來計算相關(guān)性的分數(shù),來判斷模型的好壞;在這個過程中人工不可避免的會有主觀的判斷,但綜合了多人的判斷結(jié)果還是可以獲得一個有統(tǒng)計意義的結(jié)果,另一方面標注數(shù)據(jù)也可以幫助我們找到一個算法表現(xiàn)不理想的地方,有針對性的提升。 廣義的相關(guān)性線下評測比較困難,受人工主觀因素的影響更大,一般使用SBS(Side by Side)的評測方法,針對一個關(guān)鍵詞,把兩個不同算法模型產(chǎn)出的結(jié)果同時展示在屏幕上,每次新模型和對比模型展示的位置關(guān)系都是隨即的,人工判斷的時候不知道哪一邊的數(shù)據(jù)是新模型的結(jié)果,人工判斷那一邊的搜索結(jié)果好,以最終的統(tǒng)計結(jié)果綜合來衡量新模型和老模型的搜索表現(xiàn)。 線下評測的方法和指標有很多,不同的搜索引擎會關(guān)注不同的指標,比如以前Yahoo的全網(wǎng)搜索引擎比較關(guān)注RCFP (Relevance,Coverage,F(xiàn)reshness, Perspective)等,淘寶搜索線下評測時候一般統(tǒng)計DCG和SBS的指標。 線下的評測方法從統(tǒng)計上有一定的指導(dǎo)意義,能從一定程度上區(qū)分模型的好壞,但要真正驗證算法模型的好壞,還需要接受真實的流量來驗證。 三.線上測試 為了真實驗證一個算法模型的好壞,需要有一個系統(tǒng)能提供真實的流量來檢驗。淘寶搜索實現(xiàn)的BTS(Bucket Testing System)系統(tǒng)就是這樣的一個環(huán)境,在用戶搜索時,由搜索系統(tǒng)根據(jù)一定的策略來自動決定用戶的分組號(Bucket id),保證自動抽取導(dǎo)入不同分組的流量具有可對比性,然后讓不同分組的用戶看到的不同算法模型提供的結(jié)果。用戶在不同模型下的行為將被記錄下來,這些行為數(shù)據(jù)通過數(shù)據(jù)分析形成一系列指標,而通過這些指標的比較,最后就形成了不同模型之間孰優(yōu)孰劣的結(jié)論。只要分組的流量達到一定的程度,數(shù)據(jù)指標從統(tǒng)計意義上就具有可比性。 不同的BTS系統(tǒng)會關(guān)注不同的數(shù)據(jù)指標,在淘寶搜索,有一些重要的指標是很多算法模型測試的時候關(guān)注的: 大部分時候我們都有好幾個模型和功能在線上測試,我們用BTS的方式來觀察測試的情況,如果提升穩(wěn)定就逐漸開放給所有用戶,如果沒有提升,我們也能從中獲得經(jīng)驗幫助我們更好的理解用戶。 文章來源:鬼腳七的微信 本文由“人人都是產(chǎn)品經(jīng)理”QQ群④群的 ?Charles-PM-北京?推薦
- 目前還沒評論,等你發(fā)揮!