こんにちは,今日もコロナ社から出版されている自然言語シリーズの自然言語のための機械学習入門を読んでみましたので簡単に内容をまとめたいと思います.
初めに
分類問題は事前に定義されたグループに分類対象を振り分ける処理のことを言います.たとえば,迷惑メールのフィルタリングみたいなものです.迷惑メールの文章からどのような文章が迷惑メールなのかを学習し,迷惑メールかどうかの判断をします.この分類はいくつか提案されていますが,ここでは,ナイーブベイズ分類,SVMを用いたもの,対数線形モデルを用いたもののうちのナイーブベイズ分類について解説したいと思います.
ナイーブベイズ分類とは?
ナイーブベイズ分類は文章の出現頻度をモデル化することによって分類を行います.ナイーブベイズのモデル化はベルヌーイ分布を用いたものと多項分布を用いたものがあります.ベルヌーイ分布は文章内に単語が存在しているかいないかで分類をおこないますが,多項式分布は文章内に単語がどれほど存在しているかで判断しています.そこで,今回は認識精度の面から多項分布でのモデル化について解説します.
問題の数式化
まず初めに求める問題を定式化します.分類ですので,ある分類したいクラスC(スポーツや政治)に文章dが当てはまるかどうかが重要になります.つまり,文章dが与えられたときにクラスCである確率を求めます.そして,以下のようにベイズの法則からCを求める式を算出します.
ほんとうは,P(c|d)を求めたいのですが,dは文章ですので組み合わせが膨大になります.そこで,P(d|c)という問題へと変換しました.
多項モデル
多項式分布を覚えていますか?多項式分布では発生確率を持つ単語が文章内に複数回発生したときの文章の発声確率をモデル化できました.これをクラス内単語の発生確率が複数回発生したとして文章の発生確率をモデル化しものが多項モデルです.文章dの中に単語wが回起こる確率は,多項分布を用いて以下のように決まります.ここで,は属するクラスがcであったときに単語wが発生する確率です.
これで,クラス内にある単語が発生する確率を求めることができたので,クラスCに単語が属する確率P(d|c)は以下のようになります.
つまりは,これを用いると,以下の式を最大にするようなクラスCが文章dの属するクラスということになります.
実際には最尤推定を用いて確率の値を求めていきます.今回は解き終わった結果を見てみたいと思います.
P(c)はあるクラスに属する文章の数を全体の文章の数で割っていて,はクラスcに属するある文章の出現回数をクラスcに属する全ての文章の出現回数を割っていて,直観的だとわかります.