🧹

Query Autocompletion(クエリサジェスト)の検索品質

2023/02/23に公開

この記事について

この記事は、Query Autocompletion(検索クエリの自動補完機能)の品質を向上させるために考慮すべき観点について説明しています。具体的には、カバレッジ、関連度、サジェスト汚染の対策について解説しています。

Query Autocompletionを担当することになった(ニッチな)エンジニアの方に参考になればうれしいです

Query Autocompletionとは

Query Autocompletionとは、ユーザーがクエリを入力している途中で、入力内容に基づいてクエリの候補を自動的に提示する機能のことです。
例えば、Googleの検索エンジンで「ラーメン」と入力すると、「ラーメン屋」「ラーメンレシピ」「ラーメン博物館」などの候補が表示されるようになっています。

Query Autocompletionの品質で考慮すべき観点

Query Autocompletionの品質には、カバレッジおよび関連度の改善やサジェスト汚染の対策などの観点があります。

カバレッジとは、提供できるサジェストのカバー率を示し、ユーザが検索する可能性の高いキーワードやクエリを適切にカバーできているかどうかを測る指標です。
関連度とは、ユーザの入力に関連するクエリを適切に提示することができるかどうかを示す指標です。

カバレッジや関連度が低い場合、ユーザが求める情報を提示ないため検索品質が低下します
また、サジェストに不適切な語句や表現が含まれることをサジェスト汚染と呼びます。

不適切なサジェストが提示されると、ユーザの利用体験が悪化し、検索エンジンやサービスの評判にも悪影響を与える可能性があります。したがって、Query Autocompletionの品質を向上させるには、カバレッジ、関連度、フィルタリングなどを継続的に改善する必要があります。

カバレッジ

クエリのAutocompletion機能のカバレッジが低い場合、一部のクエリに対しては候補が表示されず、検索結果が不完全になる可能性があります。
その結果、ユーザーが必要な情報を見つけるまで時間がかかるため、検索ユーザーの体験が悪化することがあります。
クエリ候補がないことから検索結果がないと誤解して離脱するユーザーも発生することがあります。

さらに、検索システム全体の負荷も増加するため、システムのパフォーマンス低下や遅延も引き起こす可能性があります。そのため、カバレッジが低い場合は早急に改善する必要があります。

カバレッジの改善手法

カバレッジの主な改善手法

改善手法 内容
誤字・ゆらぎの対策 ユーザーの過去の検索履歴やクリック傾向、地理的情報、デバイス情報などを活用して、そのユーザーにとって最適なクエリ候補を提供する。
リアルタイム性の強化 リアルタイムで予測を行い、ユーザーに即座に結果を提供する必要があります

誤字・ゆらぎの対策

|スペルチェックの導入:クエリのスペルチェック機能を導入することで、ユーザーが誤字を入力した場合でも、正しいキーワードやフレーズを提案することができます。
同音異義語対策:同音異義語を認識するための自然言語処理技術を活用することで、同音異義語を正確に処理することができます。例えば、「車」と「カー」などです。
誤字・ゆらぎのデータセットの拡充:誤字やゆらぎを含むクエリのデータセットを拡充することで、より多くの誤字やゆらぎに対応することができます。

リアルタイム性の強化

TBD

関連度

ユーザの入力に対して適切なサジェストが提示されることが重要です。関連度が低い場合、ユーザが求める情報を提示できず、検索品質が低下する可能性があります。

関連度の改善手法

考慮事項 内容
パーソナライズの考慮 ユーザーの過去の検索履歴やクリック傾向、地理的情報、デバイス情報などを活用して、そのユーザーにとって最適なクエリ候補を提供する。
重複候補の削除
多様性のある候補の掲出 同じキーワードに関するクエリ候補ばかりを提示すると、ユーザーの視野を狭めてしまう可能性があるため、多様なクエリ候補を提示することが重要。
季節性の考慮 同じキーワードに関するクエリ候補ばかりを提示すると、ユーザーの視野を狭めてしまう可能性があるため、多様なクエリ候補を提示することが重要。

パーソナライズ

ーザーの好みに応じて関連する提案を提供することで、ユーザーエクスペリエンスを向上させることができます。

埼玉に住む男性が過去にラーメン二郎を検索にパーソナライズができていない候補が掲出している例

  • ラーメン二郎 おすすめ
  • ラーメン二郎 安い
  • ラーメン二郎 美味しい
  • ラーメン二郎 レビュー
  • ラーメン二郎 ランキング

地域や過去の検索履歴を考慮していないため、誰が検索したかに関わらず同じようなクエリが表示されています。
地域や過去の検索履歴を考慮した候補クエリが提案されるため、より適切な候補クエリが提案されるため、ユーザがより的確な検索結果を得ることができるようになります。

Query Autocompletionの検索結果をユーザの属性や地域や過去の検索履歴を考慮した候補クエリを提案に変更することが増えています
機械学習のモデルを構築します。ここで利用するモデルとしては、決定木、ランダムフォレスト、ニューラルネットワークなどがあります。
リアルタイム性が求められるQuery Autocompletionでは、モデルの計算時間が短くするためにるためモデルの軽量化の検討も必要になります

またパーソナライズを取り組む際にはプライバシーの問題が重要な課題となります。ユーザの属性や地域、過去の検索履歴などの個人情報は、第三者に不適切な形で利用された場合にプライバシーの侵害につながるため、保護が必要となります。

