每日干货分享

深度剖析Pinterest的視覺搜索(Visual Search at Pinterest)


本文共12000個字,預計閱讀時長:30分鐘。

一、摘要:

  • 如Pinterest一樣,利用一些便利的分散式計算平台,如Amazon Web Services及其他開源工具,少量研發人員也可以使用非專有工具構建大規模視覺搜索系統;
  • 利用遞增特徵更新(Incremental Fingerprinting Service)和兩步式目標檢測和定位(Two-step Object Detection and Localization),能有效提高搜索準確性,降低研發和部署的成本;
  • 視覺搜索特徵在圖片推薦系統中,能夠有效提高推薦的準確度;

二、公司情況

1.公司簡介

Pinterest是一家圖片分享類社交網站,可以讓用戶利用其平台作為個人創意及項目工作所需的視覺探索工具,頁可以按主題分類添加和管理自己的圖片收藏,並與好友分享。其使用的網站布局為瀑布流布局。

2.商業模式

Pinterest在變現的過程中,嘗試過多種商業模式,目前最主要的是廣告導購。在產品的瀑布流中,展示合作品牌有品位的pin,作為內容的一部分,直接展示給用戶,點擊這類pin,直接打開對應的購物、品牌網站。

3.產品數據

月活超1.7億用戶,男女比3:7。內容數量超過750億條數。75%以上的用戶行為來自移動端。

三、Pinterest的視覺搜索

1.視覺搜索簡介

視覺搜索,又稱基於內容的圖像檢索,是最近的熱門研究領域。這個領域主要由爆炸性增長的在線圖片和搜索引擎的流行所驅動。其中,Google Goggles(Google的照相搜索App)、Google Similar Images(Google 的相似圖片搜索)和Amazon Flow(Amazon的增強現實購物應用)是幾個商業化視覺搜索系統中較為成功的案例。 雖然在構建網路規模的視覺搜索系統上已經取得了重要的進展,但是很少有文章來介紹這些商業案例中,如何部署端對端(end-to-end)的框架。這其中的原因,一部分是因為真實的視覺搜索系統的複雜性,另一部分是因為大公司的商業考慮——對核心搜索技術的保密。

深度剖析Pinterest的視覺搜索(Visual Search at Pinterest)

圖1:Pinterest的Similar Looks:通過目標檢測技術來定位產品,比如包和西子。在這個原型中,用戶點擊自動標記的目標來查看視覺相似的產品。

在Pinterest上部署一個商業化視覺搜索引擎,面臨著兩個主要挑戰。

  • 控制人力和計算資源的開發成本。比如,當想要處理一個巨大、連續增長的圖片集合時,特徵計算將會變得很昂貴。並且,當工程師不斷的試驗新特徵去部署系統時,可擴展性和合理花費就變成至關重要。
  • 作為一個商業應用,評判成功的標準是它帶給用戶的效益(比如,提高了用戶的參與度)和它自身的研發、維護成本。

因此在最後,Pinterest研發的搜索引擎通過A/B測試接受真實用戶的高頻度測試。

這篇文章將介紹,Pinterest如何面對前面兩個挑戰,並去發布、部署一個商業視覺搜索系統,做了兩個主要的成果。

  • 成果一,在研發視覺搜索時,通過使用廣泛使用的工具來實現可拓展性和控制成本。這些工具可以幫助一個小工程師團隊去實現自己的想法。在2.1節中,將介紹簡單、務實的方法來加速和提高目標檢測和定位的準確性。這個方法在Pinterest中開發了豐富的可用的大數據資源,並且減弱任務難度(和計算花費)。
    • 首先,事先將目標進行檢測(非圖像識別標籤,文本標籤、用戶聚集方式等),將目標分類到一個特定的分類中;
    • 然後,在特定的分類中,計算高精準度的圖像特徵檢測。
  • 在2.2節中,在最好的廣泛利用的工具中,建立分散式索引和搜索基礎。
  • 成果二,把部署的視覺搜索基礎的成果利用在了兩個產品應用中:Related Pins 和 Similar Looks。在每個應用中,使用應用特有的數據集來評估每個獨立視覺搜索模塊(目標檢測,相似性的特徵表示)的有效性。在部署端對端系統后,使用A/B tests來檢測現實中用戶的參與度。

