2.2K Views
December 12, 19
スライド概要
ヤフオク!では出品時にアップロードされた画像をもとに商品タイトルを推薦する機能を提供しています。この機能は、出品画像と類似したヤフオク!の商品を検索し、その商品のタイトルに基づいて推薦しています。
本セッションでは、商品画像を特徴ベクトル化する仕組み、NGTにより類似度の高い画像(特徴ベクトル)を高速に検索する類似画像検索基盤等、タイトル推薦機能がどのように実現されているかご紹介しました。
2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp
ヤフオク!における出品時タイトル推薦機能の裏側 テクノロジーグループ サイエンス統括本部 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 土井賢治
土井 賢治 テクノロジーグループ サイエンス統括本部 機械学習を活用してヤフオク!のサービスを改善 福岡天神オフィス勤務 趣味でラーメン二郎の画像から店舗名を識別する botを開発しています Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
このセッションについて 本セッションでは ヤフオク!における出品時タイトル推薦機能が どのように実現されているかご紹介します Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
アジェンダ 1. 出品時タイトル推薦機能の概要 2. 画像から特徴ベクトルへの変換 3. 特徴ベクトルの近傍探索 4. NGTによる類似画像検索基盤 5. 今後の展開 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
アジェンダ 1. 出品時タイトル推薦機能の概要 2. 画像から特徴ベクトルへの変換 3. 特徴ベクトルの近傍探索 4. NGTによる類似画像検索基盤 5. 今後の展開 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
1. 出品時タイトル推薦機能の概要 アップロードした画像から商品名を自動で推薦 ※アプリ版のみ提供中 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
1. 出品時タイトル推薦機能の概要 出品画像と類似した過去の出品画像の情報に基づいて推薦 出品画像 商品名:レザーダウンジャケット 形態素解析後:レザー, ダウンジャケット 商品名:ラムレザーダウンジャケット 形態素解析後:ラムレザー, ダウンジャケット 商品名:ダウン レザー BLACK 形態素解析後:ダウン, レザー, BLACK 推薦タイトル:レザー, ダウンジャケット Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
1. 出品時タイトル推薦機能の概要 どうやって類似画像を探す? 特徴ベクトル(画像のもつ特徴を固定長のベクトルに変換したもの)を利用 出品画像から特徴ベクトルを抽出し、過去の出品画像も含む 特徴ベクトル空間で近傍にある(=特徴ベクトルが類似している)画像を探す ・良い特徴ベクトルを抽出するための工夫 ・類似した特徴ベクトルを高速に検索するための工夫 について今から紹介します Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
アジェンダ 1. 出品時タイトル推薦機能の仕組み 2. 画像から特徴ベクトルへの変換 3. 特徴ベクトルの近傍探索 4. NGTによる類似画像検索基盤 5. 今後の展開 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
2. 画像から特徴ベクトルへの変換 画像の特徴ベクトルとは 画像を固定長のベクトルに変換したもの(下記は3次元の場合) [0.07, 0.33, -0.03] [0.72, 0.24, -0.18] [1.37, -0.80, 0.94] [0.79, 0.21, -0.28] 類似画像を精度良く検索できるようにするために 異なる物(りんごとスマホ)は異なる特徴ベクトルとなり、 似ている物(スニーカー)は類似した特徴ベクトルになって欲しい Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
2. 画像から特徴ベクトルへの変換 特徴ベクトルが類似しているとは コサイン類似度(Cosine similarity)で判定する※ Cosine similarity = 3⃗ ⋅ 5 3⃗ ⋅ 5 2つのベクトルがどの程度同じ向きを向いているかを示す指標 (ベクトルが同じ向きのとき cosθ=1 反対向きのとき cosθ=-1となる) [0.07, 0.33, -0.03] [1.37, -0.80, 0.94] [0.72, 0.24, -0.18] [0.79, 0.21, -0.28] 0.0733 0.9935 ※ タイトル推薦機能ではコサイン類似度を利用していますが、ユークリッド距離等、距離を定義できる指標であれば利用可能 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
2. 画像から特徴ベクトルへの変換 Metric Learning (距離学習) Metric Learningとは データ間の関係 (距離や類似度)を学習する手法 ・サンプル同士の類似度がコサイン類似度やユークリッド距離等の指標と対応する ように特徴量空間に埋め込む変換を学習する ・情報検索、分類、等様々なタスクに活用される 入力が画像の場合はCNN(畳込みニューラルネットワーク)を使うことが多く、 この場合には、Deep Metric Learningと呼ばれる Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
2. 画像から特徴ベクトルへの変換 CNN(畳込みニューラルネットワーク)で画像を特徴ベクトルに変換する 類似した画像の特徴ベクトルのコサイン類似度→大きく 異なった画像の特徴ベクトルのコサイン類似度→小さく なるように、ヤフオク!の大量の画像でCNNを学習 [ [ 1.59, 0.06, -0.79, 0.06], [ 1.29, 0.16, -0.49, 0.18], [ 1.81, 0.33, -0.13, 0.33] ] 画像 Google AI Blog (https://ai.googleblog.com/2016/08/improving-inception-and-image.html) ※ ニューラルネットワークの画像はイメージ(実際に利用しているものとは異なります) Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
2. 画像から特徴ベクトルへの変換 CNNを特徴抽出器として学習するための代表的な手法 CNN特徴抽出 + Metric Learningに特化したloss(損失関数)を使う手法 (Triplet loss, N-pair loss, 等) ・Triplet lossは、学習画像から、正例(似ている物) と負例 (異なる物)のペアを 含む3枚の画像を1セット(triplet)として選び学習する ・データセットが大規模な場合、組わせが膨大で学習に有効な tripletの選択が難しい Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
2. 画像から特徴ベクトルへの変換 学習手法のイメージ (Triplet lossによるMetric Learning) (1/2) ・Tripletの作成 商品のタイトル単語の重複具合 (IoU)を指標としてtripleを作成 アンカー画像 靴, 26cm, 黒 靴, 26cm, 緑 重複が大きので正例 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 鞄, 白 重複が少ないので負例
2. 画像から特徴ベクトルへの変換 学習手法の事前検証 (Triplet lossによるMetric Learning) (2/2) ・Triplet lossを用いて特徴量抽出器を学習 特徴ベクトル 負例 アンカー 正例 CNN 0.1 −0.3 ⋮ 0.1 CNN 0.8 0.1 ⋮ −0.4 CNN Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. 0.7 0.1 ⋮ −0.5 特徴量空間 遠ざける 近づける
2. 画像から特徴ベクトルへの変換 CNNを特徴抽出器として学習するための代表的な手法 CNNでクラス分類学習をしながらMetric Learningする手法 ・L2-Softmax loss, Sphereface, ArcFace, AdaCos, 等 ・最近よく見かけるようになってきた手法 ・用途に応じたクラスラベルを付与する必要があるが、 画像のクラスラベルを用意するだけでMetric Learningを実現できる Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
2. 画像から特徴ベクトルへの変換 学習手法のイメージ (分類学習によるMetric Learning) ・CNNの分類学習でMetric Learningを行う ヤフオク! の出品カテゴリを画像の見た目に基づきマッピングしたラベルを利用 (約3万カテゴリから約1300カテゴリにマッピング) 0.1 −0.3 ⋮ 0.1 CNN 全結合層 特徴ベクトル 0.5 0.2 0.1 ⋮ 0.0 0.997 0.001 0.001 ⋮ 0.000 ファッション > ハンドメイド > かばん、バッグ > 女性用 softmax + cross entropy 全結合層の手前の値を特徴ベクトルとして利用する Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
2. 画像から特徴ベクトルへの変換 2つの学習手法の事前検証を実施 ・利用データセット 学習データ: 840万枚 評価(validation)データ:100万枚 テストデータ: 2万枚 ・評価指標 テストデータと最近傍の画像とのタイトル単語の重複具合(IoU) ・結果 学習手法 Triplet Loss 分類学習 IoU (平均値) 0.30 0.46 事前検証およびいくつかの定量・定性評価を踏まえ分類学習の採用を決定 ※ Triplet Lossおよび分類学習の事前検証は2018年度のヤフオク!インターンにて東京大学の坪田亘記さんが取り組んだ成果です Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
2. 画像から特徴ベクトルへの変換 CNN学習時の3つの工夫 ①画像が類似しているかどうかは出品されたカテゴリをもとに判断 ヤフオク!のカテゴリ(約3万3000)を画像の見た目に基づくカテゴリ体系に マッピング(約1300)して学習データとして利用 マッピングの例 ・ファッション > メンズファッション > ジャケット、上着 > ダウンジャケット ・スポーツ、レジャー > アウトドアウェア > 男性用 > ジャケット、上着 > ダウン ↓ ・ジャケット、上着 > ダウンジャケット Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
2. 画像から特徴ベクトルへの変換 CNN学習時の3つの工夫 ②ディープラーニング向けスパコン「kukai」を利用 過去の数千万件の出品画像を高速に学習 (最大80GPUで分散並列学習) ③重複した画像の除去(dedupe) 出品画像には、リサイズや再圧縮によりバイナリが一致しない重複画像が 大量に含まれているため、知覚ハッシュ関数等を使って重複除去しておく (phashのハミング距離4以下の画像を除去する等) ※ 知覚ハッシュ関数:画像の見た目が類似しているほど類似したハッシュ値を生成するハッシュ関数 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
アジェンダ 1. 出品時タイトル推薦機能の仕組み 2. 画像から特徴ベクトルへの変換 3. 特徴ベクトルの近傍探索 4. NGTによる類似画像検索基盤 5. 今後の展開 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
3. 特徴ベクトルの近傍探索 特徴ベクトルの近傍探索 出品画像の特徴ベクトルと類似している上位k件の過去の出品画像を探したい ・線形探索(計算コスト大) 検索対象の数千万枚分の画像全件に対して類似度の計算が必要 ・近似最近傍探索(Approximeate Nearest Neighbor (ANN) search) 近傍探索用インデックスを事前作成し計算コストを下げる Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
3. 特徴ベクトルの近傍探索 NGT (Neighborhood Graph and Tree) NGTはヤフーが開発している、大量の高次元ベクトルデータに 対して高速な近似近傍探索を可能とするOSS ・近似近傍探索は精度と速度のトレードオフ ・NGTは他の近似近傍探索の実装と比較し、精度と速性ともにトップクラス ・実用面も考慮 ・インデックスへのデータの追加や削除が可能 ・複数プロセス間でのインデックスの共有が可能 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
3. 特徴ベクトルの近傍探索 NGTの性能 fashion-mnist-784-euclidean NGT 各種近似近傍探索ソフトウェアの性能を まとめている ann-benchmarks にて、 NGTがトップレベルの結果(※)を獲得 (グラフの右上ほど、高精度かつ高速) ※データセット globe-25-angular を除く9つのデータセットでトップの性能 画像 https://github.com/erikbern/ann-benchmarks#fashion-mnist-784-euclidean Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
3. 特徴ベクトルの近傍探索 NGTの詳細について このセッションのあと行われる、セッションB-3 「世界最速クラスのベクトル近傍検索NGTと深層学習による ファッション検索への応用事例」 にて、 NGTがなぜ高速な検索を実現できるのかについても解説します Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
アジェンダ 1. 出品時タイトル推薦機能の仕組み 2. 画像から特徴ベクトルへの変換 3. 特徴ベクトルの近傍探索 4. NGTによる類似画像検索基盤 5. 今後の展開 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
4. NGTによる類似画像検索基盤 類似画像検索基盤の構築 API 類似画像検索基盤 … ① 画像特徴抽出API (画像から特徴ベクトルを抽出) ダウンジャケット, レザー … タイトル推薦機能開発にあたり、 ② NGTクラスタ (NGTD) (類似した特徴ベクトルを探索) 過去の数千万件の出品データから 画像の見た目が類似した商品の 各種メタデータを検索可能な 類似画像検索基盤を構築 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved. ③ 全社Cassandraクラスタ 商品のメタデータ(タイトル、カテゴリ、落札価格等)を検索
4. NGTによる類似画像検索基盤 タイトル推薦機能開発時の工夫点 ・類似画像の検索結果上位100件のメタデータをもとにタイトルを推薦 ・カテゴリ情報による絞り込み ・画像類似度の閾値による絞り込み ・同一単語の出現頻度によるスコアリング ・メタデータインデックス構築時の前処理 ・ストップワードの除去(美品、送料無料、etc) ・商品タイトルの形態素解析、表記揺れ解消やブランド名の名寄せ Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
アジェンダ 1. 出品時タイトル推薦機能の仕組み 2. 画像から特徴ベクトルへの変換 3. 特徴ベクトルの近傍探索 4. NGTによる類似画像検索基盤 5. 今後の展開 Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
5. 今後の展開 類似画像検索基盤の活用 ・類似画像検索基盤を様々な機能に活用 ・類似画像検索基盤は入力された画像と類似した商品の各種メタデータ (タイトル、カテゴリ、落札価格、等)を検索可能 ・タイトル推薦だけでなく、カテゴリ推薦、価格推薦、類似画像検索等、 さまざまな活用を見込んでいる Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.
Copyright© 2019 Yahoo Japan Corporation. All Rights Reserved.