15章では、サポートベクターマシンとドキュメントにおける機械学習について説まとめている。
サポートベクターマシン(Support Vector Machines)
サポートベクターマシン(SVM)は、データを2クラスに分類する高性能な線形識別アルゴリズムである。
まず、訓練データを2クラスに線形分類する。
データ点に接するまでの境界の幅をマージンと呼び、これが最大となるように、識別線を決定する。これをマージン最大化という。
また、境界上の点をサポートベクターと呼ぶ。
なぜマージン最大化?
- 安全である。
- 境界の位置に微小な誤りがあったとしても、誤識別される可能性が低い。
SVMの拡張
以下、訓練データが線形分離不可能な場合の手法を考える。
ソフトマージン分類法
ソフトマージン分類法は、データセットが線形分離できない場合に、多少の誤りを許す分類法。
テキストドキュメント分類法
テキストドキュメントの分類法を考える。
まず、よい性能を発揮するには、各クラスにおいて数百〜数千の訓練データが必要である。
以下では、訓練データの量で場合分けして分類法を説明する。
訓練データがない場合
以下のような手書きのルールを用いる。
IF (wheat OR grain) AND NOT (whole OR bread) THEN
c = grain
実際はこれよりもっと大きいルールセットとなる。
注意深くルールを作ればかなり正確に分類できるが、そのようなものは基本的にルールセットが膨大であり、作成に時間がかかる上、メンテナンスも大変である。
訓練データが少しだけある場合
より多くのラベルが付いたデータをできるだけ速く得る方法を考える。
例えば、これまで人間がメールを目的により分類していたものを参考にする、など。
訓練データが十分にある場合
これまで説明した分類法がどれでも使える。
訓練データが大量にある場合
どの分類法を使っても、性能にはほとんど差が出ない。
トレーニングや実行時間の効率のスケーラビリティを基に分類法を決めるとよい。
重み学習
訓練データを用いてタームの重みを学習し、それをクエリとドキュメントとの適合性判断に用いる。これをランキング学習という。
以下、重み学習のスコアリング手法を説明する。
ゾーンスコアリング
各ゾーンで重みを分け、クエリのタームがそのゾーンに出現していたら、その重みをスコアに加える。
例として、以下のものを考える。
著者(0.2), タイトル(0.3), 本文(0.5)
重みの和は1になるようにしておく。
クエリのタームがタイトルと本文に出現していたとすると、スコアは以下のように求められる。
0.3 + 0.5 = 0.8
- メリット
シンプルである
- デメリット
コストがかかる
実数値でのスコアリング
簡単な例として2次元で考える。2つの要素は以下のように定める。
- クエリとドキュメントのコサイン類似度
- ドキュメントにおけるクエリの近接度
下式のa, b, cを訓練データで重み学習する。
Score(d, q) = Score(α, ω) = aα + bω + c
そしてある閾値θを定め、Score(d, q) > θ なら適合、そうでなければ不適合とする。
コサイン類似度、クエリの近接度以外の要素の例としては、PageRank、ドキュメントの新しさや長さなどが挙げられる。
このような機械学習は、適合度を実数値で表現する順序回帰問題である。
ランキングにおいて重要なのは、あるドキュメントが一般的に適合しているかという情報ではなく、他のドキュメントと比較して相対的にどちらがよりよいかという情報である。
よって、情報検索におけるランキングにおいて、順序回帰が問題となるのである。