深度剖析Pinterest的視覺搜索(Visual Search at Pinterest)

圖2:Related Pins是一個產品特徵,基於Pinterest的現有圖片展示推薦內容。

  • Related Pins(圖2)可以基於用戶正在瀏覽的Pins來推薦Pins。這些推薦主要來自於用戶、Borads和Pins的「策展圖」。但是,那些長尾的較少被翻閱的圖片卻沒有推薦。利用視覺搜索,為Pinterest上的幾乎所有圖片都創建了推薦。
  • 第二個應用,Similar Looks(圖1)是在測試時,特別是測試時尚Pins時發現的經驗。它可以允許用戶對圖片內感興趣的區域(比如,一個包,或一雙鞋)進行一個視覺查詢,然後為用戶辨別出一個視覺相似的Pins。與傳統視覺搜索不同的是,Similar Looks不再使用一個完整的圖片,這裡的視覺相似性是通過查詢中的局部目標和資料庫中的圖片對比來進行計算的。

Pinterest的經驗表明:

  • 利用大數據的目標檢測和定位方法,可以達到一個可觀的召回率和準確率(誤報率不大於1%);
  • 利用來自VGG模型的特徵表達極大地提升了在Pinterest基準資料庫的視覺搜索準確性;
  • 當使用視覺搜索來增強Related Pins和Similar Looks應用時,用戶活躍度增加。

2.Pinterest的視覺搜索結構

Pinterest是一個視覺標籤工具來幫助用戶發現和儲存創意。用戶pin圖片到Borads中,這一過程對一個特定的主題或話題創建了集合。這個「用戶—Borads—圖片」圖譜包含豐富的關於圖片和它們語義關係的信息。比如當一個圖片被Pin到一個Borad中,表明在這個新borad和其他所有包含這個圖片的board有一個「策展聯繫」。通過這些描述圖片、圖片的borad和其用戶的聯繫,相關的大數據(比如,圖片的註釋)能夠不斷增長。

因為圖片是每個Pin的焦點,所以視覺特徵在為用戶發現興趣,靈感和相關內容上起到了非常重要的作用。在這一章中,將介紹如何端對端執行一個視覺搜索系統,來檢索Pinterest中的數十億圖片。Pinterest致力於研發真實視覺搜索系統的挑戰——如何平衡經費限制和快速實現的需要。

這裡將要介紹:

  • 從圖片中抽取的特徵;
  • 為了分散式和增量式特徵提取物所搭建的基礎;
  • 實時視覺搜索服務;

2.1. 圖像的表現及特徵

從圖片中抽取不同類型的特徵,包括:位置特徵和「深度特徵」(深度特徵從深度卷積神經網路(CNNs)的活性中間層中提取)。研究基於AlexNet和VGG的結構,來提取fc6和fc8層的特徵表現。這些特徵為了有效地表現被二值化,並且用漢明距離(Hamming Distance)進行比較。使用開源的Caffe架構,在多GPU機器上來訓練和推算的CNNs。

這套系統也被用來從圖像中抽取顯著圖片顏色。顯著顏色是由圖像內的第一檢測的顯著區域計算而來,然後應用k均值聚類法來計算顯著像素的實驗室像素值,其中,聚類中心和權值被儲存為圖像的顏色特徵。

兩步式目標檢測和定位

與Pinterest的特別相關的特徵是有確切目標分類的存在,比如,包,鞋子,手錶,禮服,和太陽鏡。考慮到在Pinterest圖片中有海量的短文本標籤,而採取兩步式檢測過程。當圖片被多次pin到不同的borad中,pin的總體描述和borad的標題提供了大量關於圖片的信息。在Pinterest中,文本處理通道從原始文本中為圖像抽取了相關的註釋,產生了與每個圖像有關的短文本。

深度剖析Pinterest的視覺搜索(Visual Search at Pinterest)

圖3:並不是運用所有的目標識別探測模型來識別所有的圖像,第一步會先用文本元數據來預測圖像分類,然後運用對應的目標檢測模型來識別圖像。

