2019年7月 3日

似た商品が見つかる! Yahoo!ショッピングの類似画像検索 〜 近傍探索NGTの導入事例

  • このエントリーをはてなブックマークに追加

Yahoo!ショッピングの大元です。

この度、類似画像検索のサービスを2つリリースいたしました。

そこで、簡単にどういったサービスなのか、今後どう改善していくのかをお話したいと思います。

機能概要

Yahoo!ショッピングのiPhoneアプリにて類似画像検索が利用可能となりました。ファッションカテゴリーが対象です。
商品詳細の画面から、類似画像検索のボタン(虫眼鏡のアイコン)を押していただくと、このように見た目の類似した商品が見つかります。

この商品と見た目の似た商品一覧が表示される

また、Yahoo!ブラウザーのカメラでかざす検索では、スマートフォンのカメラで対象物をとって、Yahoo!ショッピングの類似商品を検索できます。

写真を撮ると、似た商品が一覧表示される

類似画像検索で解決したい課題

なぜ、Yahoo!ショッピングで類似画像検索の機能を提供するのか。

皆さんは、ECサイトでショッピングをしているときに、このような体験をしたことはないでしょうか。

  • こんな感じの色が好きなんだけど...
  • ボーダーの服がほしいけど、ボーダーは太めがいいんだけど...
  • これなんていう商品名なのかわからない...
  • etc...

自然言語だけではどうしても表現しきれない検索意図を、画像を利用することで解決できないかというのが今回のサービス展開の意義です。

画像検索の処理フロー

処理の流れ。物体検出、特徴抽出、インデックス、検索

1. 商品画像から、物体領域を検出

Yahoo!ショッピングに掲載されている商品画像には、

  • 「送料無料」の文字が入っている
  • 他の商品を組み合わせたコーディネート画像になっている
  • 色違いの商品を一つの画像にまとめている

といったものが多く存在しています。

そのため、それらをそのまま検索対象としてしまうと、周りの文脈に左右されすぎてうまく検索できません。
そこで、画像からファッション商品だと思われる物体領域を検出し、その領域を画像から切り出して検索対象とします。
例えば上のYahoo!ブラウザーの例のように、トップス、バッグ、靴などのカテゴリーごとに検索が可能となり、より類似した商品を検索できます。

2. 画像から特徴量(ベクトル)を抽出

1 で検出した物体領域で画像を切り抜き、その画像から特徴量を抽出します。
このあたりの詳細はまたご紹介できればと思います。

3. ベクトルの検索インデックスを生成

今回の類似画像検索では、Yahoo! JAPAN研究所で研究された技術NGTを利用しています。
NGTは、テキストや画像、商品・ユーザーデータなど、複数の特徴を持つデータ(高次元データ)を、高速に検索・特定できるソフトウエアで、ヤフーがOSSとして公開しています。NGTは、以前からこのTechblogでも取り上げられているので、興味のある方はそちらも読んでみてください。
NGT を利用して、2 で抽出したベクトルを高速に検索するためのインデックスを生成します。

4. 近傍探索

Yahoo!ショッピングアプリの場合、既に出品されている商品の商品画像をクエリとしています。
つまり、3のインデックス内のベクトルをクエリとできるので、それを使って近傍探索を行うことで類似画像検索を実現しています。

Yahoo!ブラウザーの場合は、カメラで撮影した画像をリアルタイムでベクトル化して近傍探索を行います。

特徴

今回利用した、物体検出や特徴量抽出のモデル、高次元ベクトルの検索などコアとなる技術は Yahoo! JAPAN研究所や他部署と連携し、全てヤフー内で完結させています。

社内で研究された技術を自社サービスに適用 → 得られたデータをフィードバックというサイクルを高速に回すことができ、より高速な改善を行うことが可能となるのも、ヤフーのような大企業の強みの1つかもしれません。

今後の展開

ここからはYahoo!ショッピングの佐藤に変わります。今後の展開についてご紹介します。

今回のリリースでは、ファッションカテゴリーの商品のみが対象ですが、今後は対象カテゴリーを広げていく予定です。対象商品が増えるにあたり、物体検出、特徴抽出の計算コストも大きくなるため、現在GPUマシンを増強しています。また、インデックスのサイズが大きくなると、NGTのインデックスがメモリに乗り切らなくなるため、複数ノードにまたがって検索できるように、分散インデックス、分散検索機能を開発中です。

また、今のシステムは、主に画像情報を利用した類似画像検索であるため、画像としては似ていてもブランドが違ったり、価格帯がバラバラとなってしまうことがあります。画像以外の情報も利用し、ユーザーのニーズにマッチした商品を返せるように改善していきます。

現在のYahoo!ショッピングアプリの類似画像検索では、対象商品の領域を自動で選択するようにしていますが、今後は、同じ画像内で対象商品以外の領域も選択できるようにしようと考えています。例えば、ワンピースの商品を見ていたとき、一緒に写っているバッグに興味が移ることがあると思います。
コーディネートとしてこれも欲しい、そういったケースに対応できるようになります。

Yahoo!ショッピングの画像検索はまだ始まったばかりで、これからどんどん改善していきます。
これいいなと思ったら、画像検索すればすぐに購入できる、そんな世界を実現したいです。

今後のYahoo!ショッピングの画像検索の改善にご期待下さい!

--
Yahoo!ショッピング 大元 武
Yahoo!ショッピング 佐藤 純一

Yahoo! JAPAN Advent Calender 2019(外部リンク)を開催します。12月1日から25日まで毎日ブログを公開予定です。詳しくはリンク先をご確認ください。
Qiitaアカウントがない方はこちらのRSSもありますのでぜひ購読ください。

Yahoo! JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。

  • このエントリーをはてなブックマークに追加