Algolia Advent Calendar 2021の12月16日の記事です。AlgoliaドキュメントのGuides / Algolia AI / Dynamic Synonym Suggestions を元にして、セットアップや活用方法をご紹介いたします。
Synonyms(シノニム)は、検索の適合性を調整したい場合に活用できる強力なツールです。Synonymsは、Algoliaに異なる単語を同じように扱う挙動にして、ユーザーが探しているものが見つけやすくなるようにします。例えば、レコードに”パンツ”というキーワードが含まれていて、ユーザーが”ズボン”と検索した場合、ズボン⇔パンツ
というシノニムを追加することで、ユーザーが適合性のある検索結果を見つけられるようになります。
追加をするべきシノニムを特定するためには、通常いくつかの手動なステップが必要になります。検索結果が無い、もしくは、ほどんと無いといったクエリをチェクして、期待するレコードにマッチするような最も近いシノニムをみつけて、これらをSynonymsに追加する必要があります。
Dynamic Synonym Suggestionsは、このプロセスを自動化します。AlgoliaはAIを活用して、ユーザーが頻繁に変更しているクエリを認識して、そのシノニムをサジェストします。例えば、ユーザーが”ズボン”を検索したすぐ後に”パンツ”に変更したことをAIが検知した場合、シノニムであるズボン⇔パンツ
をサジェストすることができます。ユーザーはサジェストされたシノニムを受け入れる(accept)か拒否する(decline)だけです。また、サジェストを受け入れる前に、より良い代替案があると思われる場合は、そのサジェスチョンを微調整することも可能です。
注
こちらの機能はPremiumプランでのみご利用可能です。
Getting Started
Dynamic Synonym SuggestionsをGet Startedしていくためには、DashboardのサイドバーにあるAI Synonymsのページに行きます。ここではAlgolia AIがサジェストする、シノニムのレビュー、修正、accept(受け入れ)、decline(拒否)をすることができます。
シノニムのレビュー
レビューの準備ができたシノニムのサジェスチョンは、Suggested Synonymsタブに表示されます。Algolia AIが確実にシノニムのサジェスチョンを生成するには、アプリケーションにある程度の検索トラフィックが必要です。使用状況によっては、サジェスチョンが表示されるようになるまでに時間がかかる場合があります。Dashboardにはシノニムのサジェスチョンを生成するのに十分なトラフィックがない場合は警告が表示されるようになっています。
注
デフォルトではSuggested Synonymsタブには、最新のシノニムのサジェスチョンのみが表示されます。サジェスチョンの上部にあるShow only new synonymsトグルをオフにすることで、古いサジェスチョンも確認できるようになります。
各サジェスチョンには、Algolia AIがサジェストをするコンテキストの説明が提供されます。例えば、アルゴリズムがズボン⇔パンツ
のシノニムをサジェストした場合、ユーザーが”青いズボン”というクエリを”青いパンツ”と書き換えることが多いということを教えてくれます。また、それぞれのサジェスチョンにはconfidence(信頼度)スコアが表示されます。信頼度のスコアは、AI Synonymsのモデルが、これは定性的なシノニムであると確認している度合いを0〜100の範囲で表しています。スコアが90のサジェスチョンは優れたシノニムであると言えるでしょう。
Algolia AIは、ユーザーの検索結果に基づいてシノニムをサジェストすることができるわけですが、最適なシノニムのタイプを決めることができるわけではありません。つまり、どのタイプがサジェストされたシノニムに最適なのかは、お客様ご自身の判断に委ねられるということです。デフォルトでは双方向(two-way)のシノニムがサジェストされますが、シノニムの2つの単語の間にあるドロップダウンを使って、one-wayシノニムや他の代替的な修正を行うことができます。
シノニムの変更
サジェストされたシノニムを変更することも可能です。例えば、ユーザーが”カードホルダー”というクエリを”カードウォレット”に書き換えていることをAlgolia AIが発見した場合、サジェストされるシノニムはホルダー⇔ウォレット
になります。このサジェストをそのまま有効にした場合、ユーザーが”ホルダー”を検索すると財布も漏れなく検索されてしまう結果となり、これは望ましい検索結果とは言えないかもしれません。どのシノニムの別の選択肢を確認するには、サジェストの右にある”More options”をクリックします。これによって、カードホルダー⇔カードウォレット
といったシノニムの他のサジェスチョンがドロップダウンで表示されます。
編集(edit)ボタンを押してシノニムを微調整して、最初にサジェストされたものよりもインパクトのあるものに置き換えることも可能です。
シノニムの受け入れ(accept)もしくは拒否(reject)
もしサジェストされたシノニムに満足いただけるようでしたら、✓
チェックマークを押してください。もし、サジェスチョンをリジェクトする場合はx
バツボタンをどうぞ。
注
もし、インデックスにレプリカがあり、受け入れたシノニムをレプリカにコピーしたくない場合は、AI Optimizationページの上部にあるForward to replicas設定をオフにしてください。
シノニムを受け入れたあとは、ダッシュボードからのみ変更するようにしてください。APIクライアントからこれらのシノニムを変更すると、データの不整合が発生する場合がありますので、避けた方がよろしいかと思います。
過去に受け入れた全てのシノニムはAccepted Synonymsタブにございます。また、拒否したシノニムはDeclined Synonymsタブに表示されます。
Dynamic Synonym Suggestionsのセットアップ
Dynamic Synonym Suggestionsが機能するようにするためには、アルゴリズムが個々のユーザーの書き換えパターンを識別できるようにする必要があります。そのためには、各ユーザーの検索パラメータにuserToken
という一意にユーザーを識別する文字列が必要になりますのでご確認いただければ幸いです。
コメント