OutfitNet: Fashion Outfit Recommendation with Attention-Based Multiple Instance Learning
何で visa がファッション推薦の研究してるかは謎
読んだ理由
着る服を決断しなくて良い未来を実現したい
他分野の推薦方法を知ることで見えてることもあるかもしれない
どんなもの?
服とアクセサリーを含めたファッションアイテムの組み合わせである服装の推薦
ファッションのパーソナライズ界隈
ファッションの世界的な収益は2020年には7,219億ドルになる予想(コロナ前)
パーソナライズされた推薦はオンラインでのファッション購買の43%に影響
先行研究と比べてどこがすごい?
従来は単一のファッションアイテムの推薦が多い
一部服装の推薦はあったものの、アイテムの数が固定だったり、同じカテゴリの組み合わせ(帽子とアウターとボトムズと靴みたいな)だったりの制約
この研究では、それらの制約無しの服装推薦方法を提案
手法のキモはどこ?
2段階からなるモデル
アイテム同士の相性を学習するモデル
アイテムの埋め込み
Fashion item relevancy network (FIR)
FIRのアイテム埋め込みを利用した、ユーザーの服装の好みを学習するモデル
Outfit Preference Network (OP)
Fashion item relevancy network (FIR)
入力はtriplet $ (x_i, \overset{-}{S}, x_j )
$ x_i は服装$ S における1つのアイテム
$ \overset{-}{S} は$ S から $ x_iを除いた服装
$ x_j は$ S に含まれないアイテム
$ \overset{-}{S} はtriplet networkにおけるアンカーに相当
ほとんど全結合層をとおして伝搬
目的関数は以下のようなスコアの差
https://gyazo.com/3c881d20cacc425510d1c029e90b1443
https://gyazo.com/5b8a770f907c6acedbe38e8bb84e9251
Outfit Preference Network (OP)
入力はtriplet $ (u, i, j )
$ u はユーザー
one-hot encoding
$ i はユーザー $ u が like を示した服装
$ j はユーザー $ u が like を示していない服装
FIRで学習したモデルを使用してembedding
$ i と$ j のembedding ($ h^{f+} , $ h^{f-} ) とユーザー$ u のembedding ($ h^{u} ) をそれぞれ結合して、全結合層に通す
その後、パーソナライズされた服装のスコア $ y_{u,i} , $ y_{u,j} を算出
2つの方法を試している
Instance-level approach
$ h^{f+} を全結合層にとおしてスカラ値にする(アイテムスコア)
$ h^{f+} と $ h^{u} を全結合層に通して算出したattention scoreスコアとアイテムスコアの内積で服装のスコアを算出
embedding-level approach
$ h^{f+} と $ h^{u} を全結合層に通して算出したattention scoreスコアで重み付けした$ h^{f+} を全結合層にとおして、服装スコアを算出
https://gyazo.com/fb83c0e520db1d1998358dc43cee5acf
https://gyazo.com/c9da0e372e16c887ee79c36fd880fdea
どうやって有効だと検証した?
2つのタスク
fill-in-the-blank
服装から1つのアイテムを除去
元々あったアイテムを予測する問題
服装の推薦問題
Dataset
Polyvore
服装のコーディネートを載せたり、他の人の服装コーディネートにいいねしたりするサービスらしい
サービスがもう終了している
クローリングしたらしい
iFashion
Alibabaがやっている同じようなもの?
これは公開されているらしい
https://gyazo.com/1443399d28c1e7822e840222ee9817cf
Result
fill-in-the-blank
metrics
accuracy
解釈を間違ってなければ、候補は正解+ランダムに選択した3つの4択クイズ
Randomの結果が25%なので多分そう
LSTM系は次のアイテムを予測する問題なので、比較がかなり不公平な気はする
それでもTripletよりは少し良くなってるはいる
https://gyazo.com/c2dfa8be31f6cfecafc3229f882927a6
服装の推薦問題
metrics
AUC
従来と比較してかなり良くなってる
比較する方法が良くない説もある
cold outfits(1人のユーザーだけがいいねしてる服装)でもそこそこの性能
coldのときは instance-level > embedding-levelとなる傾向
https://gyazo.com/f7f28708571592091571d34c61b13272
アイテム埋め込みの定性評価
FIRのembeddingをt-SNEで2次元に
imageNetでpre-trainしたDenseNetとの比較
DenseNetはvisualが近いものが距離が近い
提案法では相性が良いアイテム(同時に組み合わせられやすい)が距離が近い
https://gyazo.com/d7975ad937265028a8493d044e9786db
服装生成アルゴリズム
初期アイテムの集合Sと欲しいアイテム数kが入力
Sの平均ベクトルと最も近いアイテムを獲得
そのアイテムのカテゴリが、Sのアイテムの各カテゴリと異なればSに追加
Sの要素がkになるまで継続
初期Sのアイテム数1、k=5の例
https://gyazo.com/4c34735e8ff9bd930ca3fb7a97e92dc2
所感
服装生成は、自分が持ってる服との組み合わせみたいなことが出来て楽しそう
アイテムのembeddingの作り方はニュースでも可能性はありそう
服装 is セッション中に見た記事?
同時に見られる記事が近いベクトル
関連記事とかで使える?