マイクロソフトは、同社のウェブ検索エンジン Bing の一部を動かす機械学習アルゴリズムをオープンソース化した。
このコードは、「Bing はいつ開始されたのか?」といった質問に答えるために設計されているが、最も難しい質問である「なぜ Bing は今でも存在しているのか?」や「スティーブ・バルマーは?」には答えられないのではないかと懸念している。
「人々が質問をしたり、写真を撮って検索エンジンに『これは何ですか?』と尋ねたりすると、キーワード検索アルゴリズムは機能しなくなります」と、マイクロソフトのBing検索およびAIチームのグループプログラムマネージャー、ランガン・マジュムダー氏はコードの公開を発表した際に述べた。
こうした探究的な問いに答えるために、MicrosoftのBingエンジニアたちは、単語やウェブページから画像に至るまで、1500億点以上のデータをベクトルとしてエンコードしました。このようなデータ表現はディープラーニングでは一般的で、ニューラルネットワークが特定のデータセットに含まれるあらゆるパターンを識別し、断片的な情報がどのように相互に関連しているかを理解するのに役立ちます。これらの関係性は、質問を答えに変え、検索と結果を結び付けるために活用できます。
ただし、これらのベクトルはニューラルネットワークの構築には使用されていません。代わりに、Space Partition Tree And Graph(SPTAG)と呼ばれる別の機械学習アルゴリズムが、ユーザーが情報を検索しようとする際に、この膨大なベクトルの山を網羅的に調べます。このアルゴリズムは、類似のベクトルをクラスタ化し、検索対象に関連する最も近い近傍ベクトルを見つけることで、最も関連性の高い情報を取得・収集します。
例えば、誰かがエッフェル塔の画像を使ってウェブ検索をすると、BingはPyTorchモデルを用いてその画像をベクトルに変換し、SPTAGアルゴリズムがその画像に関連する最も近いベクトルを見つけて、エッフェル塔の他の画像を表示します。同様に、Bingに「エッフェル塔の高さは?」と尋ねると、その単語に最も近い情報、つまり塔の実際の高さが返されます。
「Bing は毎日何十億もの文書を処理しており、現在の構想ではこれらのエントリをベクトルとして表現し、1000 億を超えるベクトルのこの巨大なインデックスを検索して、最も関連性の高い結果を 5 ミリ秒で見つけることができるようになっています」と、マイクロソフトの Bing チームのプログラム マネージャー、ジェフリー チュー氏は述べています。
マイクロソフトのBingが警告「習近平、どうしたの?」
続きを読む
マイクロソフトによると、ベクトル検索はユーザーが検索クエリを正確に指定する必要がないことも意味する。「パリの塔の高さは?」といった検索クエリに「エッフェル塔」という単語が明示的に含まれていなくても、「エッフェル塔」に関する正しい情報が返される。
「ベクター検索により、キーワードではなくコンセプトで検索しやすくなります」とチーム・レドモンドは説明しました。エッフェル塔のベクターは、「塔」と「パリ」のベクターと密接に関連しているため、グループ化されています。
マイクロソフトは、企業が様々なアプリケーション内で検索を実行できるようにし、研究者がベクトル検索の様々な手法を研究できるようにするために、BingのSPTAGアルゴリズムをリリースしました。「私たちは、ベクトル検索の真の可能性をこのレベルで探求し始めたばかりです」とマジュムダー氏は述べています。
コードはここで試すことができます。これは Python ラッパーを使用して C++ で記述されており、MIT ライセンスです。®