Visual Search at Alibaba
ABSTRACT
介紹了阿里巴巴的大規模可視化搜索算法和系統架構。如下面臨的挑戰將在阿里巴巴電子商務環境下討論:(a)如何處理異構的圖像數據,並減小用戶查詢的實拍圖像與在線圖像之間的差距。(b)如何處理海量更新數據的大規模索引。(c)如何訓練深度模型,在沒有大量人工標注的情況下得到有效地特征表征。(d)如何通過考慮內容的質量來提高用戶的參與度。我們利用阿里巴巴收集的大量圖像和最先進的深度學習技術進行大規模的視覺搜索。我們提供解決方案和實現細節來克服這些問題,並分享我們從構建如此大規模的商業視覺搜索引擎的經驗教訓。引入基於模型和搜索的融合方法,有效地預測類別。同時,我們提出了一個深度CNN模型,通過挖掘用戶點擊行為來進行聯合檢測和特征學習。二進制索引引擎的設計目的是在不影響召回率和精度的情況下擴大索引。最后,我們將所有的階段應用到一個端到端的系統架構中,可以同時實現高效率和可擴展的性能,適應於真實拍攝的圖像。大量的實驗證明了系統各模塊的先進性。我們希望阿里巴巴的視覺搜索能更廣泛地融入到今天的商業應用中。
1 INTRODUCTION
隨着網絡圖片在搜索引擎和社交媒體上的日益普及,視覺搜索或基於內容的圖像檢索(CBIR)成為近年來的熱門研究課題。因此,因為其明顯的優勢,開發電子商務系統中的視覺搜索勢在必行:1)更方便的交互,2)搜索條目優於文本的細粒度描述,3)在線和離線場景之間的良好連接。考慮到現實世界中視覺搜索系統的算法和工程復雜性,很少有出版物詳細描述在商業應用上部署的端到端系統。一般來說,一些可視化搜索系統,如Ebay [22], Pinterest[7]發布他們的部署產品來描述架構,算法和部署。
在阿里巴巴,我們在視覺搜索技術的實際應用中也遇到了很多挑戰。通過與阿里巴巴的算法和搜索團隊的合作,我們成功開發了智能電商應用“Pailitao”。“Pailitao”,就是用相機購物。它是以深度學習和大規模機器學習技術為核心的創新圖像智能產品,利用視覺搜索服務實現“圖像搜索”功能,如圖1所示。自2014年推出以來,在業界引起了高度的關注和廣泛的認可,並經歷了快速的增長,2017年日均活躍用戶(Daily Active User,DAU)超過1700萬。2017年中國雙十一購物節,Pailitao成功突破3000萬DAU。在這篇文章中,我們想分享一些視覺搜索技術的關鍵進展,這些進展明確地解決了阿里巴巴目前面臨的挑戰。這款產品極具挑戰性,與其他產品的區別主要體現在以下四個方面:
Heterogeneous images matching: 不像標准的搜索引擎,Pailitao的用戶搜索通常是實景圖片,這意味着我們允許用戶從真實生活中拍攝圖片,也可以上傳任何來源的查詢圖片。我們很容易注意到,實拍圖像的質量並不像庫存圖像那樣完美,總是存在語義和視覺上的差距。
Billions of data with fine-grained categories: 大多數視覺搜索解決方案都無法達到阿里巴巴的規模。阿里巴巴擁有龐大且持續增長的圖片收藏,其中的標簽有noise,也可能是錯誤的。此外,該集合涵蓋了許多容易相互混淆的細粒度類別。我們的系統需要具有可擴展性和成本效益,采用分布式架構來處理大量數據。
Huge expense for maintaining training data: 在阿里巴巴這樣的動態市場中,由於圖像的多樣性,數據總是會有噪聲。對於深度模型的訓練,這些圖像往往包含復雜的背景,來自多個數據源,這使得特征學習難以實現高搜索相關性和低延遲。維護訓練數據非常辛苦,從數據的收集和清理到標注注釋,通常需要巨大的成本。
Improving the user engagement: 一個商業應用程序的成功是通過它給用戶帶來的好處來衡量的。如何吸引更多的用戶嘗試視覺搜索服務是關鍵問題。現在迫切需要鼓勵用戶購買這些產品並進行可能的轉化。
盡管有挑戰,但我們也有機會,1)庫存中的每一件商品都有自己的圖片,2)圖片是由賣家或客戶提供的帶有自然標簽的數據,3)自然的購物場景為視覺搜索提供了很大的空間。
抓住現有的機會,我們描述如何緩解上述問題和應對挑戰。總體來說,我們詳細介紹了阿里巴巴視覺搜索系統的構建和運營方法。我們舉例說明了我們的系統架構,並進一步挖掘有效數據供深度學習模型使用。具體來說,我們描述了如何依據精度和速度來利用深度學習方法進行分類預測、聯合檢測和特征學習,並討論了大規模索引和圖像重新排序。我們在自己構建的測試集上進行實驗,以評估每個模塊的有效性。我們還展示了我們的索引引擎在無損召回和重新排序策略方面的效率。
2 RELATED WORK
在語義特征表示和圖像分類方面,深度學習已經被證明是極其強大和廣泛發展的。隨着深度卷積神經網絡呈指數級增長,視覺搜索引起了人們的極大興趣[4,7,22]。在實際的視覺搜索場景中,針對含有細粒度分類的大尺度圖像,包含復雜背景和帶噪聲標簽的問題,如何根據查詢圖像找到相同或相似的項仍然是一個非常具有挑戰性的問題。考慮到所應用的技術,之前的視覺搜索深度學習大致有三個方面。
例如用於實例檢索的CNN:最近,CNN[8,12]在視覺問題方面表現出了良好的性能。已有多篇文章嘗試將CNN應用於圖像和實例檢索(image and instance retrival)[1,19,23]。通過將CNN作為NeuralCode進行圖像檢索,如Babenko等[2]將全連接層的輸出作為圖像特征進行檢索。Ng等人[10]對CNN特征進行編碼,卷積特征全局映射到VLAD中。在[18]中,Tolias等人通過簡單地在卷積特征圖的所有位置上應用空間max-pooling來生成有效的可視化描述符。在我們的場景中,實例檢索(instance retrieval)與圖像檢索(image retrieval)略有不同,因為它關注的是包含目標對象(不包括背景)的圖像區域,而不是整個圖像。
Deep metric embedding: 深度度量學習在測量圖像之間的相似性方面有很好的效果。Siamese網絡或triplet loss在實踐中更難訓練。為了學習更有效和高效的表示方法,設計了一些針對難樣本挖掘的工作,這些工作針對的是一批被認為難的樣本。利用FaceNet[15],提出了一種在線策略,將小批處理中的每一對正對與一個semi-hard反例關聯。Sohn[16]通過在每次迭代中共同排除多個負例子,進一步將triplet損失擴展為N-pair損失,從而提高triplet損失。像阿里巴巴的大量庫存,新產品更新頻繁的問題使其計算效率低下和在所有類別中收集triplet數據的不可行性,我們在檢索過程和用戶點擊行為中設計了在線難樣本挖掘,效果令人印象深刻,尤其是當圖像的細粒度高和且樣式多樣時。
Weakly supervised object localization: 最近的許多工作都在探索使用CNNs的弱監督對象定位[3,5,11]。為了定位對象,Bergamo等[3]提出了一種自學習的目標定位技術,該技術涉及屏蔽圖像區域,以識別導致最大激活的區域。Cinbis等[5]和Pinheiro等[11]將多實例學習與CNN特性相結合,對對象進行定位。然而,這些方法仍處於未經過端到端訓練的多階段,取得了良好的效果。有些工作需要多次網絡轉發來進行定位,這使得實際數據難以擴展。我們的方法是端到端的訓練,以學習沒有強注解圖像的目標位置和特征。
盡管上述工作取得了成功,但如何將真實的產品落地,找到與用戶意圖最相關的產品,仍然存在着挑戰和問題。考慮到阿里巴巴規模龐大的數據集,要處理數十億的數據並實現令人滿意的性能和延遲是一項挑戰和艱巨的任務。
考慮到這些現實的挑戰,我們提出了一個可擴展和資源高效的混合視覺搜索系統。我們的貢獻如下:
1)引入了一種有效的類別預測方法,利用基於模型和基於搜索方法的融合來減少搜索空間。與傳統的僅基於模型的方法相比,該方法具有更好的可擴展性,在混淆類別和領域限制方面取得了更好的性能。
2)我們提出了一個帶分支的深度CNN模型,用於聯合檢測和特征學習。與完全監督這種訓練在需要巨大花費的人力標注數據上的檢測方法不同,我們提出在不受背景干擾的情況下,同時發現檢測mask和精確識別特征。我們直接以一種弱監督的方式應用用戶點擊行為來訓練模型,而不需要額外的注釋。
3)作為已部署的移動應用,我們使用二進制索引引擎完成檢索過程,並重新排序以提高參與度。我們允許用戶自由拍照,在毫秒級響應和無損召回的情況下,以一個高可用性和可擴展的解決方案來尋找相同的項目。大量的實驗證明了Pailitao的端到端架構能夠有效地為數百萬用戶提供視覺搜索。
3 VISUAL SEARCH ARCHITECTURE
視覺搜索的目的是通過視覺特征搜索圖像,為用戶提供相關的圖像列表。作為專業圖像搜索引擎中的檢索服務,Pailitao於2014年首次上線,通過對產品技術的不斷打磨,已成為數百萬用戶的應用。隨着業務的增長,我們也建立了穩定的、可擴展的視覺搜索架構。
圖2給出了Pailitao的整體視覺搜索流程,分為離線和在線流程。離線過程:主要是指每天構建文檔索引的整個過程,包括條目選擇、離線特征提取、索引構建(即將圖像和其對應特征一一對應起來)。執行完成后,在線庫存將每天在指定的時間內更新。在線過程:主要是指用戶上傳查詢圖像時返回過程最終結果的關鍵步驟。這與離線的過程相似,包括在線類別預測、在線檢測和特征提取。最后,我們通過索引和重新排序來檢索結果列表。
3.1 Category Prediction
3.1.1 Item inventory selection. 有大量的產品類別和圖片,包括PC主圖片,SKU圖片,unboxing圖片和LOG圖片,涵蓋了電子商務的各個方面。我們需要從這些海量的圖片中選擇用戶相對感興趣的圖片作為條目庫存進行索引。我們首先根據購物偏好和圖像質量過濾整個gallery。由於淘寶上相同或高度相似的商品太多,最終的搜索結果會出現大量相同的商品,不經過過濾,導致用戶體驗差。在此之后,我們添加了重復圖像刪除模塊,其目的是刪除相同或高度相似的項,並優化索引文檔。
3.1.2 Model and search-based fusion. 淘寶類別是一個葉子類別的層次系統,同時考慮了一定的視覺和語義相似性。類別系統不僅是一個技術問題,也是一個有利於消費者意識的業務問題。目前,為了適應用戶偏好,縮小搜索空間,我們在Pailitao中預測了14個集合類別,涵蓋了所有的葉子類別,如鞋、衣服、包等。對於基於模型的部分,我們在高精度和低延遲之間進行權衡,部署了最先進的GoogLeNet V1[17]網絡。利用帶有類別標簽的商品庫存子集對網絡進行訓練,其中包含多種產品類別。作為輸入,按照標准設置[17],將每個圖像的大小調整為256×256,隨機裁剪為227×227。為了訓練網絡,我們使用標准的softmax-loss來完成分類任務(基於模型的方法得到查詢圖像的類別其實就是直接將查詢圖像x輸入到分類模型中,然后直接得到類別結果)。在基於搜索的部分,我們利用了深度網絡輸出特征的識別能力。具體地說,我們收集2億張圖片作為帶有ground-truth類別的參考組作為一對(𝑥𝑖,𝑦𝑖)。我們在參考集的檢索結果前30名中使用二進制搜索引擎。我們為30個neighbours中的每個xi加權yi的貢獻來預測查詢x圖像的標簽y。這是基於檢索結果xi到查詢圖像x的距離得到的,使用了加權函數,其中λ在加權函數中通過極大似然估計
得到。(所以基於搜索的方法得到查詢圖像x的類別其實就是通過特征比對從參考集中得到top 30相似結果,然后再根據這些相似圖像xi與查詢圖像x的距離確定他們在最終類別結果中占的權重,這樣,最后查詢圖像的最后類別預測結果,就是使用每個相似圖像xi * w(x,xi)的結果求和得到的類別結果)
為了提高類別預測的准確性,我們對基於模型和基於搜索的結果進行加權融合。驗證集也從庫存數據中收集,並涵蓋所有類別。利用特征的識別能力,基於搜索的方法糾正了分類混亂的情況,提高了最終的搜索結果。總體而言,融合使類別預測的最高精度提高了2%以上。
3.2 Joint Detection and Feature Learning
在本節中,我們將介紹基於用戶點擊行為的聯合檢測和特征學習。在產品圖片搜索場景下的主要挑戰是來自消費者和銷售者的圖片之間的巨大差異。賣家的照片通常都是高質量的,是用高端相機在受控環境下拍攝的。然而,消費者的查詢圖像通常是使用低端手機相機拍攝的,可能存在光照不均勻、模糊較大、背景復雜等問題。為了減小復雜的背景影響,需要從圖像中對目標進行定位。圖3反映了用戶的查詢,展示了目標檢測在搜索結果中的重要性。為了在無背景雜波的情況下實現買賣雙方圖像特征的匹配,我們提出了一種基於深度度量學習的帶分支的深度CNN模型來同時學習檢測和特征表征。
在最大程度上,我們利用PV(Page View)-LOG圖像和用戶單擊的數據進行難樣本挖掘。因此,我們通過用戶點擊的圖像構造有效的triplets,能夠用來共同學習對象的位置和特征,而無需進一步的邊框注釋。
3.2.1 PVLOG triplet mining. 特別,給定一個輸入圖像𝑞,第一個問題是可靠地匹配來自客戶和賣家的異構圖像的CNN embeddings 𝑓(𝑞)。這意味着我們需要把查詢圖像𝑞與相同的產品圖像𝑞+之間的距離拉近,並拉遠查詢圖像𝑞和不同的產品圖像𝑞−之間的距離。因此,triplet排序損失表示為loss(𝑞, 𝑞+,𝑞−):
其中L2表示歸一化兩個特征之間的距離,𝛿表示邊際(𝛿= 0.1)。𝑓由CNN網絡參數化,可以通過端到端的訓練得到。
主要難點是如何獲取訓練樣本[21]的難樣本。作為一種直接的方法,我們從與查詢圖像相同的類別中選擇正樣本,從另一個類別中選擇負樣本。但是,這樣得到的正圖像和負圖像與查詢圖像相比會產生較大的視覺差異,導致在訓練過程中,triplet排序損失很容易得到零,沒有貢獻。在如圖4中的產品圖像檢索情況下,我們預計,很大一部分的用戶會點擊返回列表的相同的產品圖片,這表明點擊圖像𝑑click可以看作是查詢的正樣本。𝑑nonclick 這種non-clicked圖像的優點是,他們通常是難樣本,這意味着他們是類似於查詢圖像的不同產品。但是,non-clicked圖像仍然包含與查詢相同的項,因為當許多相同的產品圖像返回時,用戶可能只單擊一個或兩個結果。所以為了過濾掉non-clicked中與查詢圖像相同的圖片,負樣本𝑞−的選取計算如下:
即non-clicked的圖像𝑞−中選取的是距離查詢圖像q和正樣本圖像𝑞+的距離都大於γ的圖像
為了計算特征的dist(),我們采用了一種結合局部特征、之前版本特征和預訓練的ImageNet[14]特征的多特征融合方法,可以更准確地找到負樣本。同樣的步驟應用於點擊圖像,獲得更准確的正樣本。
即正樣本找的是點擊圖像中距離小於ε的圖像
為了在一個小批處理中進一步擴展所有可用數據,在一個小批處理中在生成的triplets中共享所有負樣本。通過共享負樣本,我們可以在進入損失層前生成𝑚2個triplets,如果不共享,則只能生成𝑚個triplets。為了進一步減少訓練圖像中的噪音,原來的triplet排名損失loss(𝑞, 𝑞+, 𝑞−)改為:
其中損失是在查詢層而不是在triplet層計算的平均值,這樣我們可以減少noisy查詢的影響並平衡樣本。利用triplet排名損失,我們可以通過CNN的embeddings將買家的真實拍攝圖像和賣家的高質量圖像映射到同一個空間,從而實現異構源圖像的可靠匹配。
3.2.2 Unified deep ranking framework. 第二個問題是處理圖像中的背景雜亂問題。一個直接的方法是部署現成的目標檢測算法,如Faster-RCNN[13]或SSD[9]。但是,這種方法用大量的時間和邊界框注釋成本來分解該過程,且可能得到不是最佳的結果。我們尋求通過兩個分支聯合優化檢測和特征學習,深度聯合模型如圖5所示。
所以這里沒有使用Faster-RCNN[13]或SSD[9]的目標檢測算法,而是使用triplet數據來訓練得到一個能夠同時檢測到目標且得到特征的網絡
我們部署深度學習排名框架,通過同時輸入(𝑞, 𝑞+, 𝑞−)作為triplets去學習深度特征和檢測mask,最大化triplets中正負樣本的特性,並在沒有邊界框注釋的情況下檢測信息對象mask。整體的深度排序框架如圖6所示。在每個深度聯合模型中,檢測mask 𝑀(𝑥,𝑦)可以表示為一個在檢測分支中用於邊界框估計的step函數,如圖5所示,我們使用矩形坐標(𝑥𝑙,𝑥𝑟,𝑦𝑡,𝑦𝑏),element-wise地將輸入圖像和mask M圖像相乘。
(x,y)表示的是圖中某個像素的坐標點,通過上面的計算,將框以外的像素點設置為0,框以內的像素點設置為1,這樣和原圖一相乘,就能夠得到檢測到的目標了
然而,step函數𝑀(𝑥𝑦)不是可微的。為了執行端到端訓練,我們可以使用sigmoid函數近似替代step函數,其中𝑘足夠大以使它可微。為了實現深度排序框架,triplet排序損失解決了目標區域受背景影響的問題,同時增強了embedding的區分性。需要注意的是,我們只需要弱監督的用戶點擊數據,不依賴任何邊界框的注釋進行訓練,這大大降低了人力資源成本,提高了訓練效率。
3.3 Image Indexing and Retrieval
3.3.1 Large-scale search of billion-scale images. 一個實時、穩定的搜索引擎非常重要,因為每天都有上千萬的用戶在使用Pailitao的視覺搜索服務。因此,我們采用了圖7所示的多復制(Multi-replications)和多分片(Multi-shards)引擎架構,它不僅具有容錯能力,而且具有非常好的可擴展性。
Multi-shards: 就內存和可擴展性而言,索引實例通常很難存儲在一台機器上。我們通常使用多台機器來存儲整個數據集,每個分片只存儲總向量的一個子集。對於查詢,每個分片節點將在自己的子集搜索並返回其𝐾個最近鄰。之后,將每個分片的結果合並,然后再排序multi-list候選人得到最終的𝐾個最近鄰。multi-shards通過動態添加分片(shards)來滿足數據容量的可伸縮性,並且每台機器只處理一小部分向量,有助於提高性能和召回率。
Multi-replications: 每秒的查詢量(qps)是在線實時系統的一個重要指標。對於Pailtao搜索來說,qps非常高,這意味着搜索引擎對每個查詢的響應時間非常短,給系統帶來了巨大的挑戰。此外,阿里巴巴每年都有很多大的促銷活動,這會讓qps波動多達10倍。考慮到上述問題,我們在引擎上安裝了multi-replications機制。假設同時有Q個查詢訪問我們的系統,我們將這些查詢分成R個部分,每個部分都有Q/R查詢。每個查詢部分分別請求一個索引集群。這樣,索引集群一次需要處理的查詢數量從Q減少到Q/R。通過適當的復制,可以保證qps不超過理論峰值。
對於每個節點,使用兩種類型的索引:粗糙過濾和精細排序。粗糙過濾器是基於二值化特征(CNN特征的二值化)構造的改進的二值inverted索引,以圖像ID為key,二值化特征為value。通過漢明距離計算,可以快速過濾掉大量不匹配的數據。然后我們將根據返回的數據完整的二進制代碼得到𝐾個最近鄰。精細重排序是用來做一個更准確的排序細化。它根據額外的元數據,如視覺屬性和局部特征,對來自粗過濾器的候選信息進行重新排序。這個過程相對較慢,部分原因是由於元數據以非二進制形式存儲,另一個不可忽略的原因是元數據通常太大而無法在內存中存儲,這意味着緩存命中率是影響性能的關鍵因素。
3.3.2 Quality-aware image re-ranking. 我們進一步利用質量感知元數據來提高點擊率(Click Through Rate,CTR)和轉化率(Click Value Rate,CVR),以吸引更多的用戶。考慮到初始結果僅通過外觀相似度獲得,我們進一步利用語義信息對前60個結果進行重新排序,包括銷量、percent conversion,、applause rate、用戶畫像等。我們利用Gradient Boost Decision Tree集成不同維數的相關描述特征,並利用Logistic回歸將最終得分標到[0,1],既保證了外觀相似度,又保證了語義相似度,保證了每個維數的重要性能被學到。在保留整體相似度的前提下,根據質量信息重新排序可以細化具有邊屬性的低質量圖像列表。(這個就是使用一些語義信息再將上面得到的結果排序一遍)
4 EXPERIMENT
在本節中,我們將進行廣泛的實驗來評估系統中每個模塊的性能。我們以GoogLeNet V1模型[17]作為分類預測和特征學習的基礎模型,遵循3.1節和3.2節的協議。為了對視覺搜索中的每個成分進行評價,我們收集了與檢索結果有着相同項標簽的15萬張最高召回圖像。我們的高召回集涵蓋了14類real-shot圖像,如表1所示。我們在表1中用各種評估指標演示了統一體系結構中所有組件的端到端評估結果。
4.1 Evaluation of Category Prediction
我們進行了實驗來評估我們的融合方法與基於模型的方法和基於搜索的方法的性能。在表1(A)中,我們表明我們的融合方法在分類准確率方面取得了更好的分類Accuracy@1。我們基於搜索的模型的平均Top-1 Accuracy為85.51%,略低於基於模型的88.86%。然而,基於搜索的方法比基於模型的方法在某些類別,如襯衫,褲子,包,獲得更高的結果。總的來說,我們報告了用於類別預測的融合方法的Accuracy@1結果為91.01%,使基於模型的方法增加了2.15%。結果表明,基於模型的方法和基於搜索的方法具有互補性,融合方法糾正了基於模型的方法的一些錯誤分類。
4.2 Evaluation of Search Relevance
Effect of feature branch: 為了評價特征學習的性能,我們使用上面的高召回集作為查詢集,在物品庫存中搜索相似的圖像。我們通過測量搜索相關性來評估學習到的特征。通過改變返回的K個top結果的數量,同一項的Recall@K將作為 Identical Recall metric。這意味着在前𝐾個檢索結果,如果至少有一個返回圖像與查詢圖像屬於相同的項目,則查詢被認為是正確分類。度量測量相關結果的數量,因為相同的項將產生最多可能的轉換。作為基線,我們在圖像上執行最新的基於模型的結果。我們最初的實驗利用了來自原始通用模型(ImageNet的預訓練模型)的特征[6,8,17]。我們根據模型的最后FC層的激活計算了Identical Recall@K(K=1,4,20)。表2顯示了這些模型的Identical Recall性能。我們沒有選擇深度聯合模型,而是只選擇了使用我們的數據對整個圖像進行微調的特征分支,與其他相比有了明顯的改進。
此外,我們在表1(B)中報告了深層聯合模型對所有類別的總體特征結果。對於所有的實驗,我們對帶有預測類別的20個相似圖像計算得到 Recall@K(K=1,4,20)。我們的方法的Identical Recall隨着𝐾增加而改善,這清楚地表明,我們的方法沒有引入許多無關的圖片到搜索的top結果中。與單一特征分支相比,采用聯合檢測和特征學習模型進行檢索能夠取得更好的性能。聯合模型抑制了背景干擾,在所有類別中優於所有基線變體。
Effect of PVLOG triplets: 如3.2節所示,我們發現大多數點擊的圖像很可能是與查詢圖像相同的項,因此我們通過挖掘PVLOG圖像來訓練深層特征,形成有效的triplet,無需進一步的注釋。為了評價PVLOG triplet的優越性,我們將其與使用類別數據進行類別預測訓練的到的模型的FC層特征進行了比較。如圖9(A)所示,我們將Identical Recall@1增加了17個百分點。在Mean Average Precision(MAP)度量上,我們觀察到我們比類別數據的特征的MAP@1多了5%,說明我們得到了更好更相關的列表。
我們將進一步定性地確認我們的特征的細粒度識別能力。圖8演示了對來自產品庫存中的5個葉子家具類別的基於FC層的512維的語義特征使用tSNE[20]得到的embeddings。
這從定性上加強了我們的主張,即我們的特征保留了語義信息和local neighborhood。對語義信息進行編碼以減輕沖突的不良影響是很重要的,因為沖突中的項在語義上是相似的。
在圖10中,我們可視化了real-shot查詢圖像的檢索結果,它顯示了相同項上令人滿意的返回列表。
4.3 Evaluation of Object Localization
如表3所示,與groundtruth邊界框相比,我們的深度聯合模型定位結果得到IOU@0.5為98.1%、 IOU@0.7為70.2%的效果,僅略低於全監督檢測SSD方法[9]。圖11展示了對公共可用圖像的檢測結果,顯示了學習的檢測分支的識別能力和對象內容的捕獲能力。同時,與全監督法相比,我們在不影響Identical Recall的情況下,以更快的速度獲得了有競爭力的結果,實現了20ms的前向傳播。
為了進一步解決性能問題,我們還可視化了所選對象的位置,這將在圖10中定位fashion對象。從這些例子中,我們提取視覺和語義特征,以得到更好的檢索圖像列表。用戶可以很容易地點擊相同的物品進行查詢並支付。
4.4 Evaluation of Indexing and Reranking
我們在表1(C)中展示了用於索引評估的Linear Recall算法,使用在30億幅圖像上,並對20萬數據進行了粗糙過濾。我們用線性搜索的方式來比較索引結果的性能,其中我們將線性搜索的結果視為ground truth,並評估結果與groundtruth的近似程度。我們使用Linear Recall@K來衡量排名列表的質量和相關性。結果表明,與線性搜索相比,我們可以在Linear Recall@60范圍內實現無損召回。我們還給出了幾個主要組件的延遲。通過廣泛的優化和利用雲計算能力,給定一個用戶查詢,預測類別平均需要30ms(model+search),生成購物場景的圖像特征embedding需要40ms。排序列表需要10ms到20ms來返回1200個項,因為粗糙過濾不依賴於類別的大小。質量相關的重新排序只需要5ms就能重新排名前60名的結果。因此,總延遲為數百毫秒,這為用戶提供了一個可接受和愉快的購物體驗。此外,我們通過部署表1(C)中的質量相關重新排序,對前60名進行了重新排序,實現了平均CVR參與度相對7.85%的提高。
5 CONCLUSIONS
本文介紹了阿里巴巴的端到端可視化搜索系統。采用有效的基於模型和基於搜索的融合方法進行分類預測。帶分支的深度CNN模型是通過挖掘用戶點擊行為來進行聯合檢測和特征學習,不需要進一步的注釋。作為移動端應用,我們也提出了二進制索引引擎,並討論了如何降低開發和部署成本,提高用戶參與度。在高召回集上的大量實驗證明了我們的模塊具有良好的性能。此外,我們的可視化搜索解決方案已經成功部署到Pailitao,並集成到阿里巴巴的其他內部應用中。在未來的工作中,我們將利用圖像中的目標共分割和上下文約束來增強視覺搜索的相關性。