Yahoo!ショッピングアプリで類似画像検索が可能に

課題

ネットショッピングをしているとき、たとえば「こんな感じの色の服がほしいけど上手く言葉で表せない」「街中で見たような服がほしい」「商品名がわからない」など、自然言語だけでは検索の限界がありました。対してInstagramで服を探すときのように、画像なら直感的な検索が可能になります。そこで画像検索の導入が求められていました。

解決方法

Yahoo!ショッピングのiPhoneアプリのファッションカテゴリーにおいて、類似画像検索が利用可能となりました。商品詳細の画面から、類似画像検索のボタンを押すと、見た目の類似した商品が見つかります。

https://techblog.yahoo.co.jp/entry/20190703688345/

また、スマートフォンのカメラで対象物を撮って、Yahoo!ショッピングの類似商品を検索することも可能です。

Yahoo!ショッピングに掲載されている商品画像には複数のカテゴリー分けができるものが多数存在するので、それらをそのまま検索対象としてしまうと、上手く検索できません。そこで、画像からファッション商品だと思われる物体領域を検出し、その領域を画像から切り出して検索対象とします。
次に、検出した物体領域で画像を切り抜き、その画像から特徴量(ベクトル)を抽出します。

今回の類似画像検索では、Yahoo! JAPAN研究所で研究された技術NGTが利用されています。NGTは、テキスト、画像、商品、ユーザーデータなど、複数の特徴を持つデータ(高次元データ)を、高速に検索・特定できるソフトウェアで、Yahoo!がOSSとして公開しています。そのNGT を利用して、抽出したベクトルを高速に検索するためのインデックスを生成しました。

Yahoo!ショッピングアプリの場合、既に出品されている商品の商品画像をクエリとしています。インデックス内のベクトルをクエリとできるので、それを使って近傍探索を行うことで類似画像検索を実現しています。Yahoo!ブラウザーの場合は、カメラで撮影した画像をリアルタイムでベクトル化して近傍探索を行います。

どうなったか

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

まとめ

「これいいなと思ったら、画像検索すればすぐに購入できる、そんな世界を実現したいです」とYahoo!ショッピングの担当者は語っています。ZOZOTOWNやスマホアプリのscreenshopなどでも類似画像からの商品推薦機能はありました。今後改善が進むことで、競合サイトより抜きん出た画像検索ができるようになるのか注目です。

参考資料

(蒲生由紀子)