16 AIとは:検索エンジンのインデックス作成
検索エンジンは、検索ボックスに入力されたキーワード(検索クエリ)を受け取り、情報に答えるウェブドキュメントを見つけようとします。それから、最も関連性の高いページをトップに表示する形で、情報に簡単にアクセスできる形で表示します。これを行うために、検索エンジンはまずウェブ上のドキュメントを見つけてタグ付けし、簡単に取り出せるようにしなければなりません。このプロセスに何が関わっているか、大まかに見てみましょう:
ステップ1 : ウェブクローラーがドキュメントを見つけてダウンロードする

ユーザーが検索クエリを入力した後に、インターネット上のすべてのコンテンツを調べるのでは遅すぎます1。ウェブドキュメントは事前に調べられ、その内容は分解されて異なるスロットに保存されます。クエリが利用可能になると、クエリに含まれる内容とスロットに含まれる内容を照合するだけで済みます。
ウェブクローラーは、ウェブからドキュメントを見つけてダウンロードするプログラムです。一連のウェブサイトアドレス(URL)から始め、その中に新しいウェブページへのリンクがないか探します。次に、新しいページをダウンロードして、さらにリンクを探します。開始リストが十分多岐にわたっていれば、クローラーはアクセスを許可するすべてのサイトを訪問し、更新情報を求めて何度も訪問します。
ステップ 2: ドキュメントが複数のピースに変換される

クローラーによってダウンロードされたドキュメントは、コンテンツ、著者、日付などの説明が明確に構造化されたウェブページである場合もあれば、古い図書館の本を粗悪にスキャンした画像である場合もあります。検索エンジンは通常、100種類もの異なるドキュメントタイプを読み取ることができます¹。これらをhtmlまたはxmlに変換し、テーブル(Googleの場合はBigTableと呼ばれる)に保存します。
テーブルは、タブレットと呼ばれる小さなセクションで構成されており、タブレットの各行は1つのウェブページに対応しています。これらの行は特定の順序で配置され、更新ログと共に記録されます。各列にはウェブページに関連する特定の情報が含まれており、ドキュメントの内容を将来のクエリの内容と照合するのに役立ちます。列には以下の情報が含まれます:
-
- ウェブサイトのアドレス。代表的なコンテンツを含むホームページや関連コンテンツを持つサイドページの場合、それ自体でページの内容を適切に説明できることがあります;
- 重要なコンテンツを説明するタイトル、見出し、太字の単語;
- ページのメタデータ。これは、ドキュメントタイプ(例:メールやウェブページ)、ドキュメント構造、ドキュメントの長さ、キーワード、著者名、公開日などの機能など、メインコンテンツの一部ではないページに関する情報です;
- 他のページからこのページへのリンクの説明。ページコンテンツの異なる側面に関する簡潔なテキストを提供します。リンクが多いほど、説明が多く、使用される列が多くなります。リンクの存在は、ウェブページの人気度を決定するためのランキングにも使用されます。(GoogleのPagerankを見てください。これは、ページへのリンクとページからのリンクを使用して品質と人気を評価するランキングシステムです)。
- 人々の名前、会社や組織の名前、場所、住所、時間と日付の表現、数量、金銭的価値など。MLアルゴリズムは、人間が注釈を付けたトレーニングデータを用いて、あらゆるコンテンツからこれらの物を検出するよう訓練することができます1。

テーブルの1つの列、おそらく最も重要なものは、ドキュメントのメインコンテンツを含んでいます。これは、すべての外部リンクや広告の中で特定されなければなりません。ある手法では、MLモデルを用いて、任意のウェブページのメインコンテンツを「学習」させます。
もちろん、クエリの単語をウェブドキュメントの単語と完全に一致させることもできます。これは、任意のワードプロセッサの検索ボタンのようなものです。しかし、人は同じ物事について話すのに異なる単語を使うため、この方法はあまり効果的ではありません。単に別々の単語を記録するだけでは、これらの単語が互いにどのように組み合わさって意味を作り出すかを捉えるのに役立ちません。結局のところ、コミュニケーションを可能にするのは言葉そのものではなく、言葉の背後にある思考なのです。したがって、すべての検索エンジンは、テキストをクエリテキストの意味と一致させやすくする方法でテキストを変換します。その後で、クエリも同様に処理されます。
単語の一部として、保存する必要がある異なるトークンの総数が減少します。現行モデルでは約3万~5万のトークンが保存されています²。間違った綴りの単語は、その一部が保存済みトークンと一致するため、識別可能です。未知語も、その一部が保存済みトークンと一致する可能性があるため、検索結果に表示される場合があります。
ここでは、MLのトレーニングセットは、例文で構成されています。個々の文字、スペース、句読点から始まり、モデルは頻繁に現れる文字を結合して新しいトークンを形成します。トークンの数が十分でない場合、結合プロセスを続けて、より大きい、または頻度の低い単語の部分構成要素をカバーします。これにより、ほとんどの単語、語尾、およびすべての接頭辞がカバーされます。こうして、新しいテキストが与えられれば、機械は容易にそれをトークンに分割し、ストレージへ送信できます。

ステップ 3 : 簡単に参照できるようにインデックスが作成される

データがBigTablesに格納されると、インデックスが作成されます。教科書の索引と同様、検索インデックスはトークンとそのウェブドキュメント内の位置をリストアップします。統計には、ドキュメント内でトークンが何回発生するか、ドキュメントにとってどれほど重要かなどの情報が記録され、トークンがタイトルや見出しにあるか、ドキュメントの一部に集中しているか、あるトークンが常に別のトークンに続くかなどの位置情報も示されます。
現在、多くの検索エンジンは、深層ニューラルネットワークによって生成された言語ベースのモデルを採用しています。後者はテキストの意味を詳細にエンコードし、クエリをより良く理解する役割を担っています3。ニューラルネットワークは、そもそもクエリを引き起こした情報ニーズを捉えるために、検索エンジンがクエリの枠を超えて分析することを可能にしています。
これらの3つのステップは、、簡略化して、いわゆる「インデキシング」と呼ばれます – ドキュメントを見つけ、準備し、保存し、そしてインデックスを作成します。次に、「ランキング」に関わるステップが続きます – クエリとコンテンツを照合し、関連性に応じて結果を表示します。

1 Croft, B., Metzler D., Strohman, T., Search Engines, Information Retrieval in Practice, 2015
2 Sennrich,R., Haddow, B., and Birch, A., Neural Machine Translation of Rare Words with Subword Units, In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pages 1715–1725, Berlin, Germany. Association for Computational Linguistics, 2016.
3 Metzler, D., Tay, Y., Bahri, D., Najork, M., Rethinking Search: Making Domain Experts out of Dilettantes, SIGIR Forum 55, 1, Article 13, June 2021.