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.

20200116 search engine

96 views

Published on

検索エンジンに関する仕組みの社内勉強会資料

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

20200116 search engine

  1. 1. Toru 2020年1月16日 検索の仕組みを自習してたら正月がおわってた
  2. 2. 1 目的 • 検索の仕組みの大枠を知ること • 検索の仕組みを考察するための考え方/ポイントを共有すること • Eng TeamとBiz Teamのナレッジギャップを少しでも埋めること
  3. 3. 2 アプローチ • プログラミング的技術に全く触れずに解説してみます。 • 全体像から入り、徐々に解像度を上げる構成で説明してみます。 • 検索の理解に必要なことを、私の理解が及ぶ範囲で紹介します。
  4. 4. 3 目次 • 検索の仕組みの概観 • 検索の仕組みの具体的な内容
  5. 5. 4 インターネットでの検索 北海道に 旅行に行きたい! ・・・
  6. 6. 5 そもそも情報を集めるには・・・ 旅行で景色の 良い場所って どこだろう? どのマンションに 引っ越そうかな? 渋谷で美味しい ランチはどこかな?
  7. 7. 6 そもそも情報を集めるには・・・ 旅行で景色の 良い場所って どこだろう? こんな景色があるよ! … このマンションが良いよ! … このランチが美味しいよ! … … … どのマンションに 引っ越そうかな? 渋谷で美味しい ランチはどこかな? 雑誌 新聞 知人
  8. 8. 7 そもそも情報を集めるには・・・ 旅行で景色の 良い場所って どこだろう? こんな景色があるよ! … このマンションが良いよ! … このランチが美味しいよ! … … … どのマンションに 引っ越そうかな? 渋谷で美味しい ランチはどこかな? いろんなところから情報を集めるのは大変
  9. 9. 8 いろんな情報を1カ所に集めておくと便利 こんな景色があるよ! … このマンションが良いよ! … このランチが美味しいよ! … … …
  10. 10. 9 インターネットでの検索 北海道に 旅行に行きたい! 料理 旅行 会社 景色 移動 手段 …
  11. 11. 10 インターネットでの検索 北海道に 旅行に行きたい! 料理 旅行 会社 景色 移動 手段 北海道の旅行に関する情報を探す 北海道の旅行に関する情報を取得する …
  12. 12. 北海道の旅行に関する情報を取得する 北海道の旅行に関する情報を探す 11 インターネットでの検索 北海道に 旅行に行きたい! 料理 旅行 会社 景色 移動 手段 ?たくさんの情報から 欲しい情報だけを取り出すには、 どうすれば良いか? …
  13. 13. 12 例えば、本から情報を探すときは・・・ 索引 ▷ あ 行 ▷ か 行 ▷ さ 行 • 愛別町(上川郡) • 赤井川村(余市 郡) • ・・・ • 上川町(上川郡) • 上士幌町(河東郡) • ・・・ • 札幌市厚別区 • 札幌市北区 • ・・・ 索引を見れば、 1. 欲しい情報が 2. どこにあるか 3. すぐに 知ることが出来る P21 P15 P76 P41 P35 P59 北海道に関する書籍
  14. 14. 13 たくさんの情報を整理して、「索引」を作っておくと便利 情報
  15. 15. 14 たくさんの情報を整理して、「索引」を作っておくと便利 情報 テキストデータ =「文書」 「北海道」 「旅行」 「格安」
  16. 16. 15 たくさんの情報を整理して、「索引」を作っておくと便利 情報 索引 ▷ 「北海道」の「索引語」 を含む ▷ 「旅行」 ▷ 「格安」 … … … ▷ 「・・・」 「北海道」 「旅行」 「格安」 テキストデータ =「文書」 …
  17. 17. 16 索引語と文書の「対応表」を作っておくと便利 〇 〇 〇 〇〇 〇 〇 〇〇 〇 〇 〇 〇 〇 〇 〇〇 … … 索引語 文書 北海道 旅行 格安 ジンギスカン オルゴール 旅館 索引 ▷ 「北海道」 ▷ 「旅行」 ▷ 「格安」 … … … ▷ 「・・・」 A B C D E F
  18. 18. 北海道に 旅行に行きたい! 17 インターネットでの検索 …
  19. 19. 北海道に 旅行に行きたい! 18 インターネットでの検索 … 索引語と文書の対応表=Index
  20. 20. 19 インターネットでの検索 北海道に 旅行に行きたい! テキスト データ に変換 索引語を 付ける データ 収集 Index …
  21. 21. 20 インターネットでの検索 北海道に 旅行に行きたい! テキスト データ に変換 索引語を 付ける データ 収集 Index 「北海道」「旅行」 に関する情報を探す 「北海道」「旅行」 に関する情報を取得 …
  22. 22. … 「北海道」「旅行」 に関する情報を探す 「北海道」「旅行」 に関する情報を取得 21 インターネットでの検索 いや、こういうの じゃないんだよな・・ テキスト データ に変換 索引語を 付ける データ 収集 Index 「北海道」「旅行」を含 んでいても、不要な情報 ばかりが出てきたら困る • 北海道の旅行に関する 意識調査 • 北海道に旅行に来る外 国人観光客について • ・・・ 検索結果
  23. 23. … 「北海道」「旅行」 に関する情報を探す 「北海道」「旅行」 に関する情報を取得 22 インターネットでの検索 いや、こういうの じゃないんだよな・・ テキスト データ に変換 索引語を 付ける データ 収集 Index 「北海道」「旅行」を含 んでいても、不要な情報 ばかりが出てきたら困る • 北海道の旅行に関する 意識調査 • 北海道に旅行に来る外 国人観光客について • ・・・ 検索結果 たくさん存在する文書の中から、 必要な文書だけが検索結果に出てきてほしい
  24. 24. 23 必要な文書を探すには? 〇 〇 〇 〇〇 〇 〇 〇〇 〇 〇 〇 〇 〇 〇 〇〇 … … 索引語 文書 北海道 旅行 格安 ジンギスカン オルゴール 旅館 「北海道」「旅行」 という索引語が、 重要な位置づけになって いる文書を探したい! A B C D E F
  25. 25. 24 必要な文書を探すには? それぞれの文書に含ま れる索引語の数を数え てみる 〇 〇 〇 〇〇 〇 〇 〇〇 〇 〇 〇 〇 〇 〇 〇〇 5 1 2 2 20 2 21 15 1 8 41 1 4 25 2 … … 索引語 文書 北海道 旅行 格安 ジンギスカン オルゴール 旅館 A B C D E F
  26. 26. 25 必要な文書を探すには? それぞれの文書に含ま れる索引語の数を数え てみる 〇 〇 〇 〇〇 〇 〇 〇〇 〇 〇 〇 〇 〇 〇 〇〇 5 1 2 2 20 2 21 15 1 8 41 1 4 25 2 … … 索引語 文書 北海道 旅行 格安 ジンギスカン オルゴール 旅館 各文書での、各索引語の 「重要度(=重み)」を計算する スコアリングを基に、各文書に 順位をつけて上から順番に取得する (具体的な手法は後半のパートで説明)
  27. 27. 26 必要な文書を探すには? それぞれの文書に含ま れる索引語の数を数え てみる 〇 〇 〇 〇〇 〇 〇 〇〇 〇 〇 〇 〇 〇 〇 〇〇 5 1 2 2 20 2 21 15 1 8 41 1 4 25 2 … … 索引語 文書 北海道 旅行 格安 ジンギスカン オルゴール 旅館 各文書での、各索引語の 「重要度(=重み)」を計算する (=スコアリング) スコアリングを基に、各文書に 順位をつけて上から順番に取得する (=ランキング) (具体的な手法は後半のパートで説明)
  28. 28. 27 インターネットでの検索 テキスト データ に変換 索引語を 付ける データ 収集 Index 質問文を 入力 •北海道 •旅行 •北海道 •旅行 … 0.18 0.35 0.82 0.11 0.45 0.62 5 4 1 6 3 2 … 文書 「北海道」/「旅行」 の索引語の重み =スコアリング 順位 =ランキング (数値はダミー)
  29. 29. 28 インターネットでの検索 テキスト データ に変換 索引語を 付ける データ 収集 Index 質問文を 入力 •北海道 •旅行 検索結果 •北海道 •旅行 … 文書 「北海道」/「旅行」 の索引語の重み =スコアリング 0.18 0.35 0.82 0.11 0.45 0.62 5 4 1 6 3 2 順位 =ランキング … … (数値はダミー)
  30. 30. 29 インターネットでの検索 テキスト データ に変換 索引語を 付ける データ 収集 Index 質問文を 入力 •北海道 •旅行 検索結果 •北海道 •旅行 … 文書 「北海道」/「旅行」 の索引語の重み =スコアリング 0.18 0.35 0.82 0.11 0.45 0.62 5 4 1 6 3 2 順位 =ランキング … … (数値はダミー) 細かすぎず、粗すぎず説明すると、検索の仕組みは大体このような概観
  31. 31. 30 目次 • 検索の仕組みの概観 • 検索の仕組みの具体的内容
  32. 32. 31 インターネットでの検索 テキスト データ に変換 索引語を 付ける データ 収集 Index 質問文を 入力 •北海道 •旅行 検索結果 •北海道 •旅行 … 文書 「北海道」/「旅行」 の索引語の重み =スコアリング 0.18 0.35 0.82 0.11 0.45 0.62 5 4 1 6 3 2 順位 =ランキング … …
  33. 33. 32 インターネットでの検索 テキスト データ に変換 索引語を 付ける データ 収集 Index 質問文を 入力 •北海道 •旅行 検索結果 •北海道 •旅行 … 文書 「北海道」/「旅行」 の索引語の重み =スコアリング 0.18 0.35 0.82 0.11 0.45 0.62 5 4 1 6 3 2 順位 =ランキング … … ?検索結果の「善し悪し」は、どうやって評価すれば良いか?
  34. 34. 33 検索システムの評価の観点 • 適合性: 検索質問に対して、客観的に見て適合する文書を検索したか? • 適切性: 検索質問に対して、ユーザーが目的とする文書を検索したか? • 有用性: ユーザーにとって役立つ文書を検索したか? 客観的 主観的
  35. 35. 34 検索システムの評価の観点 • 適合性: 検索質問に対して、客観的に見て適合する文書を検索したか? • 適切性: 検索質問に対して、ユーザーが目的とする文書を検索したか? • 有用性: ユーザーにとって役立つ文書を検索したか? 客観的 主観的
  36. 36. 35 検索システムの「適合性」評価 … … 客観的に 適合している 文書 客観的に 適合していない 文書 北海道 旅行 集めた文書の中から…
  37. 37. 36 検索システムの「適合性」評価 検索された文書 検索されなかった文書 … … 集めた文書の中から… 北海道 旅行 客観的に 適合している 文書 客観的に 適合していない 文書
  38. 38. 37 検索システムの「適合性」評価 𝑤 𝑥 𝑦 検索された文書 検索されなかった文書 … … 客観的に 適合している 文書 客観的に 適合していない 文書 集めた文書の中から…
  39. 39. 38 検索システムの「適合性」評価 𝑤 𝑥 𝑦 検索された文書 検索されなかった文書 … … 客観的に 適合している 文書 客観的に 適合していない 文書 再現率 𝑹 = 𝒘 𝒘 + 𝒙 数値が高いほど(1に近いほど)、 漏れが少ない 集めた文書の中から…
  40. 40. 39 検索システムの「適合性」評価 再現率 𝑹 = 𝒘 𝒘 + 𝒙 数値が高いほど(1に近いほど)、 漏れが少ない 𝑤 𝑥 𝑦 適合率 𝑷 = 𝒘 𝒘 + 𝒚 数値が高いほど(1に近いほど)、 検索結果が正確でノイズが少ない 検索された文書 検索されなかった文書 … … 客観的に 適合している 文書 客観的に 適合していない 文書 集めた文書の中から…
  41. 41. 40 検索システムの「適合性」評価 再現率 𝑹 = 𝒘 𝒘 + 𝒙 数値が高いほど(1に近いほど)、 漏れが少ない 𝑤 𝑥 𝑦 適合率 𝑷 = 𝒘 𝒘 + 𝒚 数値が高いほど(1に近いほど)、 検索結果が正確でノイズが少ない 検索された文書 検索されなかった文書 … … 集めた文書の中から… ?「客観的に適合している/適合していない」 というのは、一体どうやって判断するのか? 客観的に 適合している 文書 客観的に 適合していない 文書
  42. 42. 検索質問集合 文書集合 41 テスト・コレクション A B C D E F G H I Q1:北海道で人気の旅館 Q2:北海道の観光名所 Q3:北海道の美味しい料理 Q4:XXXXXXXXXXXXXXXXXX Q5:XXXXXXXXXXXXXXXXXX 適合情報 Q1: Q2: Q3: Q4: Q5: A C A E G I B C C D F H 検索システム … 出力 評価
  43. 43. 42 検索システムの評価 𝑤 𝑥 𝑦 検索された文書 検索されなかった文書 … … 客観的に 適合している 文書 客観的に 適合していない 文書 集めた文書の中から… 再現率 𝑹 = 𝒘 𝒘 + 𝒙 適合率 𝑷 = 𝒘 𝒘 + 𝒚 数値が高いほど(1に近いほど)、 漏れが少なく、完全な状態に近づく 数値が高いほど(1に近いほど)、 検索結果が正確でノイズが少ない
  44. 44. 43 検索システムの評価 𝑤 𝑥 𝑦 検索された文書 検索されなかった文書 … … 客観的に 適合している 文書 客観的に 適合していない 文書 集めた文書の中から… 再現率 𝑹 = 𝒘 𝒘 + 𝒙 適合率 𝑷 = 𝒘 𝒘 + 𝒚 数値が高いほど(1に近いほど)、 漏れが少なく、完全な状態に近づく 数値が高いほど(1に近いほど)、 検索結果が正確でノイズが少ない ?再現率と適合率を高めるには どうすればよいか?
  45. 45. 44 再現率と適合率の関係 再現率 𝑹 = 𝒘 𝒘 + 𝒙 適合率 𝑷 = 𝒘 𝒘 + 𝒚 数値が高いほど(1に近いほど)、 漏れが少なく、完全な状態に近づく 数値が高いほど(1に近いほど)、 検索結果が正確でノイズが少ない 𝑹 𝑷 漏れを無くすには、 ノイズを許容する必要がある 正確性を追求するには、 漏れを許容する必要がある
  46. 46. 45 再現率と適合率の関係 再現率 𝑹 = 𝒘 𝒘 + 𝒙 適合率 𝑷 = 𝒘 𝒘 + 𝒚 数値が高いほど(1に近いほど)、 漏れが少なく、完全な状態に近づく 数値が高いほど(1に近いほど)、 検索結果が正確でノイズが少ない 𝑹 𝑷 検索システムの性能 そのものを高めていく 再現率、適合率の双方 を高めていくべき
  47. 47. 46 再現率と適合率の関係 再現率 𝑹 = 𝒘 𝒘 + 𝒙 適合率 𝑷 = 𝒘 𝒘 + 𝒚 数値が高いほど(1に近いほど)、 漏れが少なく、完全な状態に近づく 数値が高いほど(1に近いほど)、 検索結果が正確でノイズが少ない 𝑹 𝑷 検索システムの性能 そのものを高めていく 再現率、適合率の双方 を高めていくべき ?適合率と再現率の双方を を高めるには、どうすればいいか?
  48. 48. 検索された文書 検索されなかった文書 … … 集めた文書の中から… 47 再現率を高めるには? 𝑤 𝑥 𝑦 再現率 𝑹 = 𝒘 𝒘 + 𝒙 数値が高いほど(1に近いほど)、 漏れが少ない 客観的に 適合している 文書 客観的に 適合していない 文書 適合率 𝑷 = 𝒘 𝒘 + 𝒚 数値が高いほど(1に近いほど)、 検索結果が正確でノイズが少ない
  49. 49. 検索された文書 検索されなかった文書 … … 集めた文書の中から… 48 再現率を高めるには? 𝑤 𝑥 𝑦 再現率 𝑹 = 𝒘 𝒘 + 𝒙 数値が高いほど(1に近いほど)、 漏れが少ない 客観的に 適合している 文書 客観的に 適合していない 文書 これを減らすと、再現率が上がる 適合率 𝑷 = 𝒘 𝒘 + 𝒚 数値が高いほど(1に近いほど)、 検索結果が正確でノイズが少ない
  50. 50. 49 再現率を高めるには? 抜け漏れをなくす =再現率を高めるには、 なるべく多くの文書に 含まれる索引語を重要 と考えるべき 〇 〇 〇 〇〇 〇 〇 〇〇 〇 〇 〇 〇 〇 〇 〇〇 … … 索引語 文書 北海道 旅行 格安 ジンギスカン オルゴール 旅館 A B C D E F
  51. 51. 検索された文書 検索されなかった文書 … … 集めた文書の中から… 50 適合率を高めるには? 𝑤 𝑥 𝑦 適合率 𝑷 = 𝒘 𝒘 + 𝒚 数値が高いほど(1に近いほど)、 検索結果が正確でノイズが少ない 再現率 𝑹 = 𝒘 𝒘 + 𝒙 数値が高いほど(1に近いほど)、 漏れが少ない 客観的に 適合している 文書 客観的に 適合していない 文書
  52. 52. 検索された文書 検索されなかった文書 … … 集めた文書の中から… 51 適合率を高めるには? 𝑤 𝑥 𝑦 適合率 𝑷 = 𝒘 𝒘 + 𝒚 数値が高いほど(1に近いほど)、 検索結果が正確でノイズが少ない 客観的に 適合している 文書 客観的に 適合していない 文書 これを減らすと、 適合率が上がる 再現率 𝑹 = 𝒘 𝒘 + 𝒙 数値が高いほど(1に近いほど)、 漏れが少ない
  53. 53. 52 適合率を高めるには? 検索結果の正確性 =適合率を高めるには、 特定の文書にしか含ま れていない索引語を重 要と考えるべき 〇 〇 〇 〇〇 〇 〇 〇〇 〇 〇 〇 〇 〇 〇 〇〇 5 1 2 2 20 2 21 15 1 8 41 1 4 25 2 … … 索引語 文書 北海道 旅行 格安 ジンギスカン オルゴール 旅館 A B C D E F
  54. 54. 53 要するに 抜け漏れをなくす =再現率を高めるには、なる べく多くの文書に含まれる 索引語を重要と考えるべき 検索結果の正確性 =適合率を高めるには、特定 の文書にしか含まれていない 索引語を重要と考えるべき 再現率を高めるアプローチ 適合率を高めるアプローチ 索引語の重要度(=重み)を定量化する
  55. 55. 54 インターネットでの検索 テキスト データ に変換 索引語を 付ける データ 収集 Index 質問文を 入力 •北海道 •旅行 検索結果 •北海道 •旅行 … 文書 「北海道」/「旅行」 の索引語の重み =スコアリング 0.18 0.35 0.82 0.11 0.45 0.62 5 4 1 6 3 2 順位 =ランキング … …
  56. 56. 55 重要度(=重み)の計算方法 再現率を高めるアプローチ 適合率を高めるアプローチ
  57. 57. 56 重要度(=重み)の計算方法 • 抜け漏れをなくす=再現率を高めるには、 なるべく多くの文書に含まれる索引語を 重要と考えるべき 再現率を高めるアプローチ 適合率を高めるアプローチ
  58. 58. 57 重要度(=重み)の計算方法 • 抜け漏れをなくす=再現率を高めるには、 なるべく多くの文書に含まれる索引語を 重要と考えるべき 𝑙𝑖𝑗 ∶ 局所的重み(local Weight) • 索引語𝑤𝑖の文書𝐷𝑗での出現頻度に応じて 決定される重み 値が「大きい」ほど「再現率」に貢献 再現率を高めるアプローチ 適合率を高めるアプローチ 索引語𝑤 𝑤1 𝑤2 … 𝑤𝑖 … 文書𝐷 𝐷1 𝐷2 … 𝐷𝑗 … 𝑙11 𝑙21 𝑙𝑖1 𝑙12 𝑙22 𝑙𝑖2 𝑙1𝑗 𝑙2𝑗 𝑙𝑖𝑗 … … … … … … … … … … … … … … … …
  59. 59. 58 再掲:再現率を高めるには? 抜け漏れをなくす =再現率を高めるには、 なるべく多くの文書に 含まれる索引語を重要 と考えるべき 〇 〇 〇 〇〇 〇 〇 〇〇 〇 〇 〇 〇 〇 〇 〇〇 5 1 2 2 20 2 21 15 1 8 41 1 4 25 2 … … 索引語 文書 北海道 旅行 格安 ジンギスカン オルゴール 旅館 A B C D E F
  60. 60. 59 局所的重み(local Weight) 𝑙𝑖𝑗 = ൝ 1 (𝑓𝑖𝑗 > 0) 0 (𝑓𝑖𝑗 = 0) 𝑙𝑖𝑗 = 𝑓𝑖𝑗 𝑙𝑖𝑗 = log(1 + 𝑓𝑖𝑗) イメージ: 文書Aに「旅行」 の単語が1つでも 出てきたら1、出 なければ0の重み をつける イメージ: 文書Aに「旅行」が出た数 だけ索引語「旅行」重み をつける 𝑙𝑖𝑗 𝑓𝑖𝑗 イメージ: 文書Aに「旅行」が出た数だ け索引語「旅行」に重みを付 けたいが、付けすぎたくない 𝑙𝑖𝑗 = log(1 + 𝑓𝑖𝑗) 𝑙𝑖𝑗 𝑓𝑖𝑗 1 1 底=2
  61. 61. 60 重要度(=重み)の計算方法 • 抜け漏れをなくす=再現率を高めるには、 なるべく多くの文書に含まれる索引語を 重要と考えるべき • 検索結果の正確性=適合率を高めるには、 特定の文書にしか含まれていない索引語を 重要と考えるべき 𝑙𝑖𝑗 ∶ 局所的重み(local Weight) • 索引語𝑤𝑖の文書𝐷𝑗での出現頻度に応じて 決定される重み 値が「大きい」ほど「再現率」に貢献 再現率を高めるアプローチ 適合率を高めるアプローチ 𝑤1 𝑤2 … 𝑤𝑖 … 𝐷1 𝐷2 … 𝐷𝑗 … 𝑙11 𝑙21 𝑙𝑖1 𝑙12 𝑙22 𝑙𝑖2 𝑙1𝑗 𝑙2𝑗 𝑙𝑖𝑗 … … … … … … … … … … … … … … … … 索引語𝑤 文書𝐷
  62. 62. 61 重要度(=重み)の計算方法 • 抜け漏れをなくす=再現率を高めるには、 なるべく多くの文書に含まれる索引語を 重要と考えるべき • 検索結果の正確性=適合率を高めるには、 特定の文書にしか含まれていない索引語を 重要と考えるべき 𝑙𝑖𝑗 ∶ 局所的重み(local Weight) • 索引語𝑤𝑖の文書𝐷𝑗での出現頻度に応じて 決定される重み 𝑔𝑖 ∶ 大域的重み(global Weight) • 索引語𝑤𝑖の文書全体での分布を考慮して 決定される重み 値が「大きい」ほど「再現率」に貢献 値が「小さい」ほど「適合率」に貢献 再現率を高めるアプローチ 適合率を高めるアプローチ 𝑤1 𝑤2 … 𝑤𝑖 … 𝐷1 𝐷2 … 𝐷𝑗 … 𝑙11 𝑙21 𝑙𝑖1 𝑙12 𝑙22 𝑙𝑖2 𝑙1𝑗 𝑙2𝑗 𝑙𝑖𝑗 … … … … … … … … … … … … … … … … 𝑤1 𝑤2 … 𝑤𝑖 … 𝐷1 𝐷2 … 𝐷𝑗 … 𝑔1 𝑔2 𝑔𝑖 …… 索引語𝑤 文書𝐷 索引語𝑤 文書𝐷
  63. 63. 62 再掲:適合率を高めるには? 検索結果の正確性 =適合率を高めるには、 特定の文書にしか含ま れていない索引語を重 要と考えるべき 〇 〇 〇 〇〇 〇 〇 〇〇 〇 〇 〇 〇 〇 〇 〇〇 5 1 2 2 20 2 21 15 1 8 41 1 4 25 2 … … 索引語 文書 北海道 旅行 格安 ジンギスカン オルゴール 旅館 A B C D E F
  64. 64. 63 大域的重み(global Weight) 𝑔𝑖 = log 𝑛 𝑛𝑖 𝑔𝑖 𝑛𝑖𝑛 𝑔𝑖 = log 𝑛 − 𝑛𝑖 𝑛𝑖 𝑔𝑖 𝑛𝑖𝑛 2 イメージ: 「旅行」が出てくる文書が多いほど、 その文書の重みを少なくする イメージ: 「旅行」が出てくる文書が多いほど、 その文書の重みを少なくする さらに、文書全体の半数の文書に出 てくると、重みをマイナスにする
  65. 65. 64 重要度(=重み)の計算方法 • 抜け漏れをなくす=再現率を高めるには、 なるべく多くの文書に含まれる索引語を 重要と考えるべき • 検索結果の正確性=適合率を高めるには、 特定の文書にしか含まれていない索引語を 重要と考えるべき 再現率を高めるアプローチ 適合率を高めるアプローチ 𝑤1 𝑤2 … 𝑤𝑖 … 𝐷1 𝐷2 … 𝐷𝑗 … 𝑙11 𝑙21 𝑙𝑖1 𝑙12 𝑙22 𝑙𝑖2 𝑙1𝑗 𝑙2𝑗 𝑙𝑖𝑗 … … … … … … … … … … … … … … … … 𝑤1 𝑤2 … 𝑤𝑖 … 𝐷1 𝐷2 … 𝐷𝑗 … 𝑔1 𝑔2 𝑔𝑖 …… 索引語𝑤 文書𝐷 索引語𝑤 文書𝐷
  66. 66. 65 重要度(=重み)の計算方法 • 抜け漏れをなくす=再現率を高めるには、 なるべく多くの文書に含まれる索引語を 重要と考えるべき • 検索結果の正確性=適合率を高めるには、 特定の文書にしか含まれていない索引語を 重要と考えるべき 再現率を高めるアプローチ 適合率を高めるアプローチ 𝑑𝑖𝑗 = 𝑙𝑖𝑗 𝑔𝑖 𝑛𝑗 索引語𝑤𝑖の文書𝐷𝑗における重み: 𝑛𝑗:文書正規化係数 文書が長いほどその中に含まれる索引語の 重みが大きくなってしまうため、その影響 をなくす 𝑤1 𝑤2 … 𝑤𝑖 … 𝐷1 𝐷2 … 𝐷𝑗 … 𝑙11 𝑙21 𝑙𝑖1 𝑙12 𝑙22 𝑙𝑖2 𝑙1𝑗 𝑙2𝑗 𝑙𝑖𝑗 … … … … … … … … … … … … … … … … 𝑤1 𝑤2 … 𝑤𝑖 … 𝐷1 𝐷2 … 𝐷𝑗 … 𝑔1 𝑔2 𝑔𝑖 …… 索引語𝑤 文書𝐷 索引語𝑤 文書𝐷
  67. 67. 66 重要度(=重み)の計算方法 • 抜け漏れをなくす=再現率を高めるには、 なるべく多くの文書に含まれる索引語を 重要と考えるべき • 検索結果の正確性=適合率を高めるには、 特定の文書にしか含まれていない索引語を 重要と考えるべき 再現率を高めるアプローチ 適合率を高めるアプローチ 𝑑𝑖𝑗 = 𝑙𝑖𝑗 𝑔𝑖 𝑛𝑗 索引語𝑤𝑖の文書𝐷𝑗における重み: 𝑛𝑗:文書正規化係数 文書が長いほどその中に含まれる索引語の 重みが大きくなってしまうため、その影響 をなくす 𝑤1 𝑤2 … 𝑤𝑖 … 𝐷1 𝐷2 … 𝐷𝑗 … 𝑙11 𝑙21 𝑙𝑖1 𝑙12 𝑙22 𝑙𝑖2 𝑙1𝑗 𝑙2𝑗 𝑙𝑖𝑗 … … … … … … … … … … … … … … … … 𝑤1 𝑤2 … 𝑤𝑖 … 𝐷1 𝐷2 … 𝐷𝑗 … 𝑔1 𝑔2 𝑔𝑖 …… 索引語𝑤 文書𝐷 索引語𝑤 文書𝐷
  68. 68. 67 重要度=重みの計算方法:文書正規化係数の考え方 〇 〇 〇 〇〇 〇 〇 〇〇 〇 〇 〇 〇 〇 〇 〇〇 5 1 2 2 20 2 21 15 1 8 41 1 4 25 2 … … 索引語 文書 北海道 旅行 格安 ジンギスカン オルゴール 旅館 重要? A B C D E F 文書Fの索引語「旅館」 は重要度が高い?
  69. 69. 68 重要度=重みの計算方法:文書正規化係数の考え方 文書の長さによって索 引語数が増加してしま うことによる影響は避 けたい 〇 〇 〇 〇〇 〇 〇 〇〇 〇 〇 〇 〇 〇 〇 〇〇 5 1 2 2 20 2 21 15 1 8 41 1 4 25 2 … … 索引語 文書 北海道 旅行 格安 ジンギスカン オルゴール 旅館 北 海 道 の 旅 館 に 関 す る 調 査 索引語数 100,000 北 海 道 旅 行 ガ イ ド 1,000 ジ ン ギ ス カ ン の お 店 北 海 道 の 旅 館 予 約 旅 行 案 内 北 海 道 格 安 旅 行 1,0001,0005002,000 A B C D E F
  70. 70. 69 重要度=重みの計算方法:文書正規化係数の考え方 … 索引語 文書 A B C D E F 𝑙1𝐹 𝑔1から𝑙 𝑚𝐹 𝑔 𝑚の2乗和が1 になるように正規化する 𝑛 𝐹 = ෍ 𝑖=1 𝑚 (𝑙 𝑚𝐹 𝑔 𝑚)2 𝑙1𝐴 𝑔1𝑤1 𝑤2 𝑤 𝑚 𝑙2𝐴 𝑔2 𝑙 𝑚𝐴 𝑔 𝑚 𝑙1𝐵 𝑔1 𝑙2𝐵 𝑔2 𝑙 𝑚𝐵 𝑔 𝑚 𝑙 𝑚𝐹 𝑔 𝑚 𝑙1𝐹 𝑔1 𝑙2𝐹 𝑔2 … … … … … … … … … … … … … … … … … … … … … … … … … … … で各重みを割ればよい (コサイン正規化) ………
  71. 71. 70 重要度=重みの計算方法:文書正規化係数の考え方 索引語 文書 𝑤1 𝑤2 𝑤6 9 2 𝑤3 𝑤4 𝑤5 1 3 1 2 10 2 10 1 10 3 10 1 10 9 10 2 ( 2 10 )2+( 2 10 )2+( 1 10 )2 A B C D E … F +( 3 10 )2+( 1 10 )2+( 9 10 )2 = 100 100 = 1 𝑙1𝐹 𝑔1から𝑙 𝑚𝐹 𝑔 𝑚の2乗和が1 になるように正規化する 𝑛 𝐹 = 22 + 22 + 12 + 32 + 12 + 92 = 10 𝑛 𝐹 = ෍ 𝑖=1 𝑚 (𝑙 𝑚𝐹 𝑔 𝑚)2
  72. 72. 71 重要度(=重み)の計算方法 • 抜け漏れをなくす=再現率を高めるには、 なるべく多くの文書に含まれる索引語を 重要と考えるべき • 検索結果の正確性=適合率を高めるには、 特定の文書にしか含まれていない索引語を 重要と考えるべき 再現率を高めるアプローチ 適合率を高めるアプローチ 𝑑𝑖𝑗 = 𝑙𝑖𝑗 𝑔𝑖 𝑛𝑗 索引語𝑤𝑖の文書𝐷𝑗における重み: 𝑛𝑗:文書正規化係数 文書が長いほどその中に含まれる索引語の 重みが大きくなってしまうため、その影響 をなくす 𝑤1 𝑤2 … 𝑤𝑖 … 𝐷1 𝐷2 … 𝐷𝑗 … 𝑙11 𝑙21 𝑙𝑖1 𝑙12 𝑙22 𝑙𝑖2 𝑙1𝑗 𝑙2𝑗 𝑙𝑖𝑗 … … … … … … … … … … … … … … … … 𝑤1 𝑤2 … 𝑤𝑖 … 𝐷1 𝐷2 … 𝐷𝑗 … 𝑔1 𝑔2 𝑔𝑖 …… 索引語𝑤 文書𝐷 索引語𝑤 文書𝐷
  73. 73. 72 重要度(=重み) 𝑑𝑖𝑗の表現方法 〇 〇 〇 〇〇 〇 〇 〇〇 〇 〇 〇 〇 〇 〇 〇〇 5 1 2 2 20 2 21 15 1 8 41 1 4 25 2 … … 索引語 文書 北海道 旅行 格安 ジンギスカン オルゴール 旅館 ②文書全体での各索引語 の重要度を考える ③各文書の長さの 影響をなくす ①文書ごとの各索引語の 重要度を考える A B C D E F
  74. 74. 73 重要度(=重み) 𝑑𝑖𝑗の表現方法 … … 索引語 文書 北海道 旅行 格安 ジンギスカン オルゴール 旅館 A B C D E F 𝑑北海道A 𝑑北海道B 𝑑旅行A 𝑑旅行B 𝑑オルゴールE 𝑑オルゴールF 𝑑旅館E 𝑑 旅館F … … … … … … … … … … … …… … … … … …… … … …… … … …… …
  75. 75. 74 重要度(=重み) 𝑑𝑖𝑗の表現方法 … … 索引語 文書 北海道 旅行 格安 ジンギスカン オルゴール 旅館 𝑑北海道A 𝑑北海道B 𝑑旅行A 𝑑旅行B 𝑑オルゴールE 𝑑オルゴールF 𝑑旅館E 𝑑 旅館F … … … … … … … … … … … …… … … … … …… … … …… … … …… … 全ての文書は、 索引語の重要度=重みで 表現できる 𝒅j = 𝑑1j 𝑑2j ⋮ 𝑑mj 𝒅A = 𝑑ℎ𝑜𝑘𝑘𝑎𝑖𝑑𝑜 𝐴 𝑑ryoko A ⋮ A B C D E F 例)
  76. 76. 75 重要度(=重み) 𝑑𝑖𝑗の表現方法 … … 索引語 文書 北海道 旅行 格安 ジンギスカン オルゴール 旅館 A B C D E F 𝐷 = 𝒅1 𝒅2 ⋯ 𝒅 𝑛 = 𝑑11 𝑑12 𝑑21 𝑑22 ⋯ 𝑑1𝑛 ⋯ 𝑑2𝑛 ⋮ ⋮ 𝑑 𝑚1 𝑑 𝑚2 ⋱ ⋮ ⋯ 𝑑 𝑚𝑛 (索引語・文書行列) 全ての文書は、 索引語の重要度=重みで 表現できる𝑑北海道A 𝑑北海道B 𝑑旅行A 𝑑旅行B 𝑑オルゴールE 𝑑オルゴールF 𝑑旅館E 𝑑 旅館F … … … … … … … … … … … …… … … … … …… … … …… … … …… …
  77. 77. 76 重要度(=重み) 𝑑𝑖𝑗の表現方法 … … 索引語 文書 北海道 旅行 格安 ジンギスカン オルゴール 旅館 𝑑北海道1 𝑑北海道2 𝑑旅行1 𝑑旅行2 𝑑オルゴール5 𝑑オルゴール6 𝑑 旅館5 𝑑 旅館6 … … … … … … … … … … … …… … … … … …… … … …… … … …… … A B C D E F 𝐷 = 𝒅1 𝒅2 ⋯ 𝒅 𝑛 = 𝑑11 𝑑12 𝑑21 𝑑22 ⋯ 𝑑1𝑛 ⋯ 𝑑2𝑛 ⋮ ⋮ 𝑑 𝑚1 𝑑 𝑚2 ⋱ ⋮ ⋯ 𝑑 𝑚𝑛 こうすることで、各文書を ベクトル空間で記述できる (索引語・文書行列) 全ての文書は、 索引語の重要度=重みで 表現できる
  78. 78. 77 インターネットでの検索 テキスト データ に変換 索引語を 付ける データ 収集 Index 質問文を 入力 •北海道 •旅行 検索結果 •北海道 •旅行 … 文書 「北海道」/「旅行」 の索引語の重み =スコアリング 0.18 0.35 0.82 0.11 0.45 0.62 5 4 1 6 3 2 順位 =ランキング … … (数値はダミー)
  79. 79. 78 インターネットでの検索 テキスト データ に変換 索引語を 付ける データ 収集 Index 質問文を 入力 •北海道 •旅行 検索結果 •北海道 •旅行 … 文書 「北海道」/「旅行」 の索引語の重み =スコアリング 0.18 0.35 0.82 0.11 0.45 0.62 5 4 1 6 3 2 順位 =ランキング … … 𝐷 = 𝑑11 𝑑12 𝑑21 𝑑22 ⋯ 𝑑1𝑛 ⋯ 𝑑2𝑛 ⋮ ⋮ 𝑑 𝑚1 𝑑 𝑚2 ⋱ ⋮ ⋯ 𝑑 𝑚𝑛 𝒒 = 𝑞1 𝑞2 ⋮ 𝑞m 検索質問ベクトル 検索質問文に含まれる 索引語𝑤𝑖の重みを𝑞𝑖とする (数値はダミー)
  80. 80. 79 インターネットでの検索 テキスト データ に変換 索引語を 付ける データ 収集 Index 質問文を 入力 •北海道 •旅行 検索結果 •北海道 •旅行 … 文書 「北海道」/「旅行」 の索引語の重み =スコアリング 0.18 0.35 0.82 0.11 0.45 0.62 5 4 1 6 3 2 順位 =ランキング … … 𝐷 = 𝑑11 𝑑12 𝑑21 𝑑22 ⋯ 𝑑1𝑛 ⋯ 𝑑2𝑛 ⋮ ⋮ 𝑑 𝑚1 𝑑 𝑚2 ⋱ ⋮ ⋯ 𝑑 𝑚𝑛 𝒒 = 𝑞1 𝑞2 ⋮ 𝑞m 検索質問ベクトル 検索質問文に含まれる 索引語𝑤𝑖の重みを𝑞𝑖とする (数値はダミー) 検索質問と文書をベクトルで表現すれば、 さまざまな機械学習モデルを適用出来るようになる
  81. 81. 旅館 沖縄 80 例:コサイン類似度 3 1 2 索引語 文書 沖縄 旅館 2 CBA 検索質問=(沖縄、旅館) B A C 検索質問 Q:検索質問に一番「近い」文書は? 検索質問に一番近いのは 文書Aだと考えられる 𝒄𝒐𝒔 𝒅𝒋, 𝒒 = 𝒅𝒋 ∙ 𝒒 𝒅𝒋 𝒒 = σ𝒊=𝟏 𝒎 𝒅𝒊𝒋 𝒒𝒋 σ𝒊=𝟏 𝒎 𝒅𝒊𝒋 𝟐 σ𝒊=𝟏 𝒎 𝒒𝒊 𝟐 (0, 2) (1, 0) (3, 2) (1, 1)
  82. 82. 旅館 沖縄 81 例:コサイン類似度 3 1 2 索引語 文書 沖縄 旅館 2 CBA 検索質問=(沖縄、旅館) B A C 検索質問 Q:検索質問に一番「近い」文書は? 検索質問に一番近いのは 文書Aだと考えられる 𝒄𝒐𝒔 𝒅𝒋, 𝒒 = 𝒅𝒋 ∙ 𝒒 𝒅𝒋 𝒒 = σ𝒊=𝟏 𝒎 𝒅𝒊𝒋 𝒒𝒋 σ𝒊=𝟏 𝒎 𝒅𝒊𝒋 𝟐 σ𝒊=𝟏 𝒎 𝒒𝒊 𝟐 (0, 2) (1, 0) (3, 2) 話が難しくなってきたところで、 今回は以上としたいと思います。
  83. 83. 82 ここまでの仕組みを整理
  84. 84. 有用性 83 検索システムの評価 適合性 適切性 再現率 適合率 客観的指標 主観的指標 𝑙𝑖𝑗 = ൝ 1 (𝑓𝑖𝑗 > 0) 0 (𝑓𝑖𝑗 = 0) 𝑙𝑖𝑗 = 𝑓𝑖𝑗 𝑙𝑖𝑗 = log(1 + 𝑓𝑖𝑗) 𝑔𝑖 = log 𝑛 𝑛𝑖 𝑔𝑖 = log 𝑛 − 𝑛𝑖 𝑛𝑖 𝑑𝑖𝑗 𝑙𝑖𝑗 𝑔𝑖 …… 大項目(KGI?) 中項目(KPI?) Metrix
  85. 85. 84 検索の仕組み 調べる 検 索 質 問 検 索 質 問 拡 張 Q →Q 内部表現変換 DB 索 引 語 抽 出 収 集 + 変 換Index作成 照合 検索結果
  86. 86. 85 検索の仕組み 調べる 検 索 質 問 検 索 質 問 拡 張 Q →Q 内部表現変換 DB 索 引 語 抽 出 収 集 + 変 換Index作成 照合 ④ Scoring/Ranking ① Query Understanding ② Document Understanding 次回以降は、①~④について各論の勉強会を開催(?) ③ Indexing 検索結果
  87. 87. 86 推薦書籍
  88. 88. 87 参考までに、ここからは、 検索の理論的な部分を理解するのに 私にとって役立った書籍をご紹介します。 プログラミングは全く分からないので、 プログラミング技術に関する書籍はありません。
  89. 89. 88 推薦書籍 検索システムをわかりやすく説明している書籍 根本的な考え方が分か ります。不朽の名著的 な貫禄があります。 ある程度の理論的根拠 を把握しながら、全体 観を理解するのに重宝 しました。 個人的に、一番オススメ の本です。 とにかく文章が的確で、 非常に理解しやすいです。

×