Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

「いい検索」を考える

8,748 views

Published on

Search Engineering Tech Talk #1

Published in: Technology

「いい検索」を考える

  1. 1. 「いい検索」を考える 株式会社リクルートテクノロジーズ 内田 臣了 1
  2. 2. 自己紹介 内田 臣了 (Shinryo Uchida) 株式会社リクルートテクノロジーズ ITエンジニアリング本部 プロダクトエンジニアリング部 APプロダクト開発グループ ● 2017/4 新卒入社 リクルートグループの運営するwebサービスの 検索改善業務に従事 ● 大学時代の専門も情報検索 2
  3. 3. 今日 話すこと 3
  4. 4. ● 情報検索の基礎知識 ● サービスの「いい検索」を デザインする上で考えること 4
  5. 5. 今日 話さないこと 5
  6. 6. ● リクルートのサービス事例 ● 検索エンジンについて (Elasticsearch, Solrなど) 6
  7. 7. 「いい検索」の前に 7
  8. 8. 検索とは? 8
  9. 9. 情報検索(Infomation retrieval, IR)は (通常、コンピューターに格納されている)大規模 なコレクションから、必要な情報を 含む非構造的な資料を見つけることである。 出典:情報検索の基礎 (Introduction to Information Retrieval) 9
  10. 10. 情報検索とは? 10 コレクション 必要な情報
  11. 11. 情報検索とは? 11 コレクション それだ! 必要な情報を含む資料 ブリタニースパニエル
  12. 12. そんな情報検索を実現するのが 12
  13. 13. 検索システム 13
  14. 14. 検索システム 14 検索システム 探しものは何ですか? 茶色い犬
  15. 15. 検索システム 15 検索システム 探してきました
  16. 16. 検索システム 16 検索システム この中にありますか? ブリタニースパニエル バセットハウンドトイプードル それだ!
  17. 17. 簡単に表すと 17 検索システムユーザー コレクション 1. クエリの入力 3. 結果の出力 2. 探す
  18. 18. 検索システムの構成要素 18 検索システムユーザー コレクション 1. クエリの入力 3. 結果の出力 2. 探す フィルタリング・ランキング
  19. 19. 検索システムの構成要素 19 検索システムユーザー コレクション 1. クエリの入力 3. 結果の出力 2. 探す ユーザインタフェース
  20. 20. 検索システムは フィルタリング・ランキング ✕ ユーザインタフェース 20
  21. 21. フィルタリング 21
  22. 22. 莫大な候補から絞り込む機能 22
  23. 23. ユーザーが探している情報のみを 過不足なく 見つけられれば最強 23
  24. 24. フィルタリングの評価 24 全ドキュメント集合 システムの返す ドキュメント集合 (検索結果) ユーザーが 求めている ドキュメント集合 (正解) 探している情報と検索結果は大体ずれる 一致度でフィルタリングの質を評価
  25. 25. 適合率と再現率 25 適合率 = 検索結果に含まれる正解の割合 再現率 = 正解のうち検索結果がカバーした割合 全ドキュメント集合 システムの返す ドキュメント集合 (検索結果) ユーザーが 求めている ドキュメント集合 (正解)
  26. 26. 適合率を上げるために ● クエリ意図推定 ● パーソナライズ 26 アップル お菓子 アップル 株価 りんごのお菓子 Appleの株価 東京都渋谷区 カフェ 渋谷近辺のカフェ
  27. 27. 再現率を上げるために ● 同義語展開 ● クエリ正規化 27 PC PC OR パソコン OR パーソナルコンピュータ Made in JAPAN made in japan (文書中の表記と揃える)
  28. 28. ただし、適合率と再現率は トレードオフの関係 (どちらかが上がるともう一方は下がりやすい) 28
  29. 29. 全ドキュメント集合 全ドキュメント集合 全ドキュメント集合 適合率と再現率はトレードオフ 29 システムの返す ドキュメント集合 (検索結果) ユーザーが 求めている ドキュメント集合 (正解) システムの返す ドキュメント集合 (検索結果) ユーザーが 求めている ドキュメント集合 (正解) システムの返す ドキュメント集合 (検索結果) ユーザーが 求めている ドキュメント集合 (正解) 検 索 結 果 の 数 を 増 や す 適合率:最大 再現率:極小 適合率:極小 再現率:最大
  30. 30. 適合率と再現率のバランス F値:適合率と再現率の重み付き調和平均 ※ 算術平均と違い、どちらかが極端に小さいと値が小さくなる 30 全ドキュメント集合 適合率:最大 再現率:極小 F値:極小 全ドキュメント集合 全ドキュメント集合全ドキュメント集合 適合率:高い 再現率:高い F値:高い 適合率:極小 再現率:最大 F値:極小 検索結果の数を増やす
  31. 31. まとめ:フィルタリング ● ユーザーが探している情報と システムの検索結果が完全に一致すると最強 ● フィルタリングの評価指標 ○ 適合率:検索結果に含まれる正解の割合 ○ 再現率:正解のうち検索結果がカバーした割合 ● フィルタリングの質を高めるために ○ 適合率改善:クエリ意図推定、パーソナライズ ○ 再現率改善:同義語展開、ストップワード除去 ● 適合率と再現率はトレードオフ ○ F値: 適合率と再現率の重み付き調和平均 31
  32. 32. ランキング 32
  33. 33. フィルタリングしたものを 並び替える 33
  34. 34. Googleのようなウェブサイト検索だと 上位数件しか閲覧されないことが多い という調査結果も 出典:Accurately Interpreting Clickthrough Data as Implicit Feedback (Joachims et al. 2005) 34
  35. 35. ユーザが探しているものが 上位に来ているといいランキング 35
  36. 36. ランキングの評価指標 Precision@k 36 Precision@k: 上位k件の適合率 ● 探しているもの(関連文書)の全体数がわかっていなくても 測定可能 ● 上位k件に含まれていれば何位でも等価 ● クエリごとに関連文書の全体数に影響を受けるので安定しない 検索クエリ1 検索クエリ2 検索クエリ3 1位 ○ × × 2位 × × × 3位 × ○ × 4位 ○ × × 5位 ○ × ○ Precision@5 = 3/5 Precision@5 = 1/5 Precision@5 = 1/5
  37. 37. 上位の中でも何位に出たかを反映したい? 37
  38. 38. ランキングの評価指標 MAP MAP (Mean Average Precision):平均適合率の平均 ● 関連文書が上位に出るほど高スコア ● 色んな検索クエリでの結果の総合点が出せる ● 適合文書がすべてわかっている必要がある 38 検索クエリ1(適合3件) 検索クエリ2(適合2件) 検索クエリ3(適合2件) 1位 ○ × × 2位 × × ○ 3位 × ○ × 4位 ○ ○ × 5位 ○ × ○ 1/1 2/4 3/5 平均適合率 = (1/1 + 2/4 + 3/5) / 3 = 0.70 平均適合率 = (1/3 + 2/4) / 2 = 0.41 平均適合率 = (1/2 + 2/5) / 2 = 0.45 MAP = (0.70 + 0.41 + 0.45) / 3 = 0.52 1/3 2/4 1/2 2/5
  39. 39. 探しているものかどうかを ○ / ✕ では決め切れない? 39
  40. 40. ランキングの評価指標 NDCG NDCG (Normalized Discounted Cumulative Gain) ● 関連 or 非関連の二値ではなく、段階的な関連度(点数)を考慮 ● 点数の総和を計算するが、下位にいくほど点数が減衰 40 文書 点数 重み 1位 A 10 x 1 2位 B 8 x ½ 3位 C 5 x ⅓ 4位 D 2 x ¼ 文書 点数 重み 1位 C 5 x 1 2位 A 10 x ½ 3位 D 2 x ⅓ 4位 B 8 x ¼ 理想順のランキング評価対象のランキング NDCG = 評価対象のスコア / 理想順のスコア = 12.7/16.2 = 0.783 スコア = 5 x 1 + 10 x ½ + 2 x ⅓ + 8 x ¼ = 12.7 スコア = 10 x 1 + 8 x ½ + 5 x ⅓ + 2 x ¼ = 16.2
  41. 41. 多様性を考慮したランキング MAPやNDCGは上位に関連文書が多く来れば高スコア しかし、内容が似たり寄ったりになりがち ▶ 多様性を考慮したランキングが適する場合もある 41 タイトル 1位 ナスについて - お野菜百科 2位 ナスのレシピ 3位 ナスの保存方法 4位 ナスの歴史 5位 ナス嫌いを克服する方法 タイトル 1位 ナスについて - お野菜百科 2位 ナス - Wikipedia 3位 ナスの特徴 4位 ナスとは 5位 ナス - 野菜辞書 多様性のないランキング 多様性のあるランキング それぞれの文書に含まれる 情報がかぶってて冗長 ナスに関する情報を 網羅的に得ることができる
  42. 42. 多様性を考慮したランキング MMR (Maximum Marginal Relevance) ● ユーザーの探しているものと文書の間の関連性の他に 文書間の関連性(周辺関連性)を考慮 ● 上位に選ばれた文書と内容が似ていないものを次に選ぶ ● 多様性重視なのでPrecisionベースの評価手法は不適 42 タイトル 1位 ナスについて - お野菜百科 2位 ナスのレシピ 3位 ナスの保存方法 4位 ナスの歴史 5位 ナス嫌いを克服する方法 ← 内容が百科辞書ではない ← AND レシピではない ← AND 保存方法ではない ← AND 歴史ではない
  43. 43. まとめ:ランキング 43 ● 基本的にはユーザーが探しているものが 上位に来るといいランキング ● ランキングの評価指標 ○ Precision@k ○ MAP ○ NDCG ○ 他にも色々ある ● 多様性のあるランキングが適する場合もある ○ MMR
  44. 44. ユーザインタフェース 44
  45. 45. 再掲:検索システムの構成要素 45 検索システムユーザー コレクション 1. クエリの入力 3. 結果の出力 2. 探す ユーザインタフェース
  46. 46. いいユーザインタフェースって? ユーザビリティの三要素 (ISO 9241-11, JIS Z8521 で定義) ● 有効さ: 利用者が、指定された目標を達成する上での正確さ 及び完全さ ● 効率: 利用者が、目標を達成する際に正確さと完全さに 関連して費やした資源 ● 満足度: 不快さのないこと、及び製品仕様に対しての 肯定的な態度 46
  47. 47. 正確に 効率的に 満足して 使えればいいユーザインタフェース 47
  48. 48. いい検索ユーザインタフェースを 設計するのは難しい (長くなりそうなので掻い摘んで話します) 48
  49. 49. よくある入力フォームにも 意外と考えることがある 49
  50. 50. キーワード入力型インタフェースを考える 50 ● メリット ○ 対象がハッキリしていると周辺知識を調べやすい ○ 条件の足し引きが容易 など ● デメリット ○ 対象について十分な知識が必要 ○ 適切なクエリの作成が難しい ○ 表記ゆれが起きやすい など ブリタニースパニエルgood good bad フランス 中型 猟犬 茶色くてかわいい犬
  51. 51. 入力インタフェースを考える ● キーワード入力型 ● カテゴリ選択型 ○ good: 表記ゆれがなく、紐づく属性も明示される ○ bad: 選択肢に網羅性が必要 / 多すぎたら見ていられない ● カテゴリツリー型 ○ good: 段階的に絞り込みができる ○ bad: 検索プロセスが長くなる / 木構造が変だと辿り着けない ● BOT型 ○ good: 対話でクエリを構築するので目的物をどう探せば いいかわからないユーザーを支援できる ○ bad: 入力の解釈を間違えると検索プロセスが泥沼になる 51
  52. 52. 検索結果はどう出力されると嬉しい? 52 ブリタニー・スパニエル 犬の品種 寿命: 14歳から15歳 出生: フランス、 ブルターニュ 体重: オス: 14–18 kg、 メス: 14–18 kg 体高: オス: 47–52 cm、 メス: 46–51 cm ブリタニー・スパニエルとは? ブリタニー・スパニエル(英:Brittany Spaniel)はフランスブルターニュ地 方原産の中型の鳥猟犬。フランス語ではエパニュール・ブルトン(フラン ス語: Epagneul Breton)という。......... ブリタニー・ スパニエル とは? ブリタニー・ スパニエル の飼い方 ペットショップ ブリタニー・スパニエル ¥ 150,000 ~ … 一致部を表示 タイトルのみ 百科辞書式
  53. 53. ユーザーに合わせて 入出力インタフェースを設計する のが大事 53
  54. 54. 検索インタラクション 多くの場合、クエリの入力 → 結果の出力は 一度では終わらず繰り返される ▶ その繰り返しを支援するのもUIの役割 54 クエリの 作成・修正 検索結果の 確認・評価 検索の実行 探したいものの 把握・修正
  55. 55. ブリタニースパニエル 飼い方 ブリタニースパニエル ブログ ブリタニースパニエル トリミング 検索インタラクション支援の例 ● クエリ修正 ● クエリ提案 55 ブリタニースニパエル もしかして:ブリタニースパニエル ブリタニースニパエル 関連する検索キーワード: ブリタニースパニエル ブリーダー ブリタニースパニエル ブログ スパニエル 種類
  56. 56. 参考:検索ユーザインタフェースのガイドライン 1. 有益なフィードバックを提供する 2. ユーザのコントロールと 自動的な制御のバランスをとる 3. 短期記憶の負荷を軽減する 4. ショートカットを提供する 5. エラーを減らす 6. 細部の重要性を理解する 7. 美的意識の重要性を理解する 56 出典:情報検索のためのユーザインタフェース(共立出版)
  57. 57. まとめ:検索UI ● 正確に効率よく満足して使えれば いいユーザインタフェース ● ユーザーに合わせて 入出力のインタフェースを設計しよう ○ 探している条件を直感的に入れられる入力 ○ 検索結果に探しているものがあるか判断しやすい出力 ● インタラクションを支援する機能を用意しよう ○ 検索は1回では終わらない 57
  58. 58. サービスにおける 「いい検索」 58
  59. 59. サービスの検索機能を磨き込むとき、 情報検索の評価指標だけ考えればいい? (探しているものが上位に出ていればそれでいい?) 59
  60. 60. 例:図書館の書籍検索サービスで検索改善 60 利用者 書籍 ● ユーザーは検索条件を入力し書籍を探して借りる ● 図書館はどの書籍が貸出されても構わない ● 調査の結果、検索結果上位5位までに入る書籍が よく借りられることがわかっている ● 高評価数が多い順にランキングを作成
  61. 61. 61 借りる 利用者 (同じ条件で検索) 書籍(高評価順) ・・・ ● 高評価数 1000 ● 高評価数 300 ● 高評価数 10 ● 高評価数 5 上位5位 好きな本を 借りていいよ
  62. 62. 図書館の書籍検索サービスの場合は 利用者(検索者)が満足すれば良いので 検索の指標で評価すればいい 62
  63. 63. 例:動画投稿サービスで検索改善 63 動画視聴者 動画投稿者 ● 動画視聴者は気になる題材についての動画を視聴 ● 動画投稿者は見てもらうために作成した動画を投稿 ● 調査の結果、検索結果上位5位までに入る動画が よく視聴されることがわかっている ● 動画視聴者の満足度を上げるため 高評価数が多い順にランキングを作成
  64. 64. 64 視聴 視聴者 (同じ条件で検索) 動画(高評価数順) ・・・ ● 高評価数 1000 ● 高評価数 300 ● 高評価数 10 ● 高評価数 5 上位5位
  65. 65. 上位のクリック率が高いので 情報検索の評価指標では高評価だが… 65
  66. 66. 66 視聴 動画(高評価数順) ・・・ 見つけてもらえず 悲しい 視聴数が 増えないため、 高評価も増えず 上位に上がれない 上位5位 視聴数が増えて 嬉しい 視聴者 (同じ条件で検索)
  67. 67. 動画投稿サービスの場合は、 動画視聴者(検索者)だけでなく 動画投稿者(被検索者)の満足度も 考慮しないといけないため 検索の指標だけでは不十分 67
  68. 68. サービスによって「いい検索」は異なる 68 多くの人に自分の動画を 見てもらいたい 検索者と被検索者の両方に貢献するのが このサービスでの「いい検索」 自分の好みの動画を 見つけたい 動画視聴者(探す側) 動画投稿者(探される側)
  69. 69. 従来の情報検索の指標は 「探される側」に意思がないことを 仮定としていることが多い 69
  70. 70. サービスの役割に合わせた指標の設計 70 多くの人に自分の動画を 見てもらいたい 自分の好みの動画を 見つけたい 探す側の指標(検索指標) ● 1クエリあたりの動画視聴数 (Precision@k) ● 1回以上動画視聴があった 検索の割合(Immediate Accuracy) ● 視聴された動画の ランキングでの位置(MRR) ● 0-クリック検索回数 ● 1セッションでの平均検索回数 探される側の指標 ● 視聴数 ● 検索結果上位への表出回数 ● 視聴数が規定値以下の動画数
  71. 71. ランキングとUIの両面から問題改善 問題点は、フィルタリング・ランキングと ユーザインタフェースの両面から改善できる 問題: 動画ごとに検索結果上位への表出回数のバラツキが大きい ランキングでの改善例: 表出回数が少ない動画はスコアを高く設定する ユーザインタフェースでの改善例: 関連動画に表出回数が少ない動画を提示する 71
  72. 72. まとめ:サービスにおける「いい検索」 ● サービスごとに「いい検索」は異なる ○ 従来の検索の評価指標は被検索者に意思がある場合を 考慮していない ● サービスの役割と紐づくように指標を設定し それに貢献するよう検索機能を設計する ● フィルタリング・ランキングと ユーザインタフェースの両面から改善する 72
  73. 73. おわりに 73
  74. 74. 検索システムは フィルタリング・ランキング ✕ ユーザインタフェース 74
  75. 75. 探しているものを 早く見つけられれば いいフィルタリング・ランキング 75
  76. 76. 正確に効率よく 満足して使えれば いいユーザインタフェース 76
  77. 77. サービスの役割を意識して 指標を決め 検索をデザインしよう 77
  78. 78. まとめ 78 ● 検索システム = フィルタリング・ランキング ✕ ユーザインタフェース ● 探しているものを早く見つけられれば いいフィルタリング・ランキング ● 正確に効率よく満足して使えれば いいユーザインタフェース ● サービスの役割を意識して指標を決め 検索をデザインしよう

×