索引篩法 ― 大規模サーチエンジンのため の高速なランキング検索法 NTT未来ねっと研究所 原田昌紀 佐藤進也 風間一洋 研究の動機 残り 残りは不要 は不要 n Webサーチエンジンの特性 ほとんどの利用者は適合度上位10件しか見ない → 適合度の高い文書だけを検索することで高速化できないか? q フレーズ一つの検索質問が多い → 適合度の高い文書=フレーズの出現頻度が高い文書 q 索引篩法の提案 n 索引篩法 q n 適合度に大きく寄与する出現位置をあらかじめ抽出し ておき,適合度の高い文書を先に検索する 現時点での成果 q 検索語の25%∼58%を2∼8倍高速に検索できた n q しかし,それ以外の検索語では逆に遅くなってしまう 改善の余地は大きい 転置索引の特長 n あらゆる索引語のすべての位置情報を格納 q n n 位置情報=<文書番号d,文書内頻度ft,d,[文書内出現位置] > フレーズ検索も可能 文書単位のランキング検索が容易 辞書ファイル 索引語t 文書頻度f t : 温室 22 温泉 3480 温暖 91 : 位置情報ファイル <位置情報1>,<位置情報2>,…,<位置情報22> <位置情報1>,<位置情報2>,…, <位置情報3479>,<位置情報3480> <位置情報1>,…,<位置情報91> < 文書番号d,文書内頻度ft,d,[文書内出現位置] > ランキング検索の手順 1. 2. 3. 4. 5. フレーズをNグラムに分割する 辞書ファイルでNグラムを検索する すべてのNグラムが存在? NG → 0件 位置情報ファイルを読み出し, フレーズの文書内位置を求める 文書内頻度から適合度を計算 適合度上位最大 k 件を表示 Nグラム検索 温泉 加賀 賀温 位置情報 読み出し ヒープ フレーズ 判定 適合度 計算 上位k件 を選別 表示 ランキング検索処理時間 検索時間は読み出される位置情報量に比例する q 理由: ディスク読み出し+文書番号デコード+フレーズ判定 4500 4000 検索処理時間(ms) n 3500 3000 2500 2000 1500 1000 500 0 0M 5M 10 M 15 M 読み出された出現位置の数 20 M 先行研究 n Document Filtering for Fast Ranking [Persin,94]など q q q n 適合度への寄与の大きな検索語から順に検索する 位置情報を文書内頻度の大きい順に読み出す 適合度への寄与が小さくなった時点で検索結果として出力する 問題点:英単語のOR検索しかできない q 日本語Webサーチエンジンではフレーズ一個の検索が7割 索引篩法の概略 n 高適合語転置索引の作成 q Nグラムを一つずつ検索し, 辞書 スコアF 以上の文書がk 個以上あれば, ファイル そうした文書の位置情報を抽出する. n n F スコアの閾値(適当に決める) k 表示される文書数 (k = 10) 出現位置 ファイル 通常の転置索引 スコア F 以上の 文書が k 個以上? n 検索手順 1. 高適合語転置索引で検索する 2. スコア F 以上の文書が k 個以上検索 されたら成功 3. 通常の転置索引で検索する 辞書 ファイル 出現位置 ファイル 高適合語転置索引 フレーズが検索できる理由 n 検索語一つの場合: 「質問ベクトル」は不要 q q 検索語の重みを考えなくてもよい 適合度=検索語のスコア n n 検索語の文書内頻度を文書サイズで正規化するだけ 高適合語転置索引で検索できる理由 フレーズの文書内頻度がフレーズに含まれるNグラムの文書内 頻度を超えることはない → フレーズのスコアが F 以上になる文書では,フレーズに含まれ るNグラムのスコアも F 以上になる q 例: ” 加賀温泉”のスコアが高い文書 → ”加賀”でも” 温泉”でもスコアが高い文書 高適合語転置索引の検索手順 1. 2. 3. 4. 5. 6. フレーズをNグラムに分割する 辞書ファイルでNグラムを検索する すべてのNグラムの文書頻度がk以上? 位置情報ファイルを読み出し, フレーズの文書内位置を求める 文書内頻度からスコアを計算 スコアF以上の文書が k 件ある? 上位 k 件を表示 NG NG 失敗1 再検索 失敗2 再検索 評価実験 n WebサーチエンジンODI Nのデータを利用 q q n 検索対象:Webページ 4,100万URL ODINで検索された質問1,000語 6段階の F で高適合語転置 索引を作成し,成功率と検索 速度を評価( k = 10 ) Nグラム数 索引サイズ I I2 I4 I7 I11 I16 I22 (100%)146GB 4.42% 59GB 2.94% 38GB 2.31% 26GB 1.86% 19GB 0.93% 13GB 0.61% 9GB 高適合語転置索引のサイズと成功率 n n 索引が大きいほど成功率が高い 索引サイズと関係なく成功・失敗する検索質問も多い q 0.61%のNグラムで検索質問の1/4が検索できる q 検索質問の4割は高適合語転置索引では検索できない 成功 失敗1 失敗2 I2 I4 I7 I11 I16 I22 0% 50% 100% 高適合語転置索引のサイズと検索時間 n 索引サイズが大きいほど検索時間が長い q n 成功率とトレードオフの関係 失敗2の検索時間は長い q 検索時間の短い検索語(非フレーズ)は成功または失敗1 I2 I4 I7 I11 失敗2 失敗1 成功 I16 I22 0 100 200 300 400 500 600 索引篩法の効果 n n 成功時には2∼8倍高速 失敗時には再検索をおこなうため逆に遅くなる q 平均すると10%前後の高速化にとどまる I2 I4 I7 平均 失敗2+再検索 I11 I16 失敗1+再検索 成功 I22 0 500 1000 通常 1500 索引篩法の有効な検索語(1) n 外見から成功・失敗を予想するのは難しい 成功 n n n n n n n 日本農業賞 京都精華大学 P3B-F スパークリングワイン 諸星大二郎 信楽焼 中川温泉 失敗1・失敗2 n n n n n n n 日本流行色協会 新城眼科 L685 安くておいしいワイン 沖縄の人口 魚肉ソーセージ 鬼岩温泉 索引篩法の有効な検索語(2) n 文書頻度が高いほど成功率は高い q q しかし,フレーズの文書頻度 の予測は難しい 現在は文書頻度10以上の Nグラムを篩にかけているが, 1000以上に限定すべき? → 今後の課題 文書頻度 ft 0-49 成功率 0% 50-99 1.5 % 100-499 5.6 % 500-999 38.7 % 1000-4999 74.8 % 5000- 95.3 % Total 32.6 % 今後の課題 n 再検索コストの削減 n 成功率の改善 q n Nグラムごとに異なるしきい値 Ft を用いるように拡張? AND検索・OR検索への対応 まとめ n 日本語フレーズのランキング検索を高速化する 索引篩法を提案した n 実際のWeb文書と検索質問を使って評価した q 検索語の25%∼58%を2∼8倍高速に検索できた n しかし,失敗時のコストが大きい 補足:索引単位による違い n Nグラムの長さと成功率の関係 q q フレーズをどう分割しても成功率は変わらない 長さN未満のフレーズは索引篩法では検索できない n n OR検索ができないのと同じ理由 形態素単位の場合 q q 手順はNグラム単位と同じでよい 形態素と検索語フレーズが一致するなら,索引篩法 より単純な方法で済む n あらかじめすべての形態素で上位 k 件を検索しておく
© Copyright 2024 Paperzz