Predictive search (予測検索) と autocomplete (自動補完)

こちらはAlgoliaの Julien Lemoine (@jlemoine_algo) が書いた Predictive search and autocomplete の翻訳です。


過去10年の間に、AIと predictive search (予測検索) は、多くの分野で私たちの生活をより快適で、そしてより速いものにしてくれました。キーストローク、キーワード、商品、そして、フレーズといったものを予測することは、AIが成果を上げている分野の一つであると言えます。多くのECサイトやメディアサイトには、高度な自然言語処理によって売上を向上させるためのハイエンドなAI技術が搭載されてきています。ユーザーのクエリーを理解し、最適な検索結果を予測する自然言語処理の背後にあるサイエンスは、機械学習によって実現されてきました。現在、GoogleはBERTを使って、ユーザーが過去に入力したことのないクエリであっても、その単語のスペルや組み合わせによらず、意味のある結果を返すことを支援しています。

特に予測検索においては、ユーザーが入力するクエリを提案する便利なユーザー体験(UX)ツールのことを指します。クエリの提案は、人々が探している商品を見つけるために最適なクエリを組み立てるのに役に立ちます。こちらの記事では、オートコンプリートと呼ばれる予測検索の仕組み、予測検索のよくある失敗、その失敗を回避する方法を理解するとともに、一般的な予測検索体験、つまり自動補完を実装するメリットとベストプラクティスをご説明します。

Predictive Search (予測検索) とは?

検索エンジンに探しているものの最初の数文字を入力して、ドロップダウンリストから検索候補の一つを選んでクリックするオートコンプリートの素晴らしい体験の便利さを、ほとんどの人が享受していると思いますが、これを可能にするために裏側では多くのことが行われています。検索ボックスに完全な語句を入力しなくても、候補のリストから選択できることは、予測検索の核となる機能です。

Googleは、オートコンプリート機能を実装したパイオニアとして、その基準を打ち立てました。そして、その後すぐにユーザーたちは予測検索を期待するようになりました。Amazon、Shopify、Spotify、Walmartなどは、予測検索機能を実装したサイトやアプリケーションの良い例で、人気のあるクエリの表示、文脈に応じた提案、タイプミスの回避、ユーザーの場所や好みに基づく提案のフィルタリングなどを実現しています。今日では、チームやビジネスの大小にかかわらず、何らかの形でオートコンプリートなユーザー体験が提供されているのではないでしょうか。

予測検索はどのように動作する?

予測検索のテクノロージーは、エンドユーザーの行動、過去の検索履歴、ジオロケーションといった属性や、全ユーザーセッションにおける検索傾向に基づいた検索語を予測し、検索フィールド内もしくはその下に候補として表示しようとします。オートコンプリート、オートサジェスト、プレディクティブサーチは、テック業界、特にUI/UXにおいてはしばしば同義的に使用されます。

検索クエリはユーザーがページの検索バーに入力する語句のことですが、予測検索は入力された検索クエリのそれぞれの文字を分析して、ユーザーが入力を終える前にドロップダウンメニューに一連の検索クエリの候補を提供するというものになります。これらの候補は、一連のアルゴリズムによって生成されますが、複数の機械学習および自然言語処理アルゴリズムとそのモデルが、未完成の検索クエリの結果をシンプルな文字列からはじめて、識別し、マッチングを行い、そして予測をしていくというものです。

これらの提案によって、ユーザーはより少ない入力で、より早く結果を得ることができ、タイプミスを防ぎ、望むような結果を返すクエリを作成することができます。これらの提案の背後にあるアルゴリズムは、静的なリストや既存のデータからの単純な文字列のマッチングから始まり、自然言語処理を用いてタイプミスや同義語をやりくりし、ユーザーが望ましい結果を得られるようにするということで、ますます複雑になっていると言えます。

予測変換 – UI/UXの基礎