利用這些註釋來確定運行哪一個目標檢測器。在圖1中,首先確定這個圖像可能是包含包和鞋子,然後繼續用圖像目標檢測器來檢測這些目標種類。經過第一步的目標預分類,只需要在圖像上運行一個最可能吻合的目標檢測器。這個過濾步驟減小了大量的計算成本,降低了誤報率。

對目標檢測的最初方法是對基於級聯的可變形部分模型(cascading deformable part-based models)的大量優化來實現。這個檢測器為每個被檢測到的目標輸出一個有邊界的盒,並從中提取目標的可視化描述。Pinterest最近的工作主要集中在研究基於深度學習的目標探測器的可行性和性能。

試驗結果在第4章中,表明了這個系統達到了非常低的誤報率(小於1%),這在應用中是必不可少的。這個兩步式方法也能併入其他信號到分類中。這種在目標檢測和定位時利用文本和視覺信號的方法已經被廣泛運用在Web圖像檢索和分類中。

點擊預測

當用戶在Pinterest上瀏覽,他們能通過點擊放大到全屏(「close-up」,特寫)和隨後點擊來到內容的站外來源(a click-through,點擊通過)來與一個Pin交互。對於每個圖像,基於它的視覺特徵來預測被打開全屏的概率(CUR)和被點擊到站外來源的概率(CTR)。這裡訓練一個CNN來從圖像中學習一個概率映射,關於一個用戶打開圖片全屏和到達站外來源的概率。CUR和CTR對於應用,比如搜索排序,推薦系統和廣告投放都是有用的,在這些應用中經常需要知道哪一張圖像更能獲取用戶的注意力。

CNNs最近成為許多語義預測任務,在涉及視覺輸入(包括分類、檢測與分割)時的主要方法。訓練一個完整的CNN來獲取一個好的結果將會是非常耗時間,也需要非常大量的數據。Pinterest將轉移學習應用到模型中,通過保留來自其他計算視覺任務訓練的模型的低層次的視覺表現。網路的頂層為現在的具體任務進行了細緻的調整。這樣節省了大量的訓練時間,並且利用了更大的庫中學習到的視覺特徵,而不僅僅只是這次任務。Pinterest使用Caffe來進行這個遷移學習。

深度剖析Pinterest的視覺搜索(Visual Search at Pinterest)

圖4:對於CUR預測(左)和CTR預測(右)的ROC曲線。

圖4描述了基於CNN方法的接受者操作特徵(ROC)曲線和一個基於「傳統」計算機視覺途徑的基線的對比:一個在詞的金字塔直方圖(PHOW)中被二值標籤訓練的支持向量機(SVM),在目標識別數據集(如,Caltech-101)中表現的很好。基於CNN的方法優於基於PHOW的基線,從端對端微調CNN也帶來了顯著的性能提升。類似的方法也適用於檢測上傳到Pinterest的色情圖像的任務。

2.2.指紋增量服務

大多數的視覺應用依靠於擁有一個完整的視覺特徵集合,這個集合以適合於批量處理的格式存儲。保持這個數據的更新是具有挑戰性的,因為Pinterest的集合包含超過十億獨特的圖像,增量地更新特性集是至關重要的,並且儘可能避免不必要的重新計算。

這裡建立了一個系統,叫做指紋增量服務,這個服務為Pinterest所有的圖像計算特徵,通過使用在Amazon EC2上的工作群。它主要在兩個場景下逐步更新特徵集合:

  • 上傳到Pinterest上的新圖片
  • 特徵迭代(工程師增加/修改特徵)

方法是將圖片集劃分到由上傳時間確定的時代(epochs)組中,並且為每個特性類型(全面的,本地的,深度特徵)的每個版本維護一個單獨的特性存儲區。這些特徵類型被大量存貯在Amazon S3,以特徵種類,版本,時間來組織管理。當數據完全更新時,每一個特徵存儲都會包含所有的時代組。在每一次運算中,系統發現每個特徵的缺失時代組,並且把排隊工作變成一種分散式隊列來填充那些時代組。

