雷鋒網按:本文作者嚴燦祥,碩士畢業於中科院計算所VIPL課題組。目前就職於百度深度學習研究院。主要從事商品檢索技術的研發。所在的識圖策略組包括商品搜索、相似搜索、相同搜索與圖像猜詞等方向。
摘要
商品檢索是一門綜合了物體檢測、圖像分類以及特徵學習的技術。近期,很多研究者成功地將深度學習方法應用到這個領域。本文對這些方法進行了總結,然後概括地提出了商品特徵學習框架以及垂類數據挖掘方式,最後介紹了商品檢索技術在服裝搭配中的應用。
前言
幾年前,當人們還在感嘆於網頁購物的快速便捷時,各大電商巨頭就「悄悄地」將它們的購物應用推廣到了用戶的手機裡。從那一刻起,用戶購買的習慣也在悄悄地發生著改變:人們不再局限於時間與地點,只要擁有一部聯網的手機,就能輕鬆獲取想要的商品。發展至今,行動裝置的安全、高速等特點越來越獲得人們的認可,也使得移動購物行為變得更加普遍。然而目前PC和Mobile終端中,用戶基本都是通過文本關鍵詞獲取目標商品,這種單一的關鍵詞描述有時很難獲取用戶的真實需求。
為此,電商們也進行了很多改進。其中最有效的一些做法是構建高度結構化的後臺商品資料庫。其目的是能夠通過分析用戶的查詢來推薦一些更加精細粒度、時效性好、熱度高的商品品類,並提供給用戶一個限定了價格、品牌、風格等等的商品候選集合。這種基於文本的由粗到精的推薦方式,能夠很好的幫助用戶定位到具有精細且具體標籤的商品。然而,當用戶需求的商品的周邊信息不明確時,很難通過抽象出有限的關鍵詞來進行檢索。這類商品包括:未知品牌的化妝品,樣式新穎的家具或者時尚流行的服裝等(如圖1)。
圖1:一些難以用關鍵詞描述的商品
所見即所得
對於上述的問題,可以用一句話歸結為:當需求物品難以用文本量化描述時, 給定它的一張圖像,是否有可能推薦給用戶相關的商品? 可以想像這樣的場景: 當你看到一件喜歡的物品,只通過手機拍照將其圖像上傳購物網站,就能獲取實物購買信息。如果商品檢索能做到這樣的「所見即所得」, 必將會給有購物需求的用戶帶來很大的便捷。
「所見」如何才能變成「所得」呢? 在回答這個問題之前, 首先需要了解商品檢索中的難點問題:
商品品類繁多
小到柴米油鹽,大到家具電器, 都可以稱為商品。而且很多商品都包括多級且細緻的分類,例如,家具可分為臥室家具、客廳家具、餐廳家具、書房家具等;服裝的一級品類包括女裝、男裝、內衣、配飾與童裝童鞋等, 女裝又可分為連衣裙、T恤、雪紡衫等; 母嬰中的童車童床類別可分為安全座椅、嬰兒推車、嬰兒床、嬰兒床、墊餐、椅學步車等。由此可見, 好的檢索技術不僅要識別這麼多的商品類別, 並且需要區分每個類別下的不同商品實例; 同時後臺商品資料庫應該具有很高的覆蓋面。
圖2:多種多樣的商品
同款與相似款的混淆
根據多級類目或屬性進行商品劃分的方式,儘管區分了大多數具有精細語義的商品,但在區分同款與相似款上的作用仍然是有限的,即無法確認兩件分為一個類別的商品是相同款。 舉例來說,已知兩個人都穿著白色短袖圓領T恤, 因為姿態、角度、光照等影響,有可能會使得相似款更像同款,或者同款被誤識別為相似款。這就是計算機視覺中經常碰到的類內差異性與類間相似性問題。圖3的例子可以說明這兩個問題。 左側(a)中的上衣是同一款衣服,但由於人體姿態、懸掛方式、手臂遮擋、光線等問題的存在,使得它的顏色以及長度等表觀屬性具有很大的差異性;三款相似的黑色印花連衣裙如(b)所示,它們擁有相似的不規則的印花圖案,以及黑色的底色和A字裙擺;這些特點都讓他們很相似,但從袖型可看出它們非同款。
圖3:同款與相似款服飾圖像
其實,計算機視覺的各個領域都在解決這樣的「所見即所得」難題, 即如何讓機器能夠自動準確的理解圖像內容。隨著深度學習的興起, 包括人臉識別、 圖像分類與物體檢測在內的方向都取得了很多重要的進展, 也為深度學習在商品檢索中的應用奠定了堅實的基礎。
概括的講, 為達到「所見即所得」的目標, 商品檢索技術的框架中需要包含以下三個部分:
(1) 商品主體檢測: 用於自動定位用戶感興趣的商品,去除背景、多主體等因素的影響,也有利於抽取的語義特徵的對齊。
(2) 商品品類識別:通過識別商品的主體的品類, 使得在檢索時可以在商品子數據子庫進行搜索,提升檢索的效果與效率。
(3) 商品特徵表示: 通過學習獲得商品主體的判別性特徵, 使得同款商品距離更近且非同款商品相距更遠; 對光照、姿態、遮擋等變化有一定的魯棒性。
服飾檢索技術回顧
基於拍照的商品檢索問題本質是一個跨域(cross-domain)圖像檢索問題:需要根據用戶輸入的移動拍照圖像,從電商庫中獲取同款或是非常相似的商品圖片列表。這些特點決定了商品檢索是一項綜合性的圖像處理技術——它涉及圖像識別、檢測、特徵學習等各方面的內容。
其中, 服裝垂類檢索是商品檢索中一個重要的問題。因為服裝包含非常多的細品類, 而且存在非常多的視覺變化, 如光照、形變、視角、尺度、背景影響等等。解決服裝檢索的技術能夠很好的被推廣到其他垂類上。當前,很多學者和研究機構都嘗試基於深度學習進行服裝檢索技術的探究與創新。 下文將回顧三篇基於深度學習來解決跨域服裝檢索問題的文章。
Where-to-Buy-It (WTBI)
這篇文章發表於ICCV2015,作者是來自北卡羅來納大學教堂山分校的M. Hadi Kiapour。作者把street-to-shop的服裝檢索場景, 形式化為cross-domain的商品相似度學習問題,並設計了一種用於特定類別的相似度計算的網絡參數學習方式。整個學習流程如圖4所示。
圖4 基於特定類別的度量學習網絡
首先, 利用裙子、外套、上衣、褲子、裙子等五個主要的商品類別的同款標註圖像, 基於cross entropy loss訓練一個通用商品的同款判別模型;然後,對於特定細分類的商品檢索模型學習問題,採用其對應的同款訓練數據進行網絡參數微調,將通用同款模型遷移成特定類別的同款模型。在進行方法驗證時,文中還收集了40萬的電商數據,以及近4萬組的street-to-shop的同款商品數據。實驗表明,通過這種「由粗到細」方式學習到的相似度量網絡,比基於ImageNet訓練的深度特徵有更好的檢索性能。但此文只基於離線CNN特徵學習相似度, 並沒有進行端到端的檢索模型的探索。
Dual Attribute-aware Ranking Network (DARN)
這篇文章發表於ICCV2015,作者是來自新加坡國立大學的Junshi Huang。此文與WTBI方法相比的不同在於:在處理街拍場景(street scenario)與電商場景(shopping scenario)服裝圖像之間的檢索問題時,提出了一種端到端的雙路神經網絡模型(DARN)來學習深度特徵。如圖5所示:其中一路網絡學習街拍場景下的服裝特徵;另一路網絡學習電商場景下的服裝特徵。
圖5:DARN方法的網絡結構
為了提升圖像檢索特徵的判別能力,作者還採用了多種標註數據來監督網絡的學習過程:多標籤的屬性標註與服裝同款ID標註。為此,在設計網絡損失時,同時採用了基於多標籤屬性數據的cross-entropy loss以及服裝同款ID數據的triplet loss。總的來看,網絡的輸出特徵同時隱含了局部語義屬性的判別能力以及全局表觀的區分性, 在檢索效果的提升上具有很好的互補性。
DeepFashion
這篇文章發表於CVPR2016,作者是來自香港中文大學的Ziwei Liu。為了使服飾識別相關的研究更加貼近實際應用場景, 作者收集了一個規模更大且語義標註更全面的服裝數據集DeepFashion;它在圖像數目、類別與屬性數目、同款對、位置標定與數據開放等方面都佔據優勢。其與WTBI和DARN中的資料庫對比如表格1所示。
表格1:DeepFashion與WTBI、DARN中圖像資料庫對比
此文還提出了一種FashionNet, 融合了大類、屬性、服裝ID以及關鍵點四種監督信息來進行服裝特徵學習。它的創新之處是,設計了分別對全局表觀以及局部部件進行特徵學習的網絡;其中的局部網絡結構利用了服裝局部關鍵點對卷積特徵響應圖進行對齊,避免了關鍵點所在部件的變化帶來的影響。整個網絡結構如圖6所示。
圖6:FashionNet網絡
方法總結
複雜體系下的商品類別識別以及檢索問題的解決,不僅在於網絡結構的設計,而且需要多種類型的標註數據來約束整個網絡的訓練;這些數據包括商品位置、商品類別、 商品屬性以及商品同款數據等;由此,檢索結果與查詢圖像才能具有全局表觀相似性與局部語義一致性。當然,對於如何結合這些監督數據進行學習仍有待進一步探索,是否端到端網絡的性能一定優於分段學習網絡也猶未可知。與傳統方法相比,此類深層神經網絡模型在進行商品檢索特徵學習時並沒有脫離一般圖像檢索的特徵學習框架: 不僅需要在前端進行語義對齊,也需要在後端提升特徵判別性。總的來說, 以上深度學習方法的探索與創新, 都將為商品檢索技術趨於實用化打下紮實的基礎。
特徵學習框架
儘管以上的論文主要在探究服裝類商品的檢索技術, 但這些方法在其他的商品垂類上也是適用的。如圖7所示,這些方法可概括成一套特徵學習框架。圖中三個部分的意義分別是:
(1) 商品圖像預處理。商品有剛體(如鞋子、箱包、化妝品等)與非剛體(如男裝、女裝、童裝等)之分, 姿態、形變、尺寸等差異很大; 因此,需要採用一定的語義對齊方式使得模型對這些變化魯棒,常見操作有商品檢測框對齊、旋轉對齊、局部關鍵點對齊等。
(2) 全局表觀與局部語義特徵融合。將一個商品圖像映射為一個特徵的方法有很多;為了使得到的特徵具有很好的判別性,多種語義監督信息被用於引導模型的學習。以服裝垂類為例,最終的特徵不僅需要區分語義(如服裝的袖長、 領型、 扣型等),也需要能衡量表觀的相似性(如顏色、紋理等) 因此,這類監督數據的收集也是整個特徵學習框架的重要組成。
(3) 特徵降維。特徵的學習是一個精益求精的過程,維度低且判別性好的特徵才能保證檢索的性能與效率。用於降維學習的數據一般是商品同款數據;常用的降維方式有線性判別分析(LDA)、圖像分類與度量學習等。
圖7:商品垂類特徵學習框架
垂類數據挖掘
基於這套框架,特徵學習就可以依靠大量的標註數據來完成。如何來獲取標註數據呢? 簡單粗暴的全量數據標註會非常耗時耗力。 這裡針對同款數據與類別數據分別給出了數據挖掘的方法, 如圖8所示。
(a)同款數據挖掘。基於已有的檢索特徵模型以及大類屬性分類模型,可以將網際網路數據按照類別預測結果進行劃分,並根據子類進行單獨的聚類。對於每個cluster,根據一些準則(如特徵數目、平均距離、距離方差等)來判定噪聲並進行篩選;最後通過人工標註的方式進一步切分每一個cluster來獲取同款的商品。
(b)類別數據挖掘。首先,通過爬蟲抓取以及人工構造的方式,可以獲得大量的關鍵詞集合;並將它們進行多詞組合的方式在圖像搜尋引擎獲取top-K的檢索結果,放入類別圖像候選集合;之後,基於已有的大類屬性模型,對候選集進行提純,去除低質量以及語義錯誤的圖像。
圖8:同款與類別數據挖掘
技術應用
本節介紹一種新商品檢索技術應用方向: 服裝搭配。服裝搭配是指根據用戶給定的一件衣服單品,推薦出能夠與之搭配的時尚款式。它的應用場景包括時尚資訊推薦、電商導購等。由於服飾品類繁多、穿著標準各異, 如何定義並獲取時尚的款式以及給用戶個性化推薦搭配方案,都面臨很大的挑戰。下文將圍繞這兩個問題,介紹一種基於商品檢索技術的服飾搭配方法。
定義時尚款式
「工欲善其事必先利其器」。在服飾搭配過程中,構建時尚款式的資料庫是非常必要的。然而,時尚是一種比較感性的認識, 且人們對於時尚的理解各不相同,「時尚款式」的定義是沒有一個統一的量化標準的。下圖給出了一些時尚圖像的例子, 可以看出,圖像中服裝的時尚取決於很多方面: 服裝樣式、髮型、 鞋子、 拍照場景、 身材等等。
圖9:時尚庫中的四款搭配
為了解決這個難題,數據來源選自多個頂級時尚網站。這些網站往往通過時尚達人編輯的方式來推薦出時尚圖片,確保了服裝的時尚性與新穎性; 除此之後,從視覺上影響圖像時尚程度的因素還有很多,如背景灰暗、T臺秀、非全身圖、身材差、解析度低等; 基於這類數據訓練低質圖片過濾模型,就能獲取最終的高質時尚庫。
服裝搭配技術
簡單講,服飾搭配就是一種通過用戶上衣(下裝),推薦時尚下裝(上衣)的技術。這裡根據優化目標的不同將現有方法分為兩大類: 基於上下衣度量學習的方法以及基於相似服飾檢索的方法。前者的實現基於不同服裝部件的度量學習: 適合搭配的上下裝距離應該儘量的近,而不適合搭配的則要儘量的遠。後者假定時尚庫的圖像擁有優質的搭配, 將用戶服裝單品輸入時尚服裝資料庫的檢索引擎, 獲得語義與表觀相似的時尚推薦結果。
圖10:服飾搭配。上排:灰色短袖T恤;下排:黑色七分闊腿褲
總結與展望
本文回顧了基於深度學習的服裝檢索技術,並且基於這些方法,概括出一套通用的商品特徵學習框架。針對不同種類商品圖像的採集,給出了基於圖像搜尋引擎的數據挖掘方法。後續仍有待進一步探究的方向包括多品類商品檢索技術、基於大規模同款數據的特徵學習以及全自動數據挖掘方法等。
雷鋒網註:本文由深度學習大講堂授權雷鋒網(公眾號:雷鋒網)發布,如需轉載請註明作者和出處,不得刪減內容。
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。