しえログ

qiita との使い分けに悩んでる

KDD 2017 の Visual Search at eBay を読んだメモ

最近お仕事で CBIR 関連やっているので半ば義務感でさらっと目を通してみた。
結果まで書ききる体力なかったので手法とアーキテクチャのみ軽く・・・。

[1706.03154] Visual Search at eBay

www.youtube.com

タイトル

Visual Search at eBay

著者

Fan Yang, Ajinkya Kale, Yury Bubnov, Leon Stein, Qiaosong Wang, Hadi Kiapour, Robinson Piramuthu

概要

eBay の運営するサービスである ShopBot および Close5 の2つに関する技術事例・システム論文。リストに上がっては売れていくという揮発性のあるオンラインマーケットプレイスに対する画像検索へのアプローチ。画像検索技術だけでなく、スケールするシステムアーキテクチャと実装にまで触れている。

手法

DNN アーキテクチャ

例によって DNN でアプローチしているわけだが、 共通 conv 層の先を2つに分割し、セマンティックハッシュ生成用とカテゴリ認識用に別々の fc 層を構築したネットワークを用いている。

f:id:cielan:20170806112032p:plain
論文中より Fig. 3

検索結果のランキングはバイナリハッシュのハミング距離でソートするわけだが、より検索結果を改善するために以下の計算による属性スコアを取り入れて、そのうえで再度ランキング化している。

 {
S = \lambda S_{appearance} + (1 − \lambda)S_{aspect} \\
S_{aspect} = \frac{1}{\sum_{i=1}^nw_i}\sum_{i=1}^n\sum_{j=1}^mw_i\mathcal{I}(a_i^q=a_j)
}

 {S_{appearance}}: バイナリハッシュの正規化されたハミング距離
 {w_i,0 \leq i \leq n}: reward point。ハードコードされているが、属性によって可変設定。
 {a_i^q,0 \leq i \leq n}: クエリ画像  {q} から予測して得られた属性
 {a_j,0 \leq j \leq m}: 検索結果の画像から得た ground-truth な属性
 {\mathcal{I}(\cdot)}: 中身が一致していたら1を返す indicator 関数

システムアーキテクチャ

画像の取り込み及び保存はこんな感じ。
BigTable には MD5 を、CloudStorage には画像本体を格納している。

f:id:cielan:20170807002827p:plain
論文中より Fig. 6

さらに画像ランキングを保持するアーキクチャは Hazelcast を Kubernetes 上に構築。

f:id:cielan:20170807002841p:plain
論文中より Fig. 7