検索
ニュース

Microsoft、Bingの概念検索に使用するAIライブラリ「SPTAG」をオープンソース化検索語に含まれない結果を出力

Microsoftは、検索エンジン「Bing」で使用する高速な近似最近傍探索ライブラリ「SPTAG」をオープンソースソフトウェアとして公開した。単純な単語の検索ではなく、関連性の高いベクトル探索が可能になる。

Share
Tweet
LINE
Hatena

 Microsoftは2019年5月15日(米国時間)、検索エンジン「Bing」で使用しているAIアルゴリズムの一つをオープンソースソフトウェア(OSS)として公開した。

 公開したのは「SPTAG」(Space Partition Tree And Graph:空間分割ツリーおよびグラフ)。SPTAGはC++で作成され、Pythonでラップされた高速な近似最近傍探索ライブラリだ。


SPTAGの概念図(出典:Microsoft

 SPTAGではディープラーニングモデルを利用して、数十億個のベクトル情報を数ミリ秒で探索できる。これにより、ユーザーにとって関連性の高い検索結果を高速に提供することが可能になった。

 検索エンジンがベクトル探索を使用すると、概念検索が容易になる。例えば、ユーザーが、「How tall is the tower in Paris?」(パリにある塔はどのくらいの高さか)と入力したとしよう。この検索クエリには「Eiffel」(エッフェル)という単語が含まれていない。それにもかかわらず、「エッフェル塔が1063フィート(約324メートル)だ」とBingは自然言語で結果を返す。なお、検索結果には、入力時にあった「tall」という言葉が含まれていない。

 ベクトル探索は、Bingが数十億件に上るWeb検索の意図をより良く理解し、数十億のWebページの中から最も関連性の高いものを見つけるために役立っている。

何がベクトルなのか?

 ベクトルは基本的に、単語や画像ピクセル、その他のデータポイントの数値表現であり、データの実際の意味を捉えるのに役立つ。Microsoftは、「ディープラーニングというAI分野の進歩のおかげで、こうしたベクトルを使って検索の意図を理解し、表現することが可能になり始めている」と述べている。

 1つのデータにある数値ポイントを割り当てると、近くに配置された別の数値ポイントを使って、ベクトルを配置(マッピング)できるようになる。これがデータ間の類似性を表すために、検索結果が向上する。

Microsoftのベクトル探索のアプローチ

 Bing検索では、従来のキーワードマッチングよりも優れた検索結果の提供を目指した。そのために、Bing検索エンジンでインデックスを作成した1500億件以上のデータを対象に、こうしたベクトル化を進めてきた。これらのデータには、単語や文字、Webページのスニペット、検索クエリ、その他のメディアが含まれる。ユーザーが検索すると、Bingは、インデックスが作成されたベクトルをスキャンし、最適な結果を返す。

 ベクトルの割り当てについては、ディープラーニング技術を使ってトレーニングすることで、継続的な改善を図っている。ディープラーニングモデルは、検索の意味に対する理解を高めるために、検索後にエンドユーザーが画面上の何をクリックしたかといった入力を考慮して学習を進める。

 メディアや検索データをベクトル化するというアイデアは、新しいものではないが、Bingのような巨大な検索エンジンでこうしたベクトル化を大規模に利用できるようになったのは、ごく最近だと、Microsoftの専門家は述べている。

 「Bingは毎日、数十億のドキュメントを処理している。現在では、こうした検索入力をベクトルとして表現し、1000億以上のベクトルの巨大なインデックスを探索して、最も関連性の高い検索結果を5ミリ秒以内で取得できる」(MicrosoftのBigチームのプログラムマネジャー、ジェフリー・ジュー氏)

 Bingチームは、今回OSS化したSPTAGの活用効果を次のように述べている。

 「企業向けや消費者向けアプリケーションでは、音声の断片を基に、話者の言葉を特定したり、人々が花の写真を撮影したら、その種類を知らせるアプリのような強力な画像処理サービスを提供したりといったことが可能になるだろう」

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る