多様性のある候補の掲出

Query Autocompletion機能候補が多様性に欠ける場合、ユーザーは目的の検索結果に到達するために必要な情報を見つけることが難しくなります。
ユーザーが入力したクエリが短い場合には、特に、候補の冗長性を避けることが重要です。
Query Autocompletion目標は、正しいクエリを早い段階で返すことなので、候補の冗長性を減らすことがユーザーが目的の検索結果により迅速かつ効率的にアクセスできるよう支援します。

Kharitonov, Macdonald, Serdyukov, and Ounis (2013)では、以前の検索結果をモデル化して、ユーザーの意図を理解し、冗長な提案を避ける方法を提案しています。

重複候補の削除

ユーザーが「ラーメン」と入力すると、Query Autocompletionが「ラーメン店」「ラーメン二郎」「ラーメン二郎系」といった候補を提示することがあります。このとき、「ラーメン二郎」と「ラーメン二郎系」のように意味がほぼ同じである候補が重複して提示される場合があります。

クエリ候補 重複
ラーメン店 True
ラーメン二郎 True(重複候補:ラーメン二郎系)
ラーメン二郎系 True(重複候補:ラーメン二郎)
ラーメン博物館 False
ラーメンのランキング True(重複候補:ラーメンランキング)
ラーメンランキング True(重複候補:ラーメンのランキング)
ラーメンイベント False
ラーメンCM False
ラーメン屋 False

この場合、重複している候補を削除することで、ユーザーにとって使いやすい検索補完が提供されます。

重複候補を判定する手法として、候補クエリを形態素解析や同義語辞書に基づいて正規化した結果を比較する方法や、候補クエリ同士の編集距離が近い場合は重複とみなす方法があります。また、近年は単語の分散表現であるエンベディングを用いた手法も提案されています。

クエリの重複削除は、クエリの提示精度向上だけでなく、似た提示候補の数を減らすことで、多様性のある候補の掲出の効果があります

季節性の考慮

多くのイベントは、定期的に開催されることがあります。その有名な例として、サッカーのワールドカップがあり、4年に1度開催され、その期間中は関連検索語が急増します。

例えば、ワールドカップ開催期間中に「サッカー」と入力すると、Query Autocompletionは「サッカーワールドカップ」といった上位に提案することが期待されます。しかし、季節性を考慮できていない場合、ワールドカップが開催中ではなく終了後でも「サッカーワールドカップ」といった補完が上位に表示されてしまう可能性があります。

季節性のキーワードに重み付けを行うことで、季節に応じた補完が可能になります。
Time-sensitive Personalized Query Auto-Completionという手法は、季節性の考慮を含め、時間的な傾向や個人化を考慮したQACの改善を提案しています。

サジェスト汚染の対策

サジェスト汚染の対象となる候補クエリは、ヘイトスピーチや暴力、アダルトや攻撃的な内容、違法なダウンロードサイト、センシティブな情報や論争を招く可能性、無意味な候補クエリや間違った候補クエリなどがあります。
これらはサジェスト汚染とも呼ばれています

サジェスト汚染の対策にはフィルタリングやブロッキングがあります

ブロッキングとフィルタリングの手法

サジェスト汚染を防ぐためには、検索ログの収集のパイプラインおよび検索エンジンでのフィルタリングやブロッキングが必要です。以下に代表的なフィルタリング・ブロッキング手法をいくつか紹介します。

手法 概要
ブラックリスト方式 特定のキーワードや表現などをあらかじめリストアップし、これらがサジェストに出現するのを防ぐ方法です。
ホワイトリスト方式 らかじめ正しいとされるキーワードや表現などをリストアップし、これらのみがサジェストに出現するようにする方法です。
ユーザーフィードバック方式 サジェストが不適切なキーワードや表現を含んでいた場合、ユーザーがその旨を報告できるようにすることで、不適切なサジェストを排除する方法です。
機械学習によるフィルタリング 多数の検索ログから適切なサジェストを判断するモデルを学習し、それに基づいてサジェストを生成する方法です。

これらの手法は単独で用いられることもありますが、複数の手法を組み合わせることでより効果的なフィルタリングが可能になります。
フィルタリングによりカバレッジが低下する場合があるとしても、ユーザーにとって安全で適切かつ関連性がある候補クエリを提供することが重要です。

まとめ

Query Autocompletionの検索品質の観点であるカバレッジ、関連度、サジェスト汚染の対策について解説しました
カバレッジが低い場合、ユーザは必要な情報を見つけるのに時間がかかったり、誤解して離脱したりする可能性があります。
関連度が低い場合、検索品質が低下し、ユーザが求める情報を提示できなくなります。サジェスト汚染がある場合、ユーザの利用体験が悪化し、検索エンジンやサービスの評判にも悪影響を与える可能性があります。

解決策として、誤字・ゆらぎの対策、パーソナライズ、多様性のある候補の掲出、重複候補の削除、季節性の考慮、フィルタリングやブロッキングなどの手法が提案されています。

フィードバックのお願い

記事について、皆様のご意見や指摘をお聞かせください。誤りや不足点があれば、修正いたしますので、お知らせいただければ幸いです。

参考文献

Discussion