オートコンプリートによるイケてるユーザー体験を実現するためのベストプラクティスをいくつかご紹介させていただきます。

  • アクティブな時のビジュアル的なフォーカスの追加: 検索バーとオートコンプリートの候補が使用中にフォーカスされるようにします。上の動画GIFでは、検索バーにフォーカスがあたると、ページの他の部分が薄暗くなるのを見ることができます。特に小さいモバイル端末では、検索バーの横に表示されるアイコン、ショートカット、メニュー項目を減らすことで、画面上での視覚的な混乱を最小限に抑えることができます。
  • サジェスチョンのテキストをラッピング: サジェスチョンに長いテキストが含まれている場合は、横向きなスクロールバーの使用を避けます。長いキーワードや用語は読みやすくするために十分な大きさで表示し、1つの画面に収まるようにします。必要に応じて、特にモバイル端末では、テキストの折り返しを使用して、候補が複数の行にまたがるようにします。
  • スクロールバーを避ける: サジェスチョンの候補が画面上に隠れないようにすることが重要です。これは可能な限りスクロールバーを避けることを意味します。スクロールバーがあると、ユーザーが検索に費やす時間が長くなってしまい、検索をやめてしまう可能性が高くなり、欲しいコンテンツを見つけるのがより困難になってしまいます。
  • リストがスクロール可能であることをビジュアル的に示すヒントを提供する: スクロールバーの使用を避けることができない場合もあります。そのような場合は、リストがスクロール可能であることが明示的に分かるように、十分なヒントとインストラクションを与えるようにしましょう。
  • クエリの削除を容易に: ユーザーが検索バーとオートコンプリートの候補を削除するための明確なビジュアルアイコンとオプションを提供するようにします。最も広く使われているユーザーが検索クエリを削除するアイコンは “x” です。このソリューションは、全体的なユーザー体験を向上させます。
  • サジェスチョンの最適化: オートコンプリートによるサジェスチョンの魅力の一つは、より高速な結果であり、つまりリアルタイムで表示される必要があります。サジェスチョンは、ユーザーが最初の文字を入力するとほぼ同時に表示され、クエリに文字が追加されるたびに更新される必要があります。タイプミスやその他のエラーは、関連するサジェスチョンを返すようにフィルタリングする必要があります。
  • リストされるオプション数の制限: ユーザーのクエリへの応答として表示されるサジェスチョンの数を制限することが重要です。サジェスチョンの候補が多すぎると適合性のない結果が表示されたり、ユーザーの気が散ってしまうことがあります。表示されるサジェスチョンの数は10件以下にするがベストプラクティスです。

Instant search

Instant search(インスタント検索)はpredictive search(予想検索)のイトコのような存在です。ユーザーがクエリーを入力すると、ほぼリアルタイムで結果が表示されます。インスタント検索は、キーを押すたびに新しい検索を実行するため、ビジュアル的にディスカバリーを促すことで検索体験を向上させます。商品の写真を掲載したeコマースのようなビジュアルサイトは、インスタント検索によってお買い物客がより速く結果をスキャンできるようになるため、大きなメリットを得ることができます。

インスタント検索は、オートコンプリートや他の予測検索テクノロジーを元に構築することが可能ですが、Algoliaでは、ソート済みでタイポ許容性のあるデータ構造の radix tree (radix trie や compressed triesなどとも呼ばれる…詳細は以下をご覧ください) を使った別のアプローチを取っています。

プレフィックス検索によるタイポへの対応

radix treeはプレフィックス検索という別の用途にも使われます。プレフィックス検索は、文字を入力するたびに結果を取得するのに役に立ちます。これは、語句の先頭(プレフィックス)を使ってドキュメントのソートとマッチングを開始するものとなります。例えば “t” と入力すると、プレフィックス検索は “toast” や “toaster” を検索します。

こちらの方法は、異なるスペリング (例: “gray” や “grey”) や、タイポ (“iphone” ではなく “iphxne”) にも有効です。タイポトレランス(タイポ耐性)とも呼ばれ、ユーザーが入力中に間違えてしまっても、探しているレコードを見つけることができます。こういったの予測マッチングは、スペルが近い単語に対して機能します。入力した単語とインデックスで完全に一致する単語とのスペルの差は0なので完全一致は距離=0となります。完全一致した場合や距離が近い場合(1文字または2文字の入力ミス)はマッチングが成立し、そのレコードが検索結果に含まれるということになります。

こうの計算は非常に速く、より高度なAIモデルよりも速いことが多いと思います。ベクトル検索に詳しい方なら、スペルミスやタイポにも役立つことはご存知だと思いますが、ベクトルにはそのための埋め込み(計算を可能にするためのベクトルの付与)があり、ある程度のタイポ耐性があるものの、radix treeならプレフィックスをオンザフライで計算することが可能です。キーワード検索は、このような用途ではベクトル検索よりもはるかに高速で、より幅広いスペルミスに対応することができます。これを行うことで “aplp”というキーワードでプレフィックス検索を行うことでAppleのデバイスを探すことができるようになります。