這種存儲策略能夠如流水一般遞增升級。每一天,一個帶有當天唯一上傳時間的新特徵組被加入到圖片集合中,然後為那個日期生成缺失的特徵。因為老圖像不會改變,所以他們的特徵也不會被重新計算。如果生成某個特徵的演算法或者參數被修改了,或者如果一個新的特徵被增加,那麼一個新的特徵存儲將開始工作,並且所有的年代組會為修改/新增特徵重新計算。不改變的特徵不受影響。

將這些特性複製到各種表單中,以方便其他工作訪問:這些特徵會合併,組成一個包含一張圖片所有可使用特徵的指紋(fingerprint),然後指紋會被複制分享,形成為根據圖片特徵(MD5 hash)隨機訪問的排序文件。這些加入的指紋文件會定期地再實現,但是那些昂貴的特徵計算只需要每張圖片計算一次。

深度剖析Pinterest的視覺搜索(Visual Search at Pinterest)

圖5:增量式指紋更新渠道的輸出實例。初始運行顯示為2014-XX-XX,其中包括在運行之前創建的所有圖像。

圖5展示了一個增量指紋更新過程的流程圖。它包含5個主要工作:

  • 編輯新上傳圖片特徵的列表,並且把它們按日期分組到時代組中。隨機將每個時代組劃分為大約20萬張圖像的分類碎片,以限制最終指紋文件的大小。
  • 定義每個特徵存儲中缺失的時代組,並將工作排隊到PinLater(一個分散式隊列服務,類似於Amazon SQS)。這個工作被再分為碎片到「工作塊」中,調整為這類工作塊每個大約花費30分鐘來計算。
  • 運行在EC2 instances的自動啟動群集,其規模取決於更新的大小。可以使用Spot instances;如果一個instances被終止了,它的工作將在其他的工作塊上重新排期。每個工作塊的產出都存儲到Amazon S3中,並且最終重組成為與原始碎片對應的特徵文件。
  • 將獨立的特徵碎片融合為一個統一的包含每個圖像所有可利用特徵的指紋文件。
  • 將所有的年代組(聯通其他元數據)的指紋融合到一個排序中,分片文件格式允許隨機存取(VisualJoins)。

對所有圖片所有可利用特徵的最初計算,使用了數百個32核機器,花費一天多一點的時間,產生了大約5TB的數據信息。而增量處理新圖像的穩態要求僅為5台機器。

2.3.搜索基礎

在Pinterest,分散式可視化搜索系統有好幾個用例。其中一個用例是發掘相似外表的產品(PInterest Similar Looks),和其他包括近似重複檢測和內容推薦。在所有這些應用中,視覺相似結果是通過前一個章節的Visualjoins頂部的分散式索引來計算的。由於每個用例有不同的性能和成本需求,Pinterest的搜索基礎被設計成靈活的和可重構的。圖6展示了搜索基礎的流程圖。

深度剖析Pinterest的視覺搜索(Visual Search at Pinterest)

圖6:分散式視覺搜索渠道的流程圖。

第一步,用Hadoop從Visualjoins創造了分散式圖像索引。每台機器包含索引(和特徵),這些索引和整個圖片集合的隨機分散的子集相關。這裡使用了兩類索引:

  • 第一種是基於磁碟(和部分內存緩存)的token index,將每個矢量量化特性(比如,視覺辭彙token)與圖像文檔ID的展示列表關聯起來。這與基於文本的圖像檢索系統類似,只是文本被視覺標記所替代。
  • 第二個索引是一個視覺特性和元數據的內存存儲,比如,圖像註釋,以及從【用戶-board-圖像】圖計算的「主題向量」。

第一類適合於快速(但模糊)查表,第二類適合於更精確(但較慢)排序優化。

每一台機器運行一個leaf排序器,用來從使用視覺特徵的索引中計算k最近鄰(k-nearest neighbors),然後使用額外的元數據重新排序頂部的候選數據。在某些情況下,leaf排序器跳過token索引,直接用類似KNN方法從特徵樹索引中檢索k最近鄰。另一台機器上的一個根排序器將會從每個leaf排序器取回最高分數的結果,並且將這些結果融合,然後返還給用戶。為了處理實時特徵提取器生成的新指紋,Pinterest有一個可視化搜索渠道的線上版本,其中有一個非常相似的過程。即使在線上版本中,給定的指紋依然會在預生成的索引上查詢。

