弱監督條件下基於相似性條件學習的服飾搭配生成

牧言慕語發表於2021-04-17

論文:《Learning Similarity Conditions Without Explicit Supervision》

論文地址:https://arxiv.org/pdf/1908.08589.pdf

程式碼地址:https://github.com/rxtan2/Learning-Similarity-Conditions

本文首發於 https://mp.weixin.qq.com/s/WHnYNvWWkPmqh1HrytCHqg

聯絡方式:

Github:https://github.com/ccc013

知乎專欄:機器學習與計算機視覺AI 論文筆記

微信公眾號:AI 演算法筆記

在這裡插入圖片描述

論文筆記

1. 簡介

目前搭配方面的工作都比較依賴於多種相似條件,比如在顏色、型別和形狀的相似性,通過學習到基於條件的 embedding,這些模型可以學習到不同的相似資訊,但是也受限於這種做法以及顯式的標籤問題,導致它們沒辦法生成沒見過的類別。

所以,本文希望在弱監督的條件下,將不同的相似條件和屬性作為一個隱變數,學習到對應的特徵子空間,如下圖所示,對比了本文的方法和先前的一些工作。

先前的工作需要使用者定義的標籤來學習不同相似性的特徵子空間,比如上衣和褲子的子空間,或者褲子和鞋子的子空間。而對於本文的方法來說,並不需要這些顯式的標籤來學習特徵子空間。

本文是提出了一個相似條件向量網路(Similarity Condition Embedding Network,SCE-Net)模型從一個統一的向量空間中聯合學習不同的相似條件,一個整體結構示意圖如下所示:

  • 每張圖片會經過一個 CNN 網路,然後對映到統一的向量空間中
  • 該網路比較核心的部分是一系列平行的相似條件 masks,即圖中的 $C_1, C_2,\cdots, C_M$,這些 masks 是通過圖中的條件權重分支所學習到的;
  • 圖中的條件權重分支可以被看做是一種 attention 機制,對正在進行比較的物件,動態分配每種條件 mask;

本文的貢獻歸納如下:

  • 本文提出了一個 SCE-Net 模型,它可以在沒有顯式類別或者屬性的監督條件下,從圖片中學習到豐富的不同相似條件的特徵;
  • 本文提出的 SCE-Net 模型也很適合 zero-shot 任務中的新類別和屬性;
  • 更重要的是,我們證明了一個動態加權機制在幫助一個弱監督模型學習不同相似概念的表示是不可或缺的。

2. 方法

這部分將介紹本文提出的 SCE-Net 模型,它是在一個弱監督條件下,將不同的相似條件以及屬性當做隱變數,從而學習到對應的特徵子空間。

首先輸入的圖片將輸入到 CNN 中提取特徵,這裡我們用 $g(x;\theta)$ 進行表示,其中 x 表示輸入圖片,而$\theta$ 表示模型引數。本文的網路主要包含兩個部件:

  • 一套平行相似條件的掩碼;
  • 一個條件權重分支

這會在接下來的兩個小節裡分別介紹,然後第三小節會介紹在不同輸入形式下,條件權重分支的變形。

2.1 學習相似的條件

本文的模型的一個關鍵元件就是一組 M 個平行的相似條件掩碼,記作 $C_1, C_2,\cdots,C_M$,其維度是 D,其中 M 是通過held out data 進行實驗得到的數值。

這組相似條件掩碼和圖片特徵進行點積的計算,從而讓圖片特徵對映到一個編碼了不同相似子結構的二階語義子空間 $R^D$.

令 $C_j$ 表示每個相似條件掩碼,$V_i$ 表示生成的圖片特徵,則上述操作可以如下所示:

上述輸出結果的維度是 $M\times D$,令 O 表示掩碼操作的輸出,即 $O=[E_{i1},\cdots,E_{iM}]$ ,所以最終的輸出為:

這裡的 w 是一個維度為 M 的權重向量,它是由條件權重分支計算得到的。

2.2 條件權重分支

沒有選擇預先定義一套相似條件,本文選擇使用一個條件權重分支來讓模型自動決定需要學習的條件。

條件權重分支會基於一對給定比較的物件決定了每個條件掩碼的關聯性。對於一對圖片 $x_i, x_j$ ,它們經過 CNN 提取到的特徵計算如下所示:

