首次披露!拍立淘技術框架及核心算法,日均UV超千萬 2017-8

https://yq.aliyun.com/articles/161333?utm_content=m_27815

出自:阿里雲/雲棲社區/阿里技術/博客

摘要: 近期,谷歌工程師爲何瘋狂迷上阿里郎的鞋?一文引發關注,以“拍立淘”爲代表的計算機圖像技術讓業內人士稱讚不已。以圖搜圖,是通過搜索圖像內容或者視覺特徵,爲用戶提供互聯網上相關圖像資料檢索服務的專業搜索引擎,是搜索引擎的一種細分。


image


近期,谷歌工程師爲何瘋狂迷上阿里郎的鞋?一文引發關注,以“拍立淘”爲代表的計算機圖像技術讓業內人士稱讚不已。以圖搜圖,是通過搜索圖像內容或者視覺特徵,爲用戶提供互聯網上相關圖像資料檢索服務的專業搜索引擎,是搜索引擎的一種細分。

移動端的以圖搜圖是一代又一代的圖像人,搜索人的夢想。從90年代開始,學術界,工業界做了很多的努力和嘗試。拍立淘從2014年首次上線之後,通過產品技術的不斷打磨,已經成爲淘寶每天超過千萬UV的應用。在業務指標的增長的同時,沉澱下來了業界領先的圖搜算法。

我們的目標不僅僅是滿足用戶以圖搜圖的好奇心,更是要讓用戶通過拍照,搜索到淘寶同款或者相似寶貝,簡化用戶的購物流程,讓以圖搜圖發揮真正的商業價值。

 


拍立淘目前業務狀況

 

拍立淘從2014年上線以來,從最初的每天幾百UV到如今的每天超過千萬UV。拍立淘的穩定增長標誌着消費者對以圖搜圖電商搜索的認可。與傳統的基於文字搜索的電商搜索相比,拍立淘只需要用戶隨手拍一張照片,省去了繁瑣的文字描述,簡化了用戶的購物流程,大大提高了電商購物的體驗。

拍立淘的入口和體驗如下:

image


拍立淘目前覆蓋幾乎淘寶所有的實體類目:比如衣服,鞋,箱包,瓶飲,配飾,傢俱,電子,零食,美妝,水果等。

image


拍立淘的圖像搜索和識別技術已經走出阿里集團,向集團外的公司輸出,比如三星旗艦手機S8在系統層面集成了拍立淘,用於相機和相冊。

image


位於海外的客戶,也可以通過AliExpress中集成的拍照購物功能,來享受拍照購物的便捷。

image

 

 


拍立淘的技術框架

 

拍立淘存在典型的技術驅動,在過去的三年多時間,我們不斷得通過技術的突破,來實驗了業務的增長。

image


拍立淘流程主要分爲離線流程和在線流程,主要步驟如下:

image


離線流程:主要是指拍立淘每天離線構建索引庫的整個流程,涉及選品、離線摳圖、離線抽取特徵、構建索引等環節。執行完畢之後,每天會在規定時間完成線上圖庫的更新。

在線流程:主要是指用戶一張query圖上傳之後,到最後返回結果的整個中間過程,包含在線類目識別,在線摳圖,在線特徵提取和在線索引查詢等關鍵步驟。

寶貝選品

阿里集團內有海量的商品類目和圖片,包含寶貝的主圖、SKU、副圖、曬單圖和詳情圖等,涵蓋電商領域的各個方面。如何從這些海量圖片中選出用戶最喜歡,最想買的寶貝是一件很有意思的工作。

我們首先會根據購物偏好和品質進行全淘圖片庫的過濾;由於淘寶上相同或者高度相似的寶貝太多,如果不處理的話,最後的搜索結果中就會出現大量一模一樣的寶貝,用戶體驗很差。因此在做完過濾之後,我們增加了圖片去重模塊,目的是把一模一樣或者高度相似的寶貝去重,優化最後的展示;最後,我們會結合運營需求,給最近一段時間做活動的寶貝打上運營標記。

類目預測