3.應用1:RELATED PINS

Pinterest視覺搜索渠道的其中一個首批應用是在一個叫做Related Pins的推薦產品,這個應用中在用戶正在瀏覽一個Pin時推薦給其他可能感興趣的圖像。傳統上,使用了結合用戶創建的【圖像-Board】的關係和基於內容的信號來產生這些建議。然而,這套系統不能為不流行的pins(沒有很多聯繫的pins)和新創建的pins(可能還沒有創建索引)提供推薦。結果,Pinterest上有6%的圖像只有極少或者沒有推薦。對於這些圖像,使用視覺搜索來實時生成Visual Related Pins(圖7)。

深度剖析Pinterest的視覺搜索(Visual Search at Pinterest)

圖7:在加入視覺相關搜索之前和之後的對比。

Visual Related Pins的第一步,是用從所有存在的Pinterest圖像建立的本地token索引,來檢測是否有重複或極相似的查詢圖像。具體地說,給定一個查詢圖像,系統返回一組圖像,這些圖像是同一個圖像的變化,但通過一些轉換髮生了變化,比如,調整大小、裁剪、旋轉、平移、添加、刪除和修改視覺內容的次要部分。由於結果圖像看起來與查詢圖像完全相同,所以它們的建議很可能與查詢圖像相關。然而,在大多數情況下,發現有很多圖像沒有檢測到接近重複的圖像,或者相似的圖像沒有足夠的推薦。因此,Pinterest的注意力主要集中在基於CNN特徵的索引中產生的視覺搜索結果檢索。

搜索相關性的靜態評價

最初的視覺相關Pins實驗利用來自AlexNet模型的原始和微調版本在它的搜索基礎中。然而,更深層次CNN架構分類的成功來自各種CNN模型功能集的性能。

為了對視覺搜索進行評估,產品使用與圖像相關聯的圖像註釋作為關聯性的指標。除了人工評價外,這種方法通常用於視覺搜索系統的離線評價。在這項工作中,Pinterest使用與每個圖像相關聯的頂級文本查詢作為標籤。用Pinterest Search查詢1000次,每次3000個圖像,獲得了大約160萬個獨特圖像的數據集。用生成它的查詢關鍵詞標記每個圖像。如果兩個圖像共享一個標籤,則可視搜索結果與查詢圖像相關。

利用這個數據集,基於如下幾個特徵,為推薦系統計算精確的k最近鄰值:

  • 從普通的AlexNet模型的fc6層的激活(為ILSVRC的前期訓練),這個AlexNet模型的fc6層激活微調到識別超過3000個Pinterest產品品類;
  • 一個普通GoogleNet的loss3/classifier的激活;
  • 以及一個普通VGG16層模型的fc6層的激活。

表1:視覺搜索的相關性

深度剖析Pinterest的視覺搜索(Visual Search at Pinterest)

表1展示了這些模型的p@5和p@10表現,視覺搜索服務的平均基於CPU的延遲,其中包括查詢圖像的特徵提取和檢索。使用基於GPU的推算大大減少了這些延遲。當使用VGG16層模型的FC6層特徵,對比預估數據集在精度上有極大的提升,並且提供了一個可接受的延遲。

線上體驗

Pinterest建立了一個系統來檢測只有很少推薦的新Pins,查詢視覺搜索系統,並在HBase中存儲,在Pin被點擊放大時提供服務。

對於這個應用,當大多數共享一個共同類別時,會顯示視覺搜索結果(category conformity thresholding)。選擇以這種方式進行覆蓋,以獲得更高的精度,以避免在對視覺搜索結果的信心相對較低時使用它。

最初對10%合適的實時通信量進行了試驗;當用戶點開一個Pin時,卻沒有足夠的推薦內容。這類用戶將會進入兩個組中:實驗組(用視覺搜索結果取代了related pin的部分)、控制組(不做處理)。數據將計算在related pins模塊中,總repin行為的變化量。

通過只為6%的請求展示視覺相似的pin,其他給出空的推薦,數據發現在related pins的總repin行為增加了2%。同時產品也做了其他的實驗,將所有使用深度CNN特徵相似性的推薦進行排序,在repin和點擊參與率方面提高了10%。

