劉 銳,彭敦陸
(上海理工大學(xué) 光電信息與計算機工程學(xué)院,上海 200093)
隨著生活觀念的改變,人們更多地追求在精神層面的滿足與自我肯定,一個人的衣著通常能夠表達出自己的審美和生活態(tài)度,越來越多的人愿意在自己的衣著上投入資金.從電子商務(wù)的發(fā)展可以看出,服飾行業(yè)已經(jīng)并將會在很長一段時期中都有著很高的商業(yè)價值,電商平臺根據(jù)用戶瀏覽操作和購買記錄把握用戶喜好,為用戶推薦合適的搭配商品或許能夠成為未來的一個發(fā)展方向.目前好的服飾搭配都需要時尚專家花費大量時間,從海量服飾中根據(jù)其所呈現(xiàn)的視覺屬性進行搭配,這無疑需要很高的成本.所以,一個能夠把握服飾視覺屬性信息、高效地提供服飾搭配方案和服飾搭配推薦系統(tǒng)是被要求存在的.
現(xiàn)有服飾搭配模型重點在于學(xué)習(xí)海量套裝內(nèi)服飾之間潛在的搭配模式,他們[1-4]將服飾表示為圖-文特征,設(shè)計模型學(xué)習(xí)這些特征之間相互依賴關(guān)系.一些研究者也強調(diào)了服飾風(fēng)格在服飾搭配中重要的作用,他們通過無監(jiān)督編碼實現(xiàn)服飾風(fēng)格特征的提取,Liu等人[5]認為服飾風(fēng)格特征向量可以表示為服飾圖像特征向量與類別特征向量的差,并將其用于服飾推薦系統(tǒng).Nakamura等人[6]使用的雙向長短時記憶網(wǎng)絡(luò)和自動編碼器網(wǎng)絡(luò)來無監(jiān)督地學(xué)習(xí)套裝風(fēng)格,并且可以針對同一件服飾生成不同風(fēng)格的套裝.Veit等人[7]利用Siamese卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)圖像空間到風(fēng)格空間的特征變換,使用最近鄰搜索來生成可相互搭配的服飾.
通常,服飾風(fēng)格受多方面因素的影響(如顏色、面料及穿著場景等),導(dǎo)致對服飾風(fēng)格和判別標準的定義不夠清晰.本研究試圖把服飾風(fēng)格看作其視覺屬性集合的一個映射,并用映射后的特征(風(fēng)格特征向量)來指導(dǎo)服飾搭配模型的學(xué)習(xí).
學(xué)習(xí)服飾單品視覺兼容性是服飾搭配領(lǐng)域中一個重要的問題.度量學(xué)習(xí)是解決這一問題中常用的方法之一,即學(xué)習(xí)的目標是將所有的服飾單品映射到同一個空間中,使得同一套裝內(nèi)服飾單品之間距離盡量小,不同套裝間服飾單品之間距離盡量大.Song等人[3]用自動編碼器來學(xué)習(xí)上下衣的兼容性,Polania等人[8]強調(diào)顏色在決定服飾兼容性方面起著重要的作用,他們采用全連接網(wǎng)絡(luò)學(xué)習(xí)服飾單品的兼容性.Han等人[9]基于時尚領(lǐng)域已經(jīng)廣泛認可的服飾搭配規(guī)則,采用加入注意力機制的教師-學(xué)生網(wǎng)絡(luò)構(gòu)建服飾兼容性學(xué)習(xí)模型.Li等人[10]融合了服飾的圖像和文本特征,訓(xùn)練了一個循環(huán)神經(jīng)網(wǎng)絡(luò)來預(yù)測套裝的時尚性.Han等人[2]、Jiang等人[11]將搭配好的一套時尚單品看作序列,對時尚單品所組成的序列進行建模,從而挖掘時尚單品搭配規(guī)則,Han等人[2]同時收集了Polyvore數(shù)據(jù)集,其給出了上萬套的高質(zhì)量服飾搭配套裝,為服飾搭配學(xué)習(xí)領(lǐng)域做出了很大的貢獻,此數(shù)據(jù)集被提出后,大量的實驗在此數(shù)據(jù)集上展開,Lin等人[12]提出的CSA-Net模型和Tan等人[13]提出的SCE-Net模型在服飾填空和服飾兼容度預(yù)測上都獲得了較優(yōu)的實驗效果.
在早期的服飾風(fēng)格建模中,風(fēng)格的標簽往往都是來自專家的標注[1],Yamamoto等人[14]提出CD-CNN的級聯(lián)輸出和支持向量機進行有監(jiān)督的風(fēng)格分類學(xué)習(xí);Hidayati等人[15]從人工標注的服飾風(fēng)格和體型數(shù)據(jù)中學(xué)習(xí)二者的兼容性模型.一些研究者認為用戶共同購買或者共同瀏覽的單品具有相似風(fēng)格,如Lee等人[16]認為在同一套搭配中的單品或者被共同購買的服飾具有潛在相似風(fēng)格,他們通過最大化共現(xiàn)概率來學(xué)習(xí)服飾風(fēng)格特征.在對服飾風(fēng)格的定義上,Liu等人[5]等人認為一件服飾是由兩個基本組件組成:風(fēng)格和類別,他們將服飾圖像經(jīng)卷積神經(jīng)網(wǎng)絡(luò)的輸出減去服飾類別信息,從而得到服飾風(fēng)格信息而建模服飾風(fēng)格,并利用BPR網(wǎng)絡(luò)進行個性化推薦;劉洪麟等人[17]使用Gram矩陣提取圖像紋理特征,并把它作為圖像的風(fēng)格特征;Natsuki等人[18]提出了針對與人類視覺感知相近的圖像紋理自動估計方法.
多語言主題模型(PolyLDA)[19]最初是用來學(xué)習(xí)不同自然語言之間的聯(lián)系,可以學(xué)習(xí)跨語言單詞之間的關(guān)系.在時尚領(lǐng)域,多語言主題模型用于發(fā)現(xiàn)不同模態(tài)信息之間的關(guān)系.Hsiao等人[20]使用一個多語言主題模型,學(xué)習(xí)關(guān)于上裝和下裝位置坐標及其色彩特征的協(xié)同信息,從而完成上下裝的搭配和推薦任務(wù).Iqbal等人[21]使用PolyLDA將家具的圖像特征與文本特征結(jié)合起來,并認為所得到的特征能夠描述家具的視覺風(fēng)格.
提取服飾的視覺屬性集合在風(fēng)格空間上的映射,得到風(fēng)格特征向量,并將服飾風(fēng)格特征引入服裝搭配學(xué)習(xí)模型的損失計算,是本文研究的主要內(nèi)容.
本文提出方法如圖1、圖2所示:1)如圖1,首先使用預(yù)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)(CNN)提取出服飾圖像的視覺屬性集合,使用one-hot編碼服飾文本描述的特征,然后使用PolyLDA融合兩種模態(tài)的信息,并無監(jiān)督地學(xué)習(xí)得到服飾的風(fēng)格特征向量;2)其次使用了多任務(wù)學(xué)習(xí)來訓(xùn)練服裝搭配模型的參數(shù),如圖2,在多任務(wù)模型中主任務(wù)是:將套裝中的服飾單品視作一個有序的序列,使用雙向長短時記憶網(wǎng)絡(luò)學(xué)習(xí)套裝中每件單品之間的兼容關(guān)系,并在損失計算中加入服飾單品的風(fēng)格向量,作為服飾兼容關(guān)系學(xué)習(xí)的重要指導(dǎo);在多任務(wù)學(xué)習(xí)中副任務(wù)是:將圖像和文本映射到同一個空間,目標是最小化同一件單品的圖像和對應(yīng)文本描述距離,最大化圖像和不對應(yīng)的文本描述距離,通過這種方法,可以增加模型的泛化效果,并且能夠融合多模態(tài)信息[22].
圖1 風(fēng)格特征向量的提取Fig.1 Extraction of style vectors
圖2 服裝搭配學(xué)習(xí)模型Fig.2 Model of fashion compatibility learning
卷積神經(jīng)網(wǎng)絡(luò)的可視化研究[23,24]表明,在圖像數(shù)據(jù)集上預(yù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),位于其淺層的卷積核對粒度較低的視覺屬性(比如顏色、亮度及單一方向紋路等)比較敏感,容易被低粒度的特征激活;隨著網(wǎng)絡(luò)的加深,位于較深層次的卷積核對于顏色和紋理的組合敏感,容易被中粒度的視覺屬性激活;到了網(wǎng)絡(luò)的中后段,卷積核對于高粒度的視覺屬性敏感(比如橢圓形、波浪紋及斑點等);當接近輸出層時,卷積核對不同類別圖像所呈現(xiàn)出來的細致而準確的紋理敏感,從而能夠很好的完成圖像分類的任務(wù).
受到Iqbal等人[21]的啟發(fā),在本文的研究中,使用預(yù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)作為服飾視覺屬性特征提取器.具體來說,本研究將預(yù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)中,位于不同層次的卷積核視作不同粒度的視覺單詞提取器;服飾圖像在一次正向傳播中,較大程度地激活的卷積核表示在該服飾圖像中存在對應(yīng)不同粒度的視覺單詞,通過這一過程可以得到服飾圖像的視覺屬性文檔.
對于一個預(yù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),選擇N個位于其不同深度層的卷積核作為服飾視覺屬性特征提取器,相當于服飾圖像的視覺單詞詞典共有N個詞匯.對于一個服飾圖像而言,它的視覺屬性文檔可以表示為VW=[vw1,vw2,…,vwN],相對應(yīng)地有一個0-1向量BW=[bw1,bw2,…,bwN],bwi∈{0,1},bwi用來表示第i個卷積核是否被激活.awi為一個服飾圖像在一次正向傳播中,在第i個卷積核上的平均激活值在同一層的所有激活值中歸一化到0-1區(qū)間后的結(jié)果,若awi大于閾值τ,表明服飾圖像激活了第i個卷積核,那么bwi=1,反之bwi=0,最終有vwi=bwi·awi.
對于服飾的文本描述t,使用twi來表示單詞wi在t中的頻率,根據(jù)文本中出現(xiàn)的每個單詞的頻率生成一個d維文本文檔TW=[tw1,tw2,…,twd].本文將PolyLDA用作視覺風(fēng)格主題模型,PolyLDA從文檔主題模型遷移到視覺風(fēng)格主題模型的基本映射如下:1)將每個視覺風(fēng)格看作一個主題;2)將一個服飾單品描述信息看作一個元組,它包括兩種語言表示的文檔,即視覺屬性文檔和文本文檔.將這兩種模態(tài)的文檔作為PolyLDA的輸入,融合兩種不同語言描述的內(nèi)容進行服飾風(fēng)格建模.PolyLDA的概率圖如圖3所示.
圖3 PolyLDA的概率圖Fig.3 Graphical model of PolyLDA
圖3中,wi,j表示第i個服飾的第j個詞;α,βlv,βlt為迪利克雷分布的超參數(shù);ki,j是詞wi,j對應(yīng)的風(fēng)格編號,Si表示第i個服飾在風(fēng)格上的概率分布;φk,l表示第k個風(fēng)格在語言l上的詞分布,l∈{lt,lv}.給定M個文檔和K個風(fēng)格數(shù),PolyLDA的生成過程如下:
a.對于兩種語言的K個風(fēng)格,初始化一系列單詞的分布φk,l~Dir(βl);
b.對于每一個具有兩種語言的文檔i,初始化其風(fēng)格分布Si~Dir(α);
c.對于第i個時尚單品的第l種語言的第j個單詞:
i)選擇一個風(fēng)格ki,l~Multinomial(Si)
ii)選擇一個詞wi,l,j~Multinomial(φki,l)
上述方法的服飾風(fēng)格建模是完全無監(jiān)督的,它是從沒有任何風(fēng)格標簽的服裝樣本中學(xué)習(xí)并區(qū)分出服飾風(fēng)格.這種方法能夠節(jié)省大量的人工標注成本,也可以解決風(fēng)格無法擁有客觀定義的挑戰(zhàn).從本質(zhì)上來說,因為本文提出的模型關(guān)注的是服飾在顏色,花紋,質(zhì)感等視覺屬性上的集合,以及不同服飾之間在這些屬性集合上的差別,所以即使服裝的視覺效果不斷變化,服裝風(fēng)格的定義不斷更新,本研究提出的模型仍然能夠在本質(zhì)上捕捉視覺上的差異從而在視覺風(fēng)格上對服飾進行區(qū)分.
長短期記憶網(wǎng)絡(luò)(LSTM)一般在自然語言處理領(lǐng)域中使用,它可以學(xué)習(xí)文本與上下文之間的關(guān)系和搭配規(guī)律.本研究認為,搭配完善的套裝也與自然語言具有相似之處,將單個服飾圖像的特征視作句子中的一個詞匯,將排列規(guī)律、搭配完善的套裝序列視為詞匯組成的句子(在這里,排列規(guī)律一般是上衣、下衣、鞋、包、配飾的順序),利用LSTM網(wǎng)絡(luò)對服飾之間的搭配關(guān)系進行學(xué)習(xí).LSTM網(wǎng)絡(luò)可以學(xué)習(xí)到前n件服飾的特征,并且基于之前的狀態(tài)預(yù)測下一件服飾,同樣,反向的預(yù)測也是有意義的,所以使用雙向長短時記憶網(wǎng)絡(luò)(Bi-LSTM)模型對服飾兼容性進行建模.
給定一套服裝序列O={X1,…,Xt,…,XT},Xt={St,vt}是當前套裝中第t件服飾單品的特征集合,其中St是由3.1節(jié)得出的服飾單品的風(fēng)格特征向量,vt是預(yù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)提取出的圖像特征.將套裝序列的圖像特征vt按照順序作為Bi-LSTM模型的輸入.具體來說,對于正向LSTM網(wǎng)絡(luò)將之前的狀態(tài)ht-1和當前的輸入vt映射到當前的狀態(tài)ht,這是一個從t=1到t=T的遞歸計算的過程,具體計算過程如公式(1)所示:
it=σ(Wvivt+Whiht-1+Wcict-1+bi)
ft=σ(Wvfvt+Whfht-1+Wcfct-1+bf)
ct=ftct-1+ittanh(Wvcvt+Whcht-1+bc)
ot=σ(Wvovt+Whoht-1+Wcoct+bo)
ht=ottanh(ct)
(1)
其中vt是輸入,ht是t時間步長的隱藏向量,it、ft、ct、ot是輸入門、遺忘門、存儲單元和輸出門的激活向量,Wαβ是向量α和β之間的權(quán)重矩陣,bα是α的偏置項,σ是Sigmoid函數(shù).
(2)
(3)
(4)
反向LSTM的損失函數(shù)可以表示為:
(5)
通過將圖像與描述圖像的文本投影到一個空間中,模型可以捕獲圖像和文本的多模態(tài)信息,將此任務(wù)作為服裝搭配學(xué)習(xí)的副任務(wù),可以更好地指導(dǎo)服裝搭配主模型的訓(xùn)練.
dis(d′,v′)=d′·v′
(6)
希望屬于同一個樣本的視覺特征和文本特征之間的距離小于m,不屬于同一個樣本的視覺特征和文本特征之間的距離盡可能大,可以得到視覺-文本嵌入的損失函數(shù):
(7)
其中θVSE={MT,MI},v′k表示與d′不屬于同一樣本的視覺特征,d′k表示與v′不屬于同一樣本的文本特征.
為了讓文本描述參與Bi-LSTM模型的服飾搭配學(xué)習(xí)中,本研究將視覺-文本嵌入(VSE)任務(wù)作為Bi-LSTM模型訓(xùn)練的副任務(wù).最終可以得到總體的優(yōu)化目標為:
(8)
在本文中使用的是被廣泛使用的Polyvore數(shù)據(jù)集[2],此數(shù)據(jù)集中包含了21889組套裝,其中17316組用于訓(xùn)練,1497組用于驗證,3076組用于測試.數(shù)據(jù)集總共包含164379件服飾單品,每一件單品包含服飾圖像和其對應(yīng)文本描述,如圖4所示.在訓(xùn)練過程中,對于套裝內(nèi)單品數(shù)量大于8件的套裝,選擇前8件作為訓(xùn)練樣本.在套裝中,服飾單品的順序是根據(jù)用途由前至后排列的,如上衣、褲子、鞋、包、配飾.對于服飾單品的文本描述信息,去除出現(xiàn)次數(shù)小于30次的單詞,最終得到了2575個單詞作為文本詞典.
圖4 套裝圖像和文本描述示例Fig.4 Example of image and text description in an outfit
在風(fēng)格特征向量提取模型中,使用的是在ImageNet上預(yù)訓(xùn)練的ResNet-50,本研究選擇了ResNet-50網(wǎng)絡(luò)中由淺至深,并且是殘差單元跳層連接輸出的層,分別為1、22、40、49層,作為不同粒度視覺屬性的特征提取層,它們分別有64、512、1024、2048個卷積核,將這些卷積核按照順序編號,作為3648個視覺單詞.因為激活值被歸一化到0-1區(qū)間,所以選擇中間值0.5作為τ的取值以篩選出被較大程度激活的通道.經(jīng)過多次實驗,風(fēng)格特征向量的維度被固定為10維.如圖5所示,經(jīng)過聚類后,數(shù)據(jù)集中一些能代表特定風(fēng)格的服飾單品圖像被挑選出作為直觀的展示.
圖5 風(fēng)格聚類直觀展示Fig.5 Visualize of style cluster
SetRNN[10]對于給定的套裝,SetRNN使用RNN模型預(yù)測套裝的流行程度.使用SetRNN的流行度預(yù)測作為套裝兼容性分數(shù).
Bi-LSTM+VSE[2]本實驗的基線模型.
Bi-LSTM+VSE+SE[6]Nakamura等人將一個用自動編碼器實現(xiàn)的無監(jiān)督風(fēng)格提取模塊(SE)合并到Bi-LSTM+VSE模型上,構(gòu)建了一個有服飾風(fēng)格參與的服裝搭配學(xué)習(xí)模型.
SCE-Net[13]此網(wǎng)絡(luò)在沒有明確的類別或?qū)傩员O(jiān)督的情況下,從圖像中學(xué)習(xí)不同相似概念獲得服裝的特征.他們與本研究使用了相同的數(shù)據(jù)集和相同的評價指標.
CSA-Net[12]此網(wǎng)絡(luò)是一種基于類別的子空間注意網(wǎng)絡(luò),其任務(wù)與本研究有相似之處.
服裝填空任務(wù)(FITB)是指在給定一套搭配好的服裝,將其中一件單品隨機地用空白代替,同時從其他的套裝中任意地挑選3件作為錯誤選項,與正確選項一起作為備選答案,讓模型選擇其中之一填充題目中的空白.這一任務(wù)的目標函數(shù)可以被寫作:
(9)
C是備選答案的集合,t是被空白代替的位置,對于每一個備選答案,模型在經(jīng)過一次正向和一次反向計算后選擇滿足公式(9)的單品作為最終答案.部分實驗可視化如圖6所示,本模型預(yù)測準確率與對比模型的數(shù)據(jù)如表1所示.
圖6 服裝填空直觀展示Fig.6 Visualize of fill-in-the-blank task
本文提出的模型還可以有效地對搭配好的套裝的兼容性進行打分,為了評判方法的效果,本文使用ROC曲線的AUC對性能進行評估,本模型與對比模型的數(shù)據(jù)如表1所示.
表1 服裝填空和兼容性預(yù)測對比實驗結(jié)果Table 1 Comparison on the fill-in-the-blank and compatibility prediction tasks
服飾風(fēng)格是時尚專家在服裝搭配中一個重要的指導(dǎo),在服裝搭配學(xué)習(xí)模型中同樣需要注重服飾風(fēng)格.本文通過一種多模態(tài)、無監(jiān)督的方法,為服飾風(fēng)格建模,并且為每一個服飾單品生成風(fēng)格特征向量.在傳統(tǒng)的服裝搭配學(xué)習(xí)模型中,本研究加入了服飾在風(fēng)格空間上預(yù)測的損失,作為模型學(xué)習(xí)的指導(dǎo).經(jīng)過實驗,證明了加入風(fēng)格空間上的損失能夠提升服裝搭配模型的學(xué)習(xí)效果.