拍立淘類目是對淘寶葉子類目的一種劃分,既需考慮一定的視覺相似性,又需考慮一定的語義相似性。類目體系不僅僅是個技術問題,也是個業務問題(有利於消費者認知)。目前拍立淘有14個大類,涵蓋全淘所有葉子類目

image

 

摳圖

因爲商品的背景複雜,主體常常較小,所以爲了減少大量背景干擾和多主體的影響,因此需要將搜索目標從圖像中提取出來。下面兩幅圖反應了對於用戶的query,進行主體檢測和不進行主體檢測的搜索結果差異。

image


第一幅圖沒有由於進行摳圖,搜索結果中背景干擾比較明顯,都出現了綠色的背景,而用戶真正關心的主體衣服的搜索質量則很差。第二幅圖進行摳圖之後,搜索結果有了非常顯著的提高,主體衣服的匹配程度非常高。

圖像特徵

拍立淘的圖像特徵包括深度特徵和局部特徵。

深度特徵:基於深度學習框架學習出來的圖像表示。目前深度學習在圖像、語音等領域取得了重大突破,基於深度學習的圖像表示在很多任務上已經完勝傳統圖像特徵。拍立淘從立項之初就開始研究深度特徵,在這方面積累了大量的經驗,這也使得特徵成爲拍立淘核心競爭力之一,具體細節詳見後續章節。

局部特徵:局部特徵是圖像特徵的局部表達,它反應的是圖像具有的局部特殊性。拍立淘在常見的局部特徵基礎上進行改進,不僅進行維度壓縮,還優化提取速度,同時保證匹配精度不下降。

檢索索引

索引的流程可以分成離線和在線兩部分。離線過程對商品圖像特徵構建索引,在線過程對用戶query進行分佈式的快速查詢。

在線查詢流程主要分爲:粗召回 -> 積召回-> 歐式排序 -> 精排。

拍立淘目前的索引數據量有幾十億,如何高效的構建索引,同時保證在線查詢的精度是一個非常具有挑戰性的任務,拍立淘在這方面做了很多工作,詳見後續章節。

排序

深度特徵從高層提取信息,關注語義鴻溝;局部特徵關注圖像的局部信息。如果將兩者有效的結合起來,相輔相成,既能保證語義上的相似性,又能保證局部細節的匹配,因此我們在索引召回之後,會再進行一次排序,將深度特徵和局部特徵結合在一起。我們會學習一個ranking function,給深度特徵和局部特徵分配不同的比重,基於最後的score對索引返回結果做二次排序。

上述是拍立淘的各個模塊的介紹,下面我們會就拍立淘的三個核心技術:實拍圖精度提升;超大規模的向量檢索索引;移動端DL進行進一步的描述。

拍立淘核心技術


範例

 

實拍圖的突破

非實拍圖主要是指拍攝清晰,背景簡單的圖片,其中大部分來自淘寶寶貝的原圖。對於這種圖片,拍立淘的精度已經做的很高。但是對於一個以圖搜圖商業應用,真正的挑戰來自佔比用戶query大量的實拍圖,這類圖和非實拍圖差距很大,具有光照,角度,多主體等各種問題。

image


爲了把實拍圖做好,拍立淘不斷突破,在各個類目上都有非常顯著的提升。

1.數據“掘地三尺”

數據方面,我們利用了拍立淘log數據,曬單數據和主搜i2i數據。並構建相應的深度學習模型進行特徵訓練。

在拍立淘的場景,我們發現用戶的點擊等有效行爲大多是針對於同款,因此我們對PVLOG進行挖掘,噪聲過濾,形成triplet來進行特徵的訓練。拍立淘每天產生海量的圖像數據,通過構建基於實拍圖的deep pairwise ranking特徵學習框架,大幅度提高了實拍圖的搜索效果。

曬單圖可以作爲一個用戶真實實拍圖的近似。目前淘寶上有大量用戶上傳的曬單圖,但曬單圖中含有大量的噪聲數據。我們先會通過相似度矩陣濾除那些相似度較低的噪聲數據。接着我們訓練一個同款分類的分類器,由此得到的特徵能提高實拍圖的精度。