4.應用2: SIMILAR LOOKS

女裝時尚是Pinterest上最受歡迎的種類之一。然而,這類pin有很大一部分比例沒有直接引導用戶去產生購物的能力,因此並沒有導購能力。在這裡,為了讓這些pin具有導購能力,有兩個挑戰:

  • 許多pin的標籤僅僅有簡短的描述,比如「街頭時尚」的服飾,這類pin通常鏈接一個沒有對圖像中的目標特徵進行多少描述的網站;
  • pin圖像通常包含多個目標(比如,一個女人走在街道上,提著豹紋包,穿著靴子,戴著墨鏡,穿著超短牛仔褲,等等)。

一個用戶查看某個pin,可能對其中的包特別感興趣,然而其他用戶可能會想要購買那個墨鏡。

用戶研究表明這種事情是非常常見的,數據指出,相比其他種類,在女裝時尚種類中,用戶點擊圖片看源網站的概率要更小。

為了解決這個問題,Pinterest做出了一個叫做「Similar Looks」的產品,它可以對時尚目標定位和分類(圖9)。使用目標識別技術來檢測Pinterest圖像中的目標,比如,包,鞋,褲子,手錶,等等。從這些目標中,抽取出視覺和語義的特徵,來生成產品推薦(「Similar Looks」)。一個用戶將會通過一個在Pin上的目標中的紅色斑點發現這些推薦(圖1)。點擊紅色斑點,能夠獲取一個在視覺特徵上非常相似的pin的瀑布流(比如,藍色連衣裙的其他視覺相似圖片)。

深度剖析Pinterest的視覺搜索(Visual Search at Pinterest)

圖9:一旦用戶點擊了紅點,系統會展示對該目標具有相似外觀的產品。

相關工作

目前,在學術界和工業中,已經有將應用視覺搜索技術到一些「軟產品」上。Like.com, Google Shopping,和Zappos(亞馬遜旗下)都是一些著名的計算視覺來進行時尚推薦的應用。Baidu和Alibaba最近也上線了視覺搜索系統來解決相似的問題。在基於視覺基礎的時尚推薦搜索也有大量的提升。這類方式證明,為數千萬Pinterest用戶提供基於目標的視覺搜索系統的可行性,以及展示了一個關於被檢測目標的交互搜索方式。

目標定位的靜態評價

評價Similar Looks產品的第一步是調查目標定位和檢測能力(即,位置準確性和識別準確性)。Pinterest選擇專註於時尚目標,即因為上述的商業需求,也因為「軟產品」往往具有具體的視覺形象(比如,短褲,包,墨鏡,等等)。

通過從Pinterest的女裝時尚種類中隨機抽樣一組圖片來收集評價數據,並且在9個大類(鞋子,連衣裙,墨鏡,包,手錶,褲子,短褲,比基尼,耳環)中對2399個時尚目標進行人工打標。數據顯示,鞋子,包,連衣裙和褲子在評價數據中是4個最大的分類。表2是時尚目標的分佈,也是來自基於文本篩選的,基於圖片檢測的,和融合方法(先使用圖片篩選,再使用目標檢測)的圖片檢測準確率。

表2:目標檢測/分類準確度(%)

深度剖析Pinterest的視覺搜索(Visual Search at Pinterest)

正如先前所說的,基於文本的方法應用人工創造的規則,比如,通用的描述,來將Pinterest大數據連接到圖像中(這類稱為weak lable)。比如,一個圖片被註釋:「春季時尚,tote(一個包的品牌)和花」,可能被分類為一個「包」,並且如果圖片確實包含一個「包」的目標標籤,這會被考慮成是一個確定的事例。在基於圖片的評價中,計算了預測對象包圍盒和同一類型的標記對象包圍盒之間的交集,並計算了一個大於0.3或大於等於的交集作為一個正匹配。

表2表明了,無論是文本註釋篩選,還是單獨的目標定位,都不足以完成檢測任務,由於二者相對較高的錯誤率(分別為6.7%和2.5%)。不出意料地,二者結合的方法極大的減少了錯誤率到1%以下。