這裡的 concat 表示連線操作,如之前給出的整體結構圖所示,經過 CNN 提取特徵然後進行 concat 操作後,將進入條件權重分支,主要是包括多個全連線層和 RELU 啟用函式,最後使用一個 softmax 層得到 M 維的向量 w。

對於學習複雜相似性關係的時候,很常用的一個方法就是 triplet loss。我們定義一個三元組 ${x_i, x_j, x_k}$ ,其中 $x_i$ 是目標物件,而 $x_j, x_k$ 則分別是正負樣本,即在一些不可見的條件 c 下,和 $x_i$ 在語義上相似和不相似的兩個樣本。triplet loss 的計算如下所示:

其中 $d(E_i, E_j)$ 採用的是歐式距離,然後間隔 $\mu$ 是一個超引數。

除此之外,本文還對相似條件掩碼採用一個 L1 loss 來鼓勵稀疏性和分離性。另外還用一個 L2 loss 來約束學習的圖片特徵,所以最終整個模型的目標函式如下所示:

2.3 SCE-Net 的多種變體

除了僅輸入圖片外,本文也進行了其他不同輸入形式的實驗,這包括了:

  1. 文字特徵:本文也可以輸入一對文字,表示類別標籤或者是圖片的文字描述。對於一個句子會採用預先訓練的詞向量進行預處理,那麼輸入到條件權重分支的輸入特徵如下所示:

  1. 視覺-文字特徵:對於給定的一對圖片特徵 $(V_i, V_j)$ 和其文字特徵 $(T_i, T_j)$ ,輸入到條件權重分支的特徵如下所示:

實際上還有其他處理文字和圖片特徵的方式,比如連線後對映到相同的向量空間,但是在本文實驗中上述直接進行點積操作是效能最好的。

3. 實驗

本文采用了 3 個資料集進行實驗,分別是 Maryland-Polyvore , Polyvore-Outfits,以及 UT-Zappos50k。其中前兩個資料集包含兩種任務的驗證集,分別是搭配匹配性預測和 fill-in-the-blank 任務,而第三個資料集是用於評估本文模型識別不同強度的屬性的能力。

3.1 資料集

  • Maryland-Polyvore:該資料集包含了在社交網站 Polyvore 上的 21799 套搭配,這裡採用作者提供的分割好的訓練集、驗證集和測試集,分別是 17316,1407 和 3076 套搭配;

  • Polyvore-Outfits:這個比上個資料集更大一些,包含了 53306 套搭配的訓練集和 10000 套搭配的測試集,5000 套搭配的驗證集,同樣來自 Polyvore 網站,但和 Maryland-Polyvore 不同的是,該資料集還包含了衣服類別標籤和相關文字描述的標註資訊;

  • UT-Zappos50k:這是一個包含 50000 張鞋子圖片的資料集,同時還有一些標註資訊,這裡採用論文《Conditional similarity networks》提供的基於四個不同條件進行取樣得到的三元組,包括鞋子型別、鞋子性別、鞋跟高度以及鞋子閉合機制。因此每種特性分別得到的三元組數量是訓練集20 萬組、驗證集 2 萬組以及測試集4 萬組,不過在訓練本文的模型的時候,將來自同個特徵的三元組都聚集到一個單獨的訓練集中。

3.2 實驗細節

對於兩個 Polyvore 資料集,採用一個 Resnet18 作為提取圖片特徵的網路模型,然後 embedding 大小是 64。對於文字描述的表示方法,這裡採用了word2vec 的 HGLMM 費舍爾向量(fisher vector),並用 PCA 降維到 6000。另外,還增加了兩個 loss,VSE 和 Sim,分別表示:

  • VSE:視覺-語義損失函式,其目標是讓三元組中同一個物件的圖片特徵和其對應的文字特徵要更靠近一些;
  • Sim:一個損失函式,目標是讓相似的圖片或者相似的文字描述特徵的距離變得更近;

所以,最終的 loss 如下所示:

對於第三個資料集,因為採用三元組的輸入,所以輸入到條件權重分支的輸入如下所示:

分別對應輸入圖片 ${x_i, x_j, x_k}$ 。

3.3 實驗結果

對於在兩個 Polyvore 資料集上的實驗結果,如下所示,對比的方法是 Siamese 網路和 Type-Aware Embedding 網路模型:

使用的條件數量的實驗,如下所示,看到對於 Polyvore 資料集,當只用 5 個條件的時候,模型效能最佳。

相關文章