【Doc2Vec:その3】モデルの評価

本記事では実際に作成したモデルを評価した方法について紹介します。

評価に関しては正解不正解が判定できる2値分類などと違い、対象としたものによって上手く評価方法を見極めて評価してする必要があります。

そのため、本記事では1つの例としてこのような方法があるという参考程度に考えて読んでいただければと思います。

学習対象

今回記事を書くにあたり、特許を学習の対象としてみました。

特許を対象にした理由としては、基本的に記述方法が定まっていることや、ネット上で対象の学習データを集められること、評価するうえで指標が考えやすいということが挙げられます。 その特許をある程度分野を絞り3万件以上のデータを学習データとしました。

具体的な評価方法

特許をDoc2Vecでベクトル化する学習モデルを作成しても評価するには多少工夫が必要となります。

Doc2Vecはいわゆる教師なし学習と呼ばれる機械学習で、結果に正解不正解という絶対的な指標がありません。

そのため、”なんとなく良さそうみたい”なある程度ふわっとした結果を上手く評価していく必要があります。

今回対象とした特許には必ず特許の分野内容を表す分類コードが記載されています。今回はこの記載された分類コードを基に評価を行いました。

分類コードは“大きな分類+小さな分類+さらに小さな分類+……”のようにコードの全体で徐々に狭い範囲の特許であることを表せるような記述方法が使用されています。つまり、完全に同じコードだと凄く似ている特許で途中まで同じコードだとある程度似ている特許であることが分かります。

【図1】分類コードのイメージ(実際のコード記述法とは異なる)

今回はこのコードの記述方法から全体が一致したものに1点。大きな区分があっている場合は0.2点のような重みづけのある評価点を算出するようにしました。 これの評価方法を学習した特許ひとつひとつにつき類似しているとされる上位5件の特許を取得し、それぞれの評価点を合計するという方法で評価を行いました。

基本的にひとつの特許につきコードが複数ついているのでそれらすべての合計で評価をしていきます。

評価結果

今回は特許内にある”要約”,”請求”,”詳細”という3つの区分でどの程度モデルの精度に差が出るのかを比べてみました。(”要約 < 請求 < 詳細”の順で文字数が増え詳しい内容になる)

    区分        評価値    
要約107410.2
請求130831.0
詳細213691.4
【表1】評価結果のまとめ表

と、上記のような結果になりました。

現状では評価がより良くなるような工夫や最適なパラメータ調整などがほぼできていないので、調整次第で結果が変わることも考えられますが、一応このような結果になりました。

文章が長くなるほど、より正確にベクトル化できる可能性が高そうという結果になりました。

次回は、結果が良くなりそうな工夫やパラメータ調整も含めた記事にしようと思うのでそちらにも目を通していただければと思います。