ベクトル検索で実現する「次世代の検索機能」

検索システムの普遍的構造

私たちの日常生活において、⁠検索」は不可欠なサービスです。Googleに代表されるWeb検索から、Amazonや楽天市場などのEコマース(EC)サイトにおける商品検索まで、形態はさまざまあります。

検索とは、ユーザが入力したデータ(クエリ)に対し、システムが保持する膨大なデータ群から、関連するデータ(ドキュメント)を抽出して返す一連のプロセスを指します。このプロセスにおいて、システム側はいかにして「クエリ」「ドキュメント」の親和性(スコア)を算出するかが、検索精度のポイントです。

キーワード検索からベクトル検索へ

従来の検索システムの多くは、⁠キーワード検索」という手法を使用してきました。これは、クエリに含まれる単語がドキュメント内にどれだけ出現するか(TF:Term Frequency)や、ドキュメントの長さ、あるいは特定の単語の希少性などを統計的に処理する手法です。しかし、キーワード検索には限界があります。例えば「休暇に最適な温かい場所」と検索したとき、文字どおり「休暇」⁠最適」⁠温かい」という単語が含まれるページは探せても、その「意味」を汲み取って「ハワイのビーチ」「沖縄の離島」といった、直接的な単語の一致がないドキュメントを見つけ出すことは困難です。

これに対し、近年注目を集めているのがベクトル検索です。ベクトル検索は、データの中身を実数の列(ベクトル)として表現することで、情報の「意味的な近さ」を数学的に計算することを可能にする技術です。

ベクトル検索のメカニズム

ベクトル検索を実現するためには、大きく分けて「事前準備(インデキシング⁠⁠」と「検索実行」の2つのステップが必要です。

①ドキュメントのベクトル化
まず、検索システムはドキュメントの入力を受け付ける。ベクトル検索システムは、ドキュメントそのものを保存するだけでなく、各ドキュメントを実数の列である「ベクトル」に変換する。これをベクトル化(エンベディング)と呼ぶ
②クエリのベクトル化
次に、検索システムはクエリの入力を受け付ける。基本的にクエリの入力の時点で、それまでに入力されたドキュメントを対象として検索する。とくにベクトル検索システムでは、ユーザがクエリを入力した瞬間、システムはそのクエリ自体もドキュメント同様、ベクトル化する
③スコアの計算
①で保存したドキュメントベクトルと、②で出したクエリベクトルとの間で、⁠簡単な計算」を行い、結果にもとづいてドキュメントごとにスコア(クエリとの関連度)を決める。あとは、スコアの高いドキュメントを優先的にユーザに返す

高次元ベクトルとLLM(大規模言語モデル)

実際のベクトル検索システムでは384次元や768次元など、高次元のベクトルが用いられます。クエリやドキュメントには多面的な性質があるので、高次元のベクトルに変換して扱うことで、性質をとらえやすくなります。

クエリやドキュメントはなんらかの言語で書かれています。その言語を理解することで、意味を考えることができます。したがって、言語で書かれたものを自動的に読解したり、記述したりするための技術である言語モデルがクエリやドキュメントをベクトル化する方法として広く使われています。LLMとの関係も深いです。

検索の未来

ベクトル検索は従来の重要技術キーワード検索を補完する技術であり、検索サービスはもちろん、Eコマースなど各種サービスの検索機能にも採用されつつある注目度の高い技術です。ベクトル検索のメリットは、クエリやドキュメントの「意味」を扱えることにあり、テキストを自然に類似のベクトルに変換することで、抽象的な「意味」をとらえた検索を可能にします。このように、ベクトル検索は優れた技術である一方、新しい技術でもあるため、日本語の専門書や資料が少ない状況です。

ベクトル検索実践入門はベクトル検索の入門書であり、実用的なベクトル検索が実装できるようになることを目指します。前半でデータの準備から検索結果の評価までを一通り解説し、後半では各ステップの高度化・高速化について解説します。また、付録として画像のベクトル化と検索についても解説します。

本書の著者

真鍋知博(まなべともひろ)

LINEヤフー株式会社。
京都大学大学院情報学研究科社会情報学専攻情報図書館学分野に配属。情報抽出と情報検索を自身のテーマとする。博士(情報学⁠⁠。
検索エンジンの高速化・高機能化のための研究・開発に一貫して従事している。
著書に『機械学習による検索ランキング改善ガイド―技術解説とハンズオンで学ぶ機械学習ランキングモデルの導入と改善』⁠共著, オライリ-・ジャパン, 2023⁠⁠。