複雑なオートコンプリートのUI/UXのベストプラクティス

プレディクティブ(予測)検索の結果は、一致する文字列だけでなく、ポピュラーな検索や機械学習アルゴリズムに取り込まれるユーザーデータからも影響を受けます。これらのアルゴリズムは、ユーザーの行動から継続的に学習を行い、ユーザーが何を探しているのか、どのような結果が適合するのかを予測する精度を高めていきます。

予測検索の実装に使用されるアルゴリズムによらず、検索サジェスチョンの適合性、構造、そしてデザインは、ユーザーとのインタラクションおよび全体的なユーザー体験にとって重要です。適切で反応の早い検索サジェスチョンを提供する、優れた設計の予測検索であることが非常に重要です。ここでは、さらにいくつかのベストプラクティスをご紹介します。

  • 表示順を決めるランキングを使う: 提供されるサジェスチョンがどのようにランク付けされるかは、多くの要因に左右されますが、一般的には、ユーザーの地理的な場所、言語、最近の検索履歴、以前の注文履歴、人気のある検索、実施中のキャンペーンに関連するようなクエリーは、上位にランク付けされるはずです。例えば、祝日が近ければ、その祝日に関連するサジェスチョンはドロップダウンの一番上の選択肢に表示されるように、より上位にランク付けされるべきでしょう。
  • サジェスチョンの種類によってスタイルを変える: 商品とカテゴリーの両方を含む検索結果やサジェストが表示されることがあるかと思いますが、このような場合は、異なるカテゴリーのサジェスチョンは明確に区別されるべきでしょう。具体的にはテキストを異なるスタイルにしたり、サジェスチョンの種類に応じて異なる色を使用したりすることができます。
  • ポテンシャルのある結果を強調する: 多くのサジェスチョンを表示する場合は、オートコンプリートの候補の中で、ユーザーが入力した検索キーワードの結果のポテンシャルを強調するようにしましょう。こうすることで、ユーザーは違いを判断して、より早く決定することができます。たとえば、ユーザーが「cou」と入力した場合、couch、countertop、counterなど、さまざまな結果の候補を表示するようにします。
  • オートコンプリートのサジェスチョンをパーソナライズする: ユーザーの場所、言語、検索履歴にもとづいてクエリーを認識し、検索結果をパーソナライズします。OsloやTorontoのような寒い場所にいるユーザーが12月に “shoes” を検索した場合、提示される候補は、布製のスニーカーやサンダルではなく、ブーツや暖かい靴など、それらの場所にいる人にとって役に立つものでなければなりません。

予測検索の利点

なぜ時間やリソースをかけてまで予測検索を導入するのでしょうか?ビジネス上の価値とは何でしょうか?予測検索は、コンバージョン率を高め、ユーザーが商品を検索する際に役立つ自動的なサジェスチョンを行うことで時間を節約してくれます。コンパクトなキーボードを持つスマートフォンからお買い物をする際には、とても重要な機能です。アプリケーションに予測検索機能があることで、ユーザーのフリクションが減って、検索を断念してしまう可能性が低くなります。

以下が、予測検索を活用するメリットです。

  • サジェスチョンを提示することで検索にかかる時間を短縮させ、ユーザーがクエリ文字列をすべて入力する必要はほとんどなくなります
  • 予測検索は、ユーザーの過去のクエリ、地理的な場所、好みのカテゴリーなどをもとに、よりパーソナライズされた体験を提供します
  • サイトと商品についてユーザーを教育し、特定の商品について関連する画像と説明文を提供することで、ユーザーが探しているものを見つける手助けをします
  • よく検索される商品やベストセラー商品をもとに、ユーザーに適切で有益なサジェスチョンをすることで、売上を向上させます
  • コンテンツをより最適な形で利用できるようにすることで、全体のユーザー体験を向上させ、改善することができます
  • 関連するクエリーの数を増やし、最適化された結果を提供します

予測検索は、タイプミスやエラーによる混乱を回避して、データをフィルタリングすることでより迅速な結果を提供します。

まとめ

予測検索は、コンバージョン率の向上や顧客体験の向上など多くのメリットがあり、多くのビジネスにとって、その成功に欠かせない要素となっています。こちらの記事でご紹介したベストプラクティスを活用することで、サイト内検索をより効果的に機能させることができるでしょう。

コメント

タイトルとURLをコピーしました