Pinterest的視覺搜索,pinterest搜索圖Pinterest的視覺搜索閱讀背景:·為了發(fā)展目前項(xiàng)目的視覺搜索模塊,對Pinterest的Visual Search進(jìn)行研究;·筆者非CS/math相關(guān)出生,對于CNN與ML為初學(xué)者,若有不當(dāng)之處,請各位讀者指出斧正。文獻(xiàn)總結(jié):1.利用一些便于使用的分布式計(jì)算平......
閱讀背景:
·為了發(fā)展目前項(xiàng)目的視覺搜索模塊,對Pinterest的Visual Search進(jìn)行研究;
·筆者非CS/math相關(guān)出生,對于CNN與ML為初學(xué)者,若有不當(dāng)之處,請各位讀者指出斧正。
文獻(xiàn)總結(jié):
1.利用一些便于使用的分布式計(jì)算平臺,比如Amazon Web Services和開源工具,少量研發(fā)人員也可以使用非專有工具組合構(gòu)建大規(guī)模視覺搜索系統(tǒng);
2.利用遞增特征更新(Incremental Fingerprinting Service)和兩步式目標(biāo)檢測和定位(Twostep Object Detection and Localization),能夠有效提高搜索的準(zhǔn)確性,并且降低研發(fā)和部署的成本;
3.視覺搜索特征在圖片推薦系統(tǒng)中,能夠有效提高推薦的準(zhǔn)確度;
1.介紹
視覺搜索,又稱基于內(nèi)容的圖像檢索,是最近的熱門研究領(lǐng)域。這個(gè)領(lǐng)域主要由爆炸性增長的在線圖片和搜索引擎的流行所驅(qū)動。其中,Google Goggles(Google的照相搜索App)、Google Similar Images(Google的相似圖片搜索)和Amazon Flow(Amazon的增強(qiáng)現(xiàn)實(shí)購物應(yīng)用)是幾個(gè)商業(yè)化視覺搜索系統(tǒng)中較為成功的案例。雖然在構(gòu)建網(wǎng)絡(luò)規(guī)模的視覺搜索系統(tǒng)上已經(jīng)取得了重要的進(jìn)展,但是很少有文章來介紹這些商業(yè)案例中,如何部署端對端(endtoend)的框架。這其中的原因,一部分是因?yàn)檎鎸?shí)的視覺搜索系統(tǒng)的復(fù)雜性,另一部分是因?yàn)榇蠊镜纳虡I(yè)考慮——對核心搜索技術(shù)的保密。
圖1:Similar Looks:我們應(yīng)用目標(biāo)檢測技術(shù)來定位產(chǎn)品,比如包和西子。在這個(gè)原型中,用戶點(diǎn)擊自動標(biāo)記的目標(biāo)來查看視覺相似的產(chǎn)品。
在Pinterest上部署一個(gè)商業(yè)化搜索引擎,我們面臨著兩個(gè)主要挑戰(zhàn)。
·作為一個(gè)小公司,我們需要控制人力和計(jì)算資源的開發(fā)成本。比如,當(dāng)你想要處理一個(gè)巨大、連續(xù)增長的圖片集合時(shí),特征計(jì)算將會變得很昂貴。并且,當(dāng)工程師不斷的試驗(yàn)新特征去部署系統(tǒng)時(shí),可擴(kuò)展性和合理花費(fèi)就變成至關(guān)重要。
·作為一個(gè)商業(yè)應(yīng)用,評判成功的標(biāo)準(zhǔn)是它帶給用戶的效益(比如,提高了用戶的參與度)和它自身的研發(fā)、維護(hù)成本。
因此在最后,我們所研發(fā)的搜索引擎將需要通過A/B tests接受真實(shí)用戶的高頻度測試。
這篇文章將介紹,我們?nèi)绾蚊鎸η懊鎯蓚€(gè)挑戰(zhàn),并去發(fā)布、部署一個(gè)商業(yè)視覺搜索系統(tǒng)。我們做了兩個(gè)主要的成果。
·成果一,在研發(fā)視覺搜索時(shí),我們通過使用廣泛使用的工具來實(shí)現(xiàn)可拓展性和控制成本。這些工具可以幫助一個(gè)小工程師團(tuán)隊(duì)去實(shí)現(xiàn)自己的想法。Section 2.1介紹我們簡單、務(wù)實(shí)的方法來加速和提高目標(biāo)檢測和定位的準(zhǔn)確性。這個(gè)方法在Pinterest中開發(fā)了豐富的可用的大數(shù)據(jù)資源。我們使用了一個(gè)巧的方法來減弱任務(wù)難度(和計(jì)算花費(fèi))。
·首先,事先將目標(biāo)進(jìn)行檢測,確定到一個(gè)多類別的分類中;
·然后,我們只需要計(jì)算(昂貴的)高精準(zhǔn)度的圖像目標(biāo)檢測。
·Section 2.2介紹我們在最好的廣泛利用的工具中,建立分布式索引和搜索基礎(chǔ)。
·成果二,把我們部署的視覺搜索基礎(chǔ)的成果利用在了兩個(gè)產(chǎn)品應(yīng)用中:Related Pins和Similar Looks。在每個(gè)應(yīng)用中,我們使用應(yīng)用特有的數(shù)據(jù)集來評估每個(gè)獨(dú)立視覺搜索模塊(目標(biāo)檢測,相似性的特征表示)的有效性。在部署端對端系統(tǒng)后,我們使用A/B tests來檢測現(xiàn)實(shí)中用戶的參與度。
圖2:Related Pins是一個(gè)產(chǎn)品特征,基于Pinterest的現(xiàn)有圖片展示推薦內(nèi)容。
·Related Pins(圖2)可以基于用戶正在瀏覽的Pins來推薦Pins。這些推薦主要來自于用戶、Borads和Pins的“策展圖”。但是,那些長尾的較少被翻閱的圖片卻沒有推薦。利用視覺搜索,我們?yōu)镻interest上的幾乎所有圖片都創(chuàng)建了推薦。
·第二個(gè)應(yīng)用,Similar Looks(圖1)是在測試時(shí),特別是測試時(shí)尚Pins時(shí)發(fā)現(xiàn)的經(jīng)驗(yàn)。它可以允許用戶對圖片內(nèi)感興趣的區(qū)域(比如,一個(gè)包,或一雙鞋)進(jìn)行一個(gè)視覺查詢,然后為用戶辨別出一個(gè)視覺相似的Pins。與傳統(tǒng)視覺搜索不同的是,Similar Looks不再使用一個(gè)完整的圖片,這里的視覺相似性是通過查詢中的局部目標(biāo)和數(shù)據(jù)庫中的圖片對比來進(jìn)行計(jì)算的。據(jù)我們所知,這是第一篇商業(yè)化視覺搜索系統(tǒng)中利用目標(biāo)檢測和定位的文獻(xiàn)。
我們的經(jīng)驗(yàn)表明:
·利用大數(shù)據(jù)的目標(biāo)檢測和定位方法,可以達(dá)到一個(gè)可觀的檢測率和極小的誤報(bào)率(不大于1%);
·利用來自VGG模型的特征表達(dá)極大地提升了在Pinterest基準(zhǔn)數(shù)據(jù)庫的視覺搜索準(zhǔn)確性;
·當(dāng)使用視覺搜索來增強(qiáng)Related Pins和Similar Looks應(yīng)用時(shí),我們觀察到用戶參與度巨大的增加。
2.Pinterest的視覺搜索結(jié)構(gòu)
Pinterest是一個(gè)視覺標(biāo)簽工具來幫助用戶發(fā)現(xiàn)和儲存創(chuàng)意。用戶pin圖片到Borads中,這一過程對一個(gè)特定的主題或話題創(chuàng)建了集合。這個(gè)「用戶—Borads—圖片」圖譜包含豐富的關(guān)于圖片和它們語義關(guān)系的信息。比如當(dāng)一個(gè)圖片被Pin到一個(gè)Borad中,表明在這個(gè)新borad和其他所有包含這個(gè)圖片的board有一個(gè)“策展聯(lián)系”。通過這些描述圖片、圖片的borad和其用戶的聯(lián)系,相關(guān)的大數(shù)據(jù)(比如,圖片的注釋)能夠不斷增長。
因?yàn)閳D片是每個(gè)Pin的焦點(diǎn),所以視覺特征在為用戶發(fā)現(xiàn)興趣,靈感和相關(guān)內(nèi)容上起到了非常重要的作用。在這一章中,我們介紹如何端對端執(zhí)行一個(gè)視覺搜索系統(tǒng),來檢索Pinterest中的數(shù)十億圖片。我們致力于研發(fā)真實(shí)視覺搜索系統(tǒng)的挑戰(zhàn)——如何平衡經(jīng)費(fèi)限制和快速實(shí)現(xiàn)的需要。
我們將要介紹:
·從圖片中抽取的特征;
·為了分布式和增量式特征提取物所搭建的基礎(chǔ);
·實(shí)時(shí)視覺搜索服務(wù);
2.1.圖像的表現(xiàn)及特征
我們從圖片中抽取不同類型的特征,包括:位置特征和“深度特征”(深度特征從深度卷積神經(jīng)網(wǎng)絡(luò)(CNNs)的活性中間層中提?。?。我們研究基于AlexNet和VGG的結(jié)構(gòu),來提取fc6和fc8層的特征表現(xiàn)。這些特征為了有效地表現(xiàn)被二值化,并且用漢明距離(Hamming Distance)進(jìn)行比較。我們使用開源的Caffe架構(gòu),在多GPU機(jī)器上來訓(xùn)練和推算我們的CNNs。
這套系統(tǒng)也被用來從圖像中抽取顯著圖片顏色。顯著顏色是由圖像內(nèi)的第一檢測的顯著區(qū)域計(jì)算而來,然后應(yīng)用k均值聚類法來計(jì)算顯著像素的實(shí)驗(yàn)室像素值,其中,聚類中心和權(quán)值被儲存為圖像的顏色特征。
兩步式目標(biāo)檢測和定位
與Pinterest的特別相關(guān)的特征是有確切目標(biāo)分類的存在,比如,包,鞋子,手表,禮服,和太陽鏡。我們考慮到在Pinterest圖片中有海量的短文本標(biāo)簽,而采取兩步式檢測過程。當(dāng)圖片被多次pin到不同的borad中,pin的總體描述和borad的標(biāo)題提供了大量關(guān)于圖片的信息。在Pinterest中,文本處理通道從原始文本中為圖像抽取了相關(guān)的注釋,產(chǎn)生了與每個(gè)圖像有關(guān)的短文本。
圖3:并不是運(yùn)用所有的目標(biāo)識別探測模型來識別所有的圖像,我們第一步會先用文本元數(shù)據(jù)來預(yù)測圖像分類,然后運(yùn)用對應(yīng)的目標(biāo)檢測模型來識別圖像。
我們利用這些注釋來確定運(yùn)行哪一個(gè)目標(biāo)檢測器。在圖1中,我們首先確定這個(gè)圖像可能是包含包和鞋子,然后繼續(xù)用圖像目標(biāo)檢測器來檢測這些目標(biāo)種類。經(jīng)過第一步的目標(biāo)預(yù)分類,我們只需要在圖像上運(yùn)行一個(gè)最可能吻合的目標(biāo)檢測器。這個(gè)過濾步驟減小了大量的計(jì)算成本,降低了誤報(bào)率。
我們對目標(biāo)檢測的最初方法是對基于級聯(lián)的可變形部分模型(cascading deformable partbased models)的大量優(yōu)化來實(shí)現(xiàn)。這個(gè)檢測器為每個(gè)被檢測到的目標(biāo)輸出一個(gè)有邊界的盒,并從中提取目標(biāo)的可視化描述。我們最近的工作主要集中在研究基于深度學(xué)習(xí)的目標(biāo)探測器的可行性和性能。
我們試驗(yàn)結(jié)果在section 4,表明了我們的系統(tǒng)達(dá)到了非常低的誤報(bào)率(小于1%),這在我們的應(yīng)用中是必不可少的。這個(gè)兩步式方法也讓我們能并入其他信號到分類中。這種在目標(biāo)檢測和定位時(shí)利用文本和視覺信號的方法已經(jīng)被廣泛運(yùn)用在Web圖像檢索和分類中。
點(diǎn)擊預(yù)測
當(dāng)用戶在Pinterest上瀏覽,他們能通過點(diǎn)擊放大到全屏(“closeup”,特寫)和隨后點(diǎn)擊來到內(nèi)容的站外來源(a clickthrough,點(diǎn)擊通過)來與一個(gè)Pin交互。對于每個(gè)圖像,我們基于它的視覺特征來預(yù)測被打開全屏的概率(CUR)和被點(diǎn)擊到站外來源的概率(CTR)。我們訓(xùn)練一個(gè)CNN來從圖像中學(xué)習(xí)一個(gè)概率映射,關(guān)于一個(gè)用戶打開圖片全屏和到達(dá)站外來源的概率。CUR和CTR對于應(yīng)用,比如搜索排序,推薦系統(tǒng)和廣告投放都是有用的,在這些應(yīng)用中我們經(jīng)常需要知道哪一張圖像更能獲取用戶的注意力。
CNNs最近成為許多語義預(yù)測任務(wù),在涉及視覺輸入(包括分類、檢測與分割)時(shí)的主要方法。訓(xùn)練一個(gè)完整的CNN來獲取一個(gè)好的結(jié)果將會是非常耗時(shí)間,也需要非常大量的數(shù)據(jù)。我們將轉(zhuǎn)移學(xué)習(xí)應(yīng)用到我們的模型中,通過保留來自其他計(jì)算視覺任務(wù)訓(xùn)練的模型的低層次的視覺表現(xiàn)。網(wǎng)絡(luò)的頂層為我們現(xiàn)在的具體任務(wù)進(jìn)行了細(xì)致的調(diào)整。這樣節(jié)省了大量的訓(xùn)練時(shí)間,并且利用了更大的庫中學(xué)習(xí)到的視覺特征,而不僅僅只是這次任務(wù)。我們使用Caffe來進(jìn)行這個(gè)遷移學(xué)習(xí)。
圖4:對于CUR預(yù)測(左)和CTR預(yù)測(右)的ROC曲線。
圖4描述了我們基于CNN方法的接受者操作特征(ROC)曲線和一個(gè)基于“傳統(tǒng)”計(jì)算機(jī)視覺途徑的基線的對比:一個(gè)在詞的金字塔直方圖(PHOW)中被二值標(biāo)簽訓(xùn)練的支持向量機(jī)(SVM),在目標(biāo)識別數(shù)據(jù)集(如,Caltech01)中表現(xiàn)的很好。我們的基于CNN的方法優(yōu)于基于PHOW的基線,從端對端微調(diào)CNN也帶來了顯著的性能提升。類似的方法也適用于檢測上傳到Pinterest的色情圖像的任務(wù)。
2.2.指紋增量服務(wù)
我們大多數(shù)的視覺應(yīng)用依靠于擁有一個(gè)完整的視覺特征集合,這個(gè)集合以適合于批量處理的格式存儲。保持這個(gè)數(shù)據(jù)的更新是具有挑戰(zhàn)性的,因?yàn)槲覀兊募习^十億獨(dú)特的圖像,增量地更新特性集是至關(guān)重要的,并且盡可能避免不必要的重新計(jì)算。
我們建立了一個(gè)系統(tǒng),叫做指紋增量服務(wù),這個(gè)服務(wù)為Pinterest所有的圖像計(jì)算特征,通過使用在Amazon EC2上的工作群。它主要在兩個(gè)場景下逐步更新特征集合:
·上傳到Pinterest上的新圖片
·特征迭代(工程師增加/修改特征)
我們的方法是將圖片集劃分到由上傳時(shí)間確定的時(shí)代(epochs)組中,并且為每個(gè)特性類型(全面的,本地的,深度特征)的每個(gè)版本維護(hù)一個(gè)單獨(dú)的特性存儲區(qū)。這些特征類型被大量存貯在Amazon S3,以特征種類,版本,時(shí)間來組織管理。當(dāng)數(shù)據(jù)完全更新時(shí),每一個(gè)特征存儲都會包含所有的時(shí)代組。在每一次運(yùn)算中,系統(tǒng)發(fā)現(xiàn)每個(gè)特征的缺失時(shí)代組,并且把排隊(duì)工作變成一種分布式隊(duì)列來填充那些時(shí)代組。
這種存儲策略能夠如流水一般遞增升級。每一天,一個(gè)帶有當(dāng)天唯一上傳時(shí)間的新特征組被加入到我們的圖片集合中,然后我們?yōu)槟莻€(gè)日期生成缺失的特征。因?yàn)槔蠄D像不會改變,所以他們的特征也不會被重新計(jì)算。如果生成某個(gè)特征的算法或者參數(shù)被修改了,或者如果一個(gè)新的特征被增加,那么一個(gè)新的特征存儲將開始工作,并且所有的年代組會為修改/新增特征重新計(jì)算。不改變的特征不受影響。
我們將這些特性復(fù)制到各種表單中,以方便其他工作訪問:這些特征會合并,組成一個(gè)包含一張圖片所有可使用特征的指紋(fingerprint),然后指紋會被復(fù)制分享,形成為根據(jù)圖片特征(MD5 hash)隨機(jī)訪問的排序文件。這些加入的指紋文件會定期地再實(shí)現(xiàn),但是那些昂貴的特征計(jì)算只需要每張圖片計(jì)算一次。
圖5:增量式指紋更新渠道的輸出實(shí)例。初始運(yùn)行顯示為2014XXXX,其中包括在運(yùn)行之前創(chuàng)建的所有圖像。
圖5展示了一個(gè)增量指紋更新過程的流程圖。它包含5個(gè)主要工作:
·編輯新上傳圖片特征的列表,并且把它們按日期分組到時(shí)代組中。我們隨機(jī)將每個(gè)時(shí)代組劃分為大約20萬張圖像的分類碎片,以限制最終指紋文件的大小。
·定義每個(gè)特征存儲中缺失的時(shí)代組,并將工作排隊(duì)到PinLater(一個(gè)分布式隊(duì)列服務(wù),類似于Amazon SQS)。這個(gè)工作被再分為碎片到“工作塊”中,調(diào)整為這類工作塊每個(gè)大約花費(fèi)30分鐘來計(jì)算。
·運(yùn)行在EC2 instances的自動啟動群集,其規(guī)模取決于更新的大小??梢允褂肧pot instances;如果一個(gè)instances被終止了,它的工作將在其他的工作塊上重新排期。每個(gè)工作塊的產(chǎn)出都存儲到Amazon S3中,并且最終重組成為與原始碎片對應(yīng)的特征文件。
·將獨(dú)立的特征碎片融合為一個(gè)統(tǒng)一的包含每個(gè)圖像所有可利用特征的指紋文件。
·將所有的年代組(聯(lián)通其他元數(shù)據(jù))的指紋融合到一個(gè)排序中,分片文件格式允許隨機(jī)存?。╒isualJoins)。
對所有圖片所有可利用特征的最初計(jì)算,使用了數(shù)百個(gè)32核機(jī)器,花費(fèi)一天多一點(diǎn)的時(shí)間,產(chǎn)生了大約5TB的數(shù)據(jù)信息。而增量處理新圖像的穩(wěn)態(tài)要求僅為5臺機(jī)器。
2.3.搜索基礎(chǔ)
在Pinterest,分布式可視化搜索系統(tǒng)有好幾個(gè)用例。其中一個(gè)用例是發(fā)掘相似外表的產(chǎn)品(PInterest Similar Looks),和其他包括近似重復(fù)檢測和內(nèi)容推薦。在所有這些應(yīng)用中,視覺相似結(jié)果是通過前一個(gè)章節(jié)的Visualjoins頂部的分布式索引來計(jì)算的。由于每個(gè)用例有不同的性能和成本需求,我們的搜索基礎(chǔ)被設(shè)計(jì)成靈活的和可重構(gòu)的。圖6展示了搜索基礎(chǔ)的流程圖。
圖6:分布式視覺搜索渠道的流程圖。
第一步,我們用Hadoop從Visualjoins創(chuàng)造了分布式圖像索引。每臺機(jī)器包含索引(和特征),這些索引和整個(gè)圖片集合的隨機(jī)分散的子集相關(guān)。這里使用了兩類索引:
·第一種是基于磁盤(和部分內(nèi)存緩存)的token index,將每個(gè)矢量量化特性(比如,視覺詞匯token)與圖像文檔ID的展示列表關(guān)聯(lián)起來。這與基于文本的圖像檢索系統(tǒng)類似,只是文本被視覺標(biāo)記所替代。
·第二個(gè)索引是一個(gè)視覺特性和元數(shù)據(jù)的內(nèi)存存儲,比如,圖像注釋,以及從【用戶board圖像】圖計(jì)算的“主題向量”。
第一類適合于快速(但模糊)查表,第二類適合于更精確(但較慢)排序優(yōu)化。
每一臺機(jī)器運(yùn)行一個(gè)leaf排序器,用來從使用視覺特征的索引中計(jì)算k最近鄰(knearest neighbors),然后使用額外的元數(shù)據(jù)重新排序頂部的候選數(shù)據(jù)。在某些情況下,leaf排序器跳過token索引,直接用類似KNN方法從特征樹索引中檢索k最近鄰。另一臺機(jī)器上的一個(gè)根排序器將會從每個(gè)leaf排序器取回最高分?jǐn)?shù)的結(jié)果,并且將這些結(jié)果融合,然后返還給用戶。為了處理我們的實(shí)時(shí)特征提取器生成的新指紋,我們有一個(gè)可視化搜索渠道的線上版本,其中有一個(gè)非常相似的過程。即使在線上版本中,給定的指紋依然會在預(yù)生成的索引上查詢。
3.應(yīng)用1:RELATED PINS
Pinterest視覺搜索渠道的其中一個(gè)首批應(yīng)用是在一個(gè)叫做Related Pins的推薦產(chǎn)品,這個(gè)應(yīng)用中在用戶正在瀏覽一個(gè)Pin時(shí)推薦給其他可能感興趣的圖像。傳統(tǒng)上,我們使用了結(jié)合用戶創(chuàng)建的【圖像Board】的關(guān)系和基于內(nèi)容的信號來產(chǎn)生這些建議。然而,這套系統(tǒng)不能為不流行的pins(沒有很多聯(lián)系的pins)和新創(chuàng)建的pins(可能還沒有創(chuàng)建索引)提供推薦。結(jié)果,Pinterest上有6%的圖像只有極少或者沒有推薦。對于這些圖像,我們使用視覺搜索渠道來實(shí)時(shí)生成Visual Related Pins(圖7)。
圖7:在加入視覺相關(guān)搜索之前和之后的對比。
Visual Related Pins的第一步,是用從所有存在的Pinterest圖像建立的本地token索引,來檢測是否我們有重復(fù)或極相似的查詢圖像。具體地說,給定一個(gè)查詢圖像,系統(tǒng)返回一組圖像,這些圖像是同一個(gè)圖像的變化,但通過一些轉(zhuǎn)換發(fā)生了變化,比如,調(diào)整大小、裁剪、旋轉(zhuǎn)、平移、添加、刪除和修改視覺內(nèi)容的次要部分。由于結(jié)果圖像看起來與查詢圖像完全相同,所以它們的建議很可能與查詢圖像相關(guān)。然而,在大多數(shù)情況下,我們發(fā)現(xiàn)有很多圖像沒有檢測到接近重復(fù)的圖像,或者相似的圖像沒有足夠的推薦。因此,我們的注意力主要集中在基于CNN特征的索引中產(chǎn)生的視覺搜索結(jié)果檢索。
搜索相關(guān)性的靜態(tài)評價(jià)
我們最初的視覺相關(guān)Pins實(shí)驗(yàn)利用來自AlexNet模型的原始和微調(diào)版本在它的搜索基礎(chǔ)中。然而,更深層次CNN架構(gòu)分類的成功使我們調(diào)查來自各種CNN模型功能集的性能。
為了對視覺搜索進(jìn)行評估,我們使用與圖像相關(guān)聯(lián)的圖像注釋作為關(guān)聯(lián)性的指標(biāo)。除了人工評價(jià)外,這種方法通常用于視覺搜索系統(tǒng)的離線評價(jià)。在這項(xiàng)工作中,我們使用與每個(gè)圖像相關(guān)聯(lián)的頂級文本查詢作為標(biāo)簽。我們用Pinterest Search查詢1000次,每次3000個(gè)圖像,獲得了大約160萬個(gè)獨(dú)特圖像的數(shù)據(jù)集。我們用生成它的查詢關(guān)鍵詞標(biāo)記每個(gè)圖像。如果兩個(gè)圖像共享一個(gè)標(biāo)簽,則可視搜索結(jié)果與查詢圖像相關(guān)。
利用這個(gè)數(shù)據(jù)集,我們基于如下幾個(gè)特征,為推薦系統(tǒng)計(jì)算精確的k最近鄰值:
·從普通的AlexNet模型的fc6層的激活(為ILSVRC的前期訓(xùn)練),這個(gè)AlexNet模型的fc6層激活微調(diào)到識別超過3000個(gè)Pinterest產(chǎn)品品類;
·一個(gè)普通GoogleNet的loss3/classifier的激活;
·以及一個(gè)普通VGG16層模型的fc6層的激活。
表1:視覺搜索的相關(guān)性
表1展示了這些模型的p 5和p 10表現(xiàn),隨著我們的視覺搜索服務(wù)的平均基于CPU的延遲,其中包括查詢圖像的特征提取和檢索。使用基于GPU的推算大大減少了這些延遲。當(dāng)使用VGG16層模型的FC6層特征,我們觀察到對比我們的預(yù)估數(shù)據(jù)集在精度上有極大的提升,為我們的應(yīng)用提供了一個(gè)可接受的延遲。
線上體驗(yàn)
我們建立了一個(gè)系統(tǒng)來檢測只有很少推薦的新Pins,查詢我們的視覺搜索系統(tǒng),并在HBase中存儲,在Pin被點(diǎn)擊放大時(shí)提供服務(wù)。
對于這個(gè)應(yīng)用,當(dāng)大多數(shù)共享一個(gè)共同類別時(shí),我們會顯示視覺搜索結(jié)果(category conformity thresholding)。我們選擇以這種方式進(jìn)行覆蓋,以獲得更高的精度,以避免在我們對視覺搜索結(jié)果的信心相對較低時(shí)使用它。
我們最初對10%合適的實(shí)時(shí)通信量進(jìn)行了試驗(yàn);當(dāng)用戶點(diǎn)開一個(gè)Pin時(shí),卻沒有足夠的推薦,這批用戶是合適的。合適的用戶將會觸發(fā)進(jìn)入兩個(gè)組中:實(shí)驗(yàn)組(用視覺搜索結(jié)果取代了related pin的部分)、控制組(不做處理)。我們計(jì)算在related pins模塊中,總repin行為的變化量。
通過只為6%的請求展示視覺相似的pin,其他給出空推薦,我們觀察到在related pins的總repin行為增加了2%。而且,我們也做了其他的實(shí)驗(yàn),我們將所有使用深度CNN特征相似性的推薦進(jìn)行排序,在repin和點(diǎn)擊參與率方面提高了10%。
4.應(yīng)用2:SIMILAR LOOKS
女裝時(shí)尚是Pinterest上最受歡迎的種類之一。然而,這類pin有很大一部分比例沒有直接引導(dǎo)用戶去產(chǎn)生購物的能力,因此并沒有導(dǎo)購能力。在這里,為了讓這些pin具有導(dǎo)購能力,我們有兩個(gè)挑戰(zhàn):
·許多pin的標(biāo)簽僅僅有簡短的描述,比如「街頭時(shí)尚」的服飾,這類pin通常鏈接一個(gè)沒有對圖像中的目標(biāo)特征進(jìn)行多少描述的網(wǎng)站;
·pin圖像通常包含多個(gè)目標(biāo)(比如,一個(gè)女人走在街道上,提著豹紋包,穿著靴子,戴著墨鏡,穿著超短牛仔褲,等等)。
一個(gè)用戶查看某個(gè)pin,可能對其中的包特別感興趣,然而其他用戶可能會想要購買那個(gè)墨鏡。
用戶研究表明這種事情是非常常見的挫折感,我們的數(shù)據(jù)指出,相比其他種類,在女裝時(shí)尚種類中,用戶點(diǎn)擊圖片看源網(wǎng)站的概率要更小。
為了解決這個(gè)問題,我們做出了一個(gè)叫做“Similar Looks”的產(chǎn)品,它可以對時(shí)尚目標(biāo)定位和分類(圖8)。我們使用目標(biāo)識別技術(shù)來檢測Pinterest圖像中的目標(biāo),比如,包,鞋,褲子,手表,等等。從這些目標(biāo)中,我們抽取出視覺和語義的特征,來生成產(chǎn)品推薦(“Similar Looks”)。一個(gè)用戶將會通過一個(gè)在Pin上的目標(biāo)中的紅色斑點(diǎn)發(fā)現(xiàn)這些推薦(圖1)。點(diǎn)擊紅色斑點(diǎn),能夠獲取一個(gè)在視覺特征上非常相似的pin的瀑布流(比如,藍(lán)色連衣裙的其他視覺相似圖片)。
圖8:一旦用戶點(diǎn)擊了紅點(diǎn),系統(tǒng)會展示對該目標(biāo)具有相似外觀的產(chǎn)品。
相關(guān)工作
目前,在學(xué)術(shù)界和工業(yè)中,已經(jīng)有將應(yīng)用視覺搜索技術(shù)到一些“軟產(chǎn)品”上。Like.com,Google Shopping,和Zappos(亞馬遜旗下)都是一些著名的計(jì)算視覺來進(jìn)行時(shí)尚推薦的應(yīng)用。Baidu和Alibaba最近也上線了視覺搜索系統(tǒng)來解決相似的問題。在基于視覺基礎(chǔ)的時(shí)尚推薦搜索也有大量的提升。我們的方式證明,為數(shù)千萬Pinterest用戶提供基于目標(biāo)的視覺搜索系統(tǒng)的可行性,以及展示了一個(gè)關(guān)于被檢測目標(biāo)的交互搜索方式。
目標(biāo)定位的靜態(tài)評價(jià)
評價(jià)我們Similar Looks產(chǎn)品的第一步是調(diào)查我們的目標(biāo)定位和檢測能力(即,位置準(zhǔn)確性和識別準(zhǔn)確性)。我們選擇專注于時(shí)尚目標(biāo),即因?yàn)樯鲜龅纳虡I(yè)需求,也因?yàn)椤败洰a(chǎn)品”往往具有具體的視覺形象(比如,短褲,包,墨鏡,等等)。
我們通過從Pinterest的女裝時(shí)尚種類中隨機(jī)抽樣一組圖片來收集我們的評價(jià)數(shù)據(jù),并且在9個(gè)大類(鞋子,連衣裙,墨鏡,包,手表,褲子,短褲,比基尼,耳環(huán))中對2399個(gè)時(shí)尚目標(biāo)進(jìn)行人工打標(biāo)。我們觀察到,鞋子,包,連衣裙和褲子在我們的評價(jià)數(shù)據(jù)中是4個(gè)最大的分類。表2是時(shí)尚目標(biāo)的分布,也是來自基于文本篩選的,基于圖片檢測的,和融合方法(先使用圖片篩選,再使用目標(biāo)檢測)的圖片檢測準(zhǔn)確率。
表2:目標(biāo)檢測/分類準(zhǔn)確度(%)
正如先前所說的,基于文本的方法應(yīng)用人工創(chuàng)造的規(guī)則,比如,通用的描述,來將Pinterest大數(shù)據(jù)連接到圖像中(這類我們叫他們weak lable)。比如,一個(gè)圖片被注釋:“春季時(shí)尚,tote(一個(gè)包的品牌)和花”,可能被分類為一個(gè)“包”,并且如果圖片確實(shí)包含一個(gè)“包”的目標(biāo)標(biāo)簽,這會被考慮成是一個(gè)確定的事例。在基于圖片的評價(jià)中,我們計(jì)算了預(yù)測對象包圍盒和同一類型的標(biāo)記對象包圍盒之間的交集,并計(jì)算了一個(gè)大于0.3或大于等于的交集作為一個(gè)正匹配。
表2表明了,無論是文本注釋篩選,還是單獨(dú)的目標(biāo)定位,都不足以完成我們的檢測任務(wù),由于二者相對較高的錯(cuò)誤率(分別為6.7%和2.5%)。不出意料地,結(jié)合二者的方法極大的減少了我們的錯(cuò)誤率到1%以下。
具體來說,我們看到那些種類,比如眼鏡,文本注釋是不足夠的,但是基于視覺分類卻很優(yōu)秀(可能是由于眼鏡特殊的視覺形狀)。對于其他種類,比如連衣裙,這就恰好相反(視覺搜索的錯(cuò)誤率太高,12.3%,由于該種類經(jīng)常被遮擋,以及樣式的高度多樣性,但是加入了文本篩選就顯著的改變了結(jié)果)。除了減少我們需要用對象分類器處理的圖像數(shù)量外,對于幾個(gè)對象類(鞋子、包、褲子),我們觀察到文本過濾對于實(shí)現(xiàn)可接受的錯(cuò)誤率(1%以下)是至關(guān)重要的。
線上體驗(yàn)
我們的系統(tǒng)從Pinterest圖片的分組中定義了超過八千萬的“可點(diǎn)擊”的目標(biāo)。一個(gè)可點(diǎn)擊的紅點(diǎn)被放置在被檢測出的目標(biāo)上。一旦用戶點(diǎn)擊這個(gè)點(diǎn),我們的視覺搜索系統(tǒng)取回一個(gè)帶有同一目標(biāo)種類其他實(shí)體的pins的集合,然后用請求到的目標(biāo)的視覺相似度進(jìn)行排序。我們對一小部分Pinterest的用戶發(fā)布了這一功能,收集在一個(gè)月內(nèi)她們的參與度。具體來說,我們觀察小點(diǎn)的點(diǎn)擊通過率(CTR),在我們的視覺搜索系統(tǒng)上的CTR,并且我們比較了在現(xiàn)有Related Pins推薦的參與度和Similar Looks中的參與度。
圖9:Similar Looks實(shí)驗(yàn)的參與率
圖9表明,平均下,在某一天,12%的用戶在看見一個(gè)帶有小點(diǎn)的pin,點(diǎn)擊了這個(gè)小點(diǎn)。這些用戶愿意繼續(xù)點(diǎn)擊平均0.55個(gè)Similar Looks的結(jié)果。雖然這組數(shù)據(jù)很鼓舞人心,但是當(dāng)我們比較所有在pin的點(diǎn)擊大圖的相關(guān)內(nèi)容的參與度時(shí)(總和了Related PIns和Similar Looks的參與度作為變量組,只使用Related Pins的參與度作為控制組),Similar Looks事實(shí)上降低了在pin點(diǎn)擊大圖時(shí)的總體參與度,降低了4%。在新奇效果結(jié)束后,我們觀察到在紅點(diǎn)上的CTR上的一個(gè)逐漸降低,最終穩(wěn)定在10%左右。
為了測試我們Similar Looks的相關(guān)性,是獨(dú)立于新UI(可點(diǎn)擊點(diǎn)的目標(biāo)點(diǎn)),我們進(jìn)行了一組實(shí)驗(yàn),我們直接將Similar Looks的結(jié)果混合到現(xiàn)有的Related Pins中。這給我們一個(gè)方式去直接計(jì)算是否用戶發(fā)現(xiàn)我們的視覺相似推薦是比我們現(xiàn)存在的非視覺推薦更相關(guān)。在我們檢測到一個(gè)目標(biāo)的pins傷,這個(gè)實(shí)驗(yàn)增加了在Related Pins總體的參與度(repins和放大圖片)達(dá)到5%。雖然我們?yōu)檫@個(gè)實(shí)驗(yàn)設(shè)置了一個(gè)初始的靜態(tài)混合比例(每三個(gè)非視覺結(jié)果對一個(gè)視覺相似結(jié)果),我們稍后使用用戶點(diǎn)擊數(shù)據(jù)動態(tài)調(diào)整了這一比例。
5.總結(jié)和未來的工作
我們證明了,利用可用的分布式計(jì)算平臺,比如Amazon Web Services和開源工具,少數(shù)工程師或?qū)W術(shù)實(shí)驗(yàn)室可以使用非專有工具組合構(gòu)建大規(guī)模視覺搜索系統(tǒng)。這篇文章表明,我們端對端的視覺搜索渠道,包含遞增特征更新和兩步式目標(biāo)檢測和定位方式,提高了搜索準(zhǔn)確性,降低了研發(fā)和部署成本。我們的線上產(chǎn)品經(jīng)驗(yàn)表明,視覺搜索特征可以增加用戶參與度。
我們計(jì)劃在接下來的領(lǐng)域中進(jìn)一步提升我們的系統(tǒng)。
·我們對于在線上視覺搜索系統(tǒng)環(huán)境下,基于目標(biāo)檢測方式的CNN的表現(xiàn)和效率感興趣;
·我們對Pinterest的“策展圖”來增強(qiáng)視覺搜索相關(guān)性的影響力感興趣;
·我們想嘗試用于視覺搜索的交互式交互界面。
圖像識別實(shí)例
圖10:以鞋為對象的搜索結(jié)果示例。檢測到的對象的邊界自動突出顯示。頂層圖像是查詢圖像。
圖11:以包為目標(biāo)的檢測和定位結(jié)果樣本。[綠色:人工打標(biāo),藍(lán)色:識別結(jié)果]
圖12:以鞋為目標(biāo)的檢測和定位結(jié)果樣本。
圖13:以連衣裙為目標(biāo)的檢測和定位結(jié)果樣本。
本文譯自
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.1889898).ACM.
特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯(lián)系在線顧問
小程序
ESG跨境小程序
手機(jī)入駐更便捷
返回頂部