由於同一用戶在同一時間段內點擊的寶貝具有一定的相似度。通過挖掘主搜的i2i點擊數據,形成虛擬label進行深度學習得到的中間層表達也可以作爲一種特徵表示,用於相似度排序。

除了通過提高特徵本身的效果來提高實拍圖的精度外,提高實拍圖效果的另外一個途徑是利用實拍圖片來擴充我們的data space,使得整個圖搜系統越來越智能。通過下圖所示,通過主圖+曬單圖+LOG圖擴充data space,加以distance度量,可以使得同款率提升。

2.升級深度學習

深度學習方面,我們通過Loss函數,網絡結構和特徵排序框架繼續進行創新和突破。

  1. 首先我們採用了deeppairwise ranking特徵學習框架來學習我們的深度特徵:


image

最大化正/負樣本與query之間的距離差來保證特徵的效果。

其次我們採用了屬性label和虛擬label訓練框架來訓練精排的深度特徵:

image


另外,在類目識別方面,爲了進一步提高分類精度,我們採用層次化的類目識別:


image


除了拍立淘的大類目之外,還多任務訓練一級類目和葉子類目。這種多任務層次化的結構可以進一步提高拍立淘類目預測的精度。

超大規模的向量檢索索引

爲了涵蓋更多更廣的數據源,我們要打造一個容納百億級別數據量的拍立淘,面臨的挑戰包括:特徵抽取的提速和特徵降維;和離線構建索引的提速與查詢召回的保證。

  • 特徵抽取的提速和特徵降維

當數據量達到百億級別時,如果特徵抽取效率不高的話,離線抽取特徵的時間就會變成非常長;其次,在線引擎中硬盤和內存的存儲也是一個問題。
爲了解決這一問題,在保證特徵精度的情況下,通過對深度學習網絡框架的調整,我們將拍立淘的特徵的維度,壓縮到了原來的1/4,並通過卷積加速、並行計算等策略實現了一倍的提速。

  • 離線構建索引的提速與查詢召回的保證

數據量爆炸式的增長,對離線構建索引也是一個挑戰。拍立淘最初對6KW數據的處理,光聚類就要超過10h以上,而且失敗率很高。另外,數據量的增長,會導致引擎召回的不斷下降。

在離線構建索引效率方面,我們首先採用圖計算框架提速積量化和粗量化,將資源消耗降爲原來的1/3;同時用Onepass K-means優化原始的K-means,在保證效果的前提下,大大壓縮了聚類的時間。離線構建索引效率整體提速超過10+倍。

對於引擎召回,我們首先將“近似粗量化”優化成真正的粗量化,同時用積中心近似表達粗中心,從而達到增加中心點而不增加召回時間的效果。在拍立淘的大部分類目中,我們的索引召回和線性召回已經基本一致。

除此以外,工程架構的優化也是非常重要的。離線系統的優化對整個拍立淘流程非常重要,包括對各個算法模塊調度機制的優化和性能的提升。最新的離線系統已經支持混布集羣,最大化資源的利用。

移動端的DL

隨着高端手機的日益普及,越來越多的任務可以直接放到移動端執行,這樣不僅可以減少圖片上傳帶來的時間延遲,同時還可以降低server端的計算成本。

目前拍立淘已經上線移動端的類目預測和物體檢測,後續會有更多的任務放到移動端。採用的核心技術包括卷積的提速,DL網絡的裁剪和模型壓縮等等。

image
image
image

 

 


寫在最後的話

 

拍立淘-以圖搜圖一路走來,得益於算法/工程/產品的充分配合,得益於算法,數據,計算三位一體和大量的用戶使用。目前部分解決了用戶的拍照搜索需求,但是距離充分滿足用戶的需求還有一定的距離。項目組正在不斷優化,從各個角度去提高。

image
image
image
image
image
image
image
image
image

核心作者簡介

啓磐,現任阿里巴巴資深算法專家/技術總監。他是拍立淘以圖搜圖的算法leader和初創核心之一。他的研究領域包括:深度學習和計算機視覺等。他博士畢業於美國伊利諾伊大學芝加哥分校,加入阿里之前,他先後在美國三菱研究院和北京富士通研發中心從事視覺的研發工作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章