拍立淘-圖像搜索與識別
雲棲TechDay40期,阿裏巴巴iDST視覺技術總監啟磐來給大家分享圖像搜索和識別。本文主要從iDST和拍立淘業務開始談起,接著分析了拍立淘技術框架,著重分析了拍立淘核心技術,最後展示了呈現效果和雲服務。移動端的以圖搜圖是一代又一代的圖像人,搜索人的夢想。從90年代開始,學術界,工業界做了很多的努力和嚐試。阿裏巴巴的智能圖像搜索服務-拍立淘從2014年首次上線之後,通過技術的不斷打磨,已經成為淘寶每天千萬級UV的應用。本次將給大家帶來拍立淘中的圖像搜索和識別的技術。
阿裏巴巴iDST
阿裏巴巴集團涵蓋了非常廣的商業領域,除了大家最熟悉的電商領域,金融領域,還有數字娛樂領和本地服務領域。我們相信信通過數據、計算和AI技術三位一體,可以不斷提升用戶體驗,不斷的幫助阿裏繼續拓展商業的邊界。
iDST是institute of Data Science and Technologies的簡稱, 它的使命是研發高性能的AI技術,服務於阿裏集團的各個商業領域,並通過技術開創新的商業機會。除了這期雲棲TechDay分享的圖像視覺技術和語音的交互技術,iDST的研發領域還包括NLP,大規模的機器學習,優化技術等等。
拍立淘業務
作為通過AI技術不斷提升用戶體驗的一個例子,拍立淘是阿裏2014年就上線的一個智能的視覺搜索產品。與傳統的基於文字搜索的電商搜索相比,拍立淘隻需要用戶隨手拍一張照片,省去了繁瑣的文字描述,簡化了用戶的購物流程,大大提高了電商購物的體驗。拍立淘的入口和體驗如上圖所示。
拍立淘目前覆蓋幾乎淘寶所有的實體類目:比如衣服,鞋,箱包,瓶飲,配飾,家具,電子,零食,美妝,水果等。
拍立淘存在典型的AI技術驅動。最初在手機淘寶上線是2014年的8月份,當時一天隻有幾百個UV。經曆了三年之後,現在拍立淘每一天的平均UV超過了1000萬。回顧這個過程,我們還是通過技術創新、技術驅動獲得業務的增長。有哪一些呢?比如說有深度學習,大規模檢索索引的研發,還有我們對於實拍圖的特別優化等等。
從上個財年開始我們也非常自豪,拍立淘的圖像搜索和識別技術已經走出阿裏集團,向集團外的公司輸出,比如三星旗艦手機S8在係統層麵集成了拍立淘,用於相機和相冊。
位於海外的客戶,也可以通過AliExpress中集成的拍照購物功能,來享受拍照購物的便捷。
技術框架
拍立淘流程主要分為離線流程和在線流程,主要步驟如下:
離線流程:主要是指拍立淘每天離線構建索引庫的整個流程,涉及選品、離線摳圖、離線抽取特征、構建索引等環節。執行完畢之後,每天會在規定時間完成線上圖庫的更新。
在線流程:主要是指用戶一張query圖上傳之後,到最後返回結果的整個中間過程,包含在線類目識別,在線摳圖,在線特征提取和在線索引查詢等關鍵步驟。
選品
阿裏集團內有海量的商品類目和圖片,包含寶貝的主圖、SKU、副圖、曬單圖和詳情圖等,涵蓋電商領域的各個方麵。如何從這些海量圖片中選出用戶最喜歡,最想買的寶貝是一件很有意思的工作。
我們首先會根據購物偏好和品質進行全淘圖片庫的過濾;由於淘寶上相同或者高度相似的寶貝太多,如果不處理的話,最後的搜索結果中就會出現大量一模一樣的寶貝,用戶體驗很差。因此在做完過濾之後,我們增加了圖片去重模塊,目的是把一模一樣或者高度相似的寶貝去重,優化最後的展示。現在拍立淘的引擎包含有幾十億的圖片。
類目預測
拍立淘類目是對淘寶葉子類目的一種劃分,如圖所示上裝、裙裝、夏裝、箱包、家具、美妝、玩具、內衣等等。既需考慮一定的視覺相似性,又需考慮一定的語義相似性。類目體係不僅僅是個技術問題,也是個業務問題(有利於消費者認知)。目前拍立淘有14個大類,涵蓋全淘所有葉子類目。類目預測的好處是,它可以起到分發,同時在檢索索引的時候,我們也不需要對幾十億的商品圖片進行全局的搜索,所以它其實也是一個提高搜索的效率方法。
摳圖(主體檢測)
因為商品的背景複雜,主體常常較小,所以為了減少大量背景幹擾和多主體的影響,因此需要將搜索目標從圖像中提取出來。上麵兩幅圖反應了對於用戶的query,進行主體檢測和不進行主體檢測的搜索結果差異。
第一幅圖沒有由於進行摳圖,搜索結果中背景幹擾比較明顯,都出現了綠色的背景,而用戶真正關心的主體衣服的搜索質量則很差。第二幅圖進行摳圖之後,搜索結果有了非常顯著的提高,主體衣服的匹配程度非常高。
圖像特征
拍立淘的圖像特征包括深度特征和局部特征。
深度特征:基於深度學習框架學習出來的圖像表示。目前深度學習在圖像、語音等領域取得了重大突破,基於深度學習的圖像表示在很多任務上已經完勝傳統圖像特征。拍立淘從2014年立項之初就開始研究深度特征,在這方麵積累了大量的經驗,這也使得特征成為拍立淘核心競爭力之一,具體細節詳見後續章節。
局部特征:局部特征是圖像特征的局部表達,它反應的是圖像具有的局部特殊性。拍立淘在常見的局部特征基礎上進行改進,不僅進行維度壓縮,還優化提取速度,同時保證匹配精度不下降。
檢索索引與排序
檢索索引的流程可以分成離線和在線兩部分。離線過程對商品圖像特征構建索引,在線過程對用戶query進行分布式的快速查詢。在線查詢流程主要分為:粗召回 -> 積召回 -> 歐式排序 -> 精排。拍立淘目前的索引數據量有幾十億,如何高效的構建索引,同時保證在線查詢的精度是一個非常具有挑戰性的任務,拍立淘在這方麵做了很多工作,詳見後續章節。
深度特征從高層提取信息,關注語義鴻溝;局部特征關注圖像的局部信息。如果將兩者有效的結合起來,相輔相成,既能保證語義上的相似性,又能保證局部細節的匹配,因此我們在索引召回之後,會再進行一次排序,將深度特征和局部特征結合在一起。我們會學習一個ranking function,給深度特征和局部特征分配不同的比重,基於最後的score對索引返回結果做二次排序。
核心技術
下麵我們會就拍立淘的三個核心技術:實拍圖精度提升;超大規模的向量檢索索引;移動端DL進行進一步的描述。
實拍圖精準度提升
非實拍圖主要是指拍攝清晰,背景簡單的圖片,其中大部分來自淘寶寶貝的原圖。對於這種圖片,拍立淘的精度已經做的很高。但是對於一個以圖搜圖商業應用,真正的挑戰來自占比用戶query大量的實拍圖,這類圖和非實拍圖差距很大,具有光照,角度,多主體等各種問題。為了把實拍圖做好,拍立淘不斷突破,在各個類目上都有非常顯著的提升。
1.數據“掘地三尺”
數據方麵,我們利用了拍立淘log數據,曬單數據和主搜i2i數據。並構建相應的深度學習模型進行特征訓練。
- 在拍立淘的場景,我們發現用戶的點擊等有效行為大多是針對於同款,因此我們對PVLOG進行挖掘,噪聲過濾,形成triplet來進行特征的訓練。
- 在淘寶的生態環境之下,除了主圖、副圖、SKU圖,其實我們還有用戶的曬單圖。
- 由於同一用戶在同一時間段內點擊的寶貝具有一定的相似度。通過挖掘主搜的i2i點擊數據,形成虛擬label進行深度學習得到的中間層表達也可以作為一種特征表示,用於相似度排序。
- 除了通過提高特征本身的效果來提高實拍圖的精度外,提高實拍圖效果的另外一個途徑是利用實拍圖片來擴充我們的data space,使得整個圖搜係統越來越智能。
2.升級深度學習
深度學習方麵,我們通過Loss函數,網絡結構和特征排序框架繼續進行創新和突破。
- 首先我們采用了deep pairwise ranking特征學習框架來學習我們的深度特征:
最大化正/負樣本與query之間的距離差來保證特征的效果。
- 其次我們采用了屬性label和虛擬label訓練框架來訓練精排的深度特征:
- 另外,在類目識別方麵,為了進一步提高分類精度,我們采用層次化的類目識別:
除了拍立淘的大類目之外,還多任務訓練一級類目和葉子類目。這種多任務層次化的結構可以進一步提高拍立淘類目預測的精度。
超大規模的向量檢索索引
為了涵蓋更多更廣的數據源,我們要打造一個容納百億級別數據量的拍立淘。采用深度學習的特征來表征圖像,搜索的過程會變成了一個最近鄰的查詢過程。在幾十億到百億的數據下查詢,並保證用戶在沒有感知的情況下返回結果,同時保證精度,需要做大量的工作。主要麵臨的挑戰包括:特征抽取的提速和特征降維;和離線構建索引的提速與查詢召回的保證。
1. 特征抽取的提速和特征降維
當數據量達到百億級別時,如果特征抽取效率不高的話,離線抽取特征的時間就會變成非常長;其次,在線引擎中硬盤和內存的存儲也是一個問題。
為了解決這一問題,在保證特征精度的情況下,通過對深度學習網絡框架的調整,我們將拍立淘的特征的維度,壓縮到了原來的1/4,並通過卷積加速、並行計算等策略實現了一倍的提速。
2. 離線構建索引的提速
在離線構建索引效率方麵,我們首先采用圖計算框架提速積量化和粗量化,將資源消耗降為原來的1/3;同時對於聚類算法本身也進行了提速。離線構建索引效率整體提速超過10+倍。
移動端DL
隨著高端手機的日益普及,越來越多的任務可以直接放到移動端執行,這樣不僅可以減少圖片上傳帶來的時間延遲,同時還可以降低server端的計算成本。
拍立淘入口點進去有兩個通道,拍立淘和掃立淘,如果大家點擊掃立淘,就是把識別和檢測放到了移動端。這樣的交互會更加的自然,用戶不需要點拍照的按紐,它隻需要對準一個商品,維持穩定,結果就能自然彈出。對於這部分工作,主要的核心還是兩個:怎麼樣對模型大小進行壓縮和移動端的加速。
效果和雲服務
效果呈現
拍立淘-以圖搜圖一路走來,得益於算法/工程/產品的充分配合,得益於算法,數據,計算三位一體和大量的用戶使用。下麵是一些效果呈現。
最左邊一列是query,最右邊一列是直接看到的結果。中間這幅圖我們顯示的是在線主體的檢測結果,是個中間結果的顯示,一般的購物鏈路這一步是跳過的。往往隻有用戶對結果不滿意的情況下,用戶可以在結果頁麵點擊左上的編輯按紐,進入中間的這幅圖去人工調整框的位置。這裏列出的結果都是全自動的端到端結果。
對於鞋的算法考慮,因為鞋不一定會成雙出現,我們會單獨考慮每一隻鞋。
雲服務
最後想說的是,上麵文章講解到的能力無論是端到端的以圖搜圖的能力,還是單一模塊化的能力,比如檢索索引,我們都可以通過阿裏雲進行輸出。目前也有越來越多的大小公司接入這樣的能力。
啟磐:阿裏巴巴iDST資深算法專家/技術總監。他是拍立淘的算法負責人和初創核心之一。他的研究領域包括:深度學習和計算機視覺等。他博士畢業於美國伊利諾伊大學芝加哥分校,加入阿裏之前,他先後在美國三菱研究院和北京富士通研發中心從事視覺的研發工作。
如你對圖像搜索和識別感興趣,對深度學習和人工智能感興趣,歡迎加入iDST的大家庭~
最後更新:2017-09-04 18:02:49