具體來說,看到那些種類,比如眼鏡,文本註釋是不足夠的,但是基於視覺分類卻很優秀(可能是由於眼鏡特殊的視覺形狀)。對於其他種類,比如連衣裙,這就恰好相反(視覺搜索的錯誤率太高,12.3%,由於該種類經常被遮擋,以及樣式的高度多樣性,但是加入了文本篩選就顯著的改變了結果)。除了減少需要用對象分類器處理的圖像數量外,對於幾個對象類(鞋子、包、褲子),數據顯示文本過濾對於實現可接受的錯誤率(1%以下)是至關重要的。

線上體驗

系統從Pinterest圖片的分組中定義了超過八千萬的「可點擊」的目標。一個可點擊的紅點被放置在被檢測出的目標上。一旦用戶點擊這個點,視覺搜索系統取回一個帶有同一目標種類其他實體的pins的集合,然後用請求到的目標的視覺相似度進行排序。產品對一小部分Pinterest的用戶發布了這一功能,收集在一個月內她們的參與度。具體來說,數據顯示小點的點擊通過率(CTR),在視覺搜索系統上的CTR,並且比較了在現有Related Pins推薦的參與度和Similar Looks中的參與度。

深度剖析Pinterest的視覺搜索(Visual Search at Pinterest)

圖10:Similar Looks實驗的參與率

圖10表明,平均下,在某一天,12%的用戶在看見一個帶有小點的pin,點擊了這個小點。這些用戶願意繼續點擊平均0.55個Similar Looks的結果。雖然這組數據很鼓舞人心,但是當比較所有在pin的點擊大圖的相關內容的參與度時(總和了Related PIns和Similar Looks的參與度作為變數組,只使用Related Pins的參與度作為控制組),Similar Looks事實上降低了在pin點擊大圖時的總體參與度,降低了4%。在新奇效果結束后,數據顯示在紅點上的CTR上的一個逐漸降低,最終穩定在10%左右。

為了測試Similar Looks的相關性,是獨立於新UI(可點擊點的目標點),產品進行了一組實驗,直接將Similar Looks的結果混合到現有的Related Pins中。這是一個方式去直接計算是否用戶發現視覺相似推薦是比現存在的非視覺推薦更相關。在檢測到一個目標的pins上,這個實驗增加了在Related Pins總體的參與度(repins和放大圖片)達到5%。雖然初期為這個實驗設置了一個初始的靜態混合比例(每三個非視覺結果對一個視覺相似結果),但是稍後使用用戶點擊數據動態調整了這一比例。

5.總結和未來的工作

Pinterest證明了,利用可用的分散式計算平台,比如Amazon Web Services和開源工具,少數工程師或學術實驗室可以使用非專有工具組合構建大規模視覺搜索系統。這篇文章表明,端對端的視覺搜索渠道,包含遞增特徵更新和兩步式目標檢測和定位方式,提高了搜索準確性,降低了研發和部署成本。線上產品經驗表明,視覺搜索特徵可以增加用戶參與度。

Pinterest計劃在接下來的領域中進一步提升系統。

  • 對於在線上視覺搜索系統環境下,基於目標檢測方式的CNN的表現和效率感興趣;
  • 對Pinterest的「策展圖」來增強視覺搜索相關性的影響力感興趣;
  • 想嘗試用於視覺搜索的互動式交互界面。

圖像識別實例

深度剖析Pinterest的視覺搜索(Visual Search at Pinterest)

圖11:以鞋為對象的搜索結果示例。檢測到的對象的邊界自動突出顯示。頂層圖像是查詢圖像。

深度剖析Pinterest的視覺搜索(Visual Search at Pinterest)

圖12:以包為目標的檢測和定位結果樣本。[綠色:人工打標,藍色:識別結果]

深度剖析Pinterest的視覺搜索(Visual Search at Pinterest)

圖13:以鞋為目標的檢測和定位結果樣本。

深度剖析Pinterest的視覺搜索(Visual Search at Pinterest)

圖13:以連衣裙為目標的檢測和定位結果樣本。

6.參考文獻

Jing, Y., Liu, D., Kislyuk, D., Zhai, A., Xu, J., Donahue, J., & Tavel, S. (2015, August). Visual search at pinterest. In Proceedings of the 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (pp. 1889-1898). ACM.