Mahoutで体感する機械学習の実践

第8回 自由回答式アンケートで顧客の声を聞くための考え方

この記事を読むのに必要な時間:およそ 2 分

アンケートの2つの方法と特徴

顧客からアンケートをとることは,顧客ニーズの把握や,顧客からのフィードバックを得る手段として有効です。

アンケートの回答方法には,大きく分けて,以下の2つがあります。

選択式(事前に用意された選択肢の中から回答を選択する)

○○の△△についてお伺いさせてください

  • 5.とても良い 4.良い 3.普通 2.悪い 1.とても悪い
自由記述式(自由に回答を記入する)

○○の△△についてお伺いさせてください

この2つの回答方法には,それぞれ以下のような特徴があります。

選択式の特徴
【メリット】
  • 回答者の負担が少ない
  • 機械的な集計作業が容易であるため,集計作業に人手や時間があまりかからない
【デメリット】
  • 事前に用意した回答しか得ることができない
自由記述式の特徴
【メリット】
  • 詳細な回答や自由な回答を得ることができる
【デメリット】
  • 回答者の負担が大きい
  • 機械的な集計作業が困難であるため,集計作業に人手や時間がかかる

このように,自由記述式の方が,回答者の負担の高さや集計作業の困難さがあるものの,回答者の自由な回答を導き出すことができます。そのため,より有意義な回答内容を得ることができる可能性があり,アンケートの目的によってはより効果的です。

文章内に出現する単語を利用して機械的なアフターコーディングを実現する

この自由記述式の回答を集計するにはいくつか方法がありますが,代表的なものとして,内容が似通った回答を同じカテゴリにまとめていく手法があります。それをアフターコーディングと呼びます。

アフターコーディングは人手で容易に実現可能ですが,回答数が大量の場合,多くの人手と時間がかかるという欠点があります。しかし,これを機械的に処理することができれば,多くの人手と時間をかけずに,自由記述式による質の高い回答内容を得ることが可能になります。

では,どのようにすれば機械的なアフターコーディングが実現可能でしょうか。

アフターコーディングでは,似た内容の文章を同一のカテゴリに分類します。そのような,特定のルールに従ってアイテムをカテゴリに分類するには,機械学習の中でも分類器の利用が適しています。

分類器は,教師あり学習の1つで,与えられた学習データから分類を実現しているルールを抽出し,モデルを作成します。そして,分類対象のアイテムを与えられた際には,そのモデルを用いて,アイテムを最も適していると思われるクラスへ分類します※1 )。

このモデルを作成する際,アイテム内にある多くの特徴の中から,どの特徴を分類に利用するかを決定する必要があります。

精度の高いモデルを作成するためには,目的のクラスにアイテムをうまく分類するような特徴を選択することが重要になります。そのため,特徴を選択する際は,それぞれのクラスがどのような基準で分かれているかを考慮して決定しなければなりません。

今回の場合であれば,アイテム(文章)の記載内容が似ているものを同一のクラス(カテゴリ)へ分類するため,クラスは記載内容を基準として分かれていると考えられます。よって,文章の記載内容に関わるものを特徴として選択することが適切でしょう。

そこで今回は「ドキュメント内に出現する単語」を特徴として採用することにします。

たとえば「品質に関する回答」「価格に関する回答」というカテゴリがある場合,文章内に「故障」といった品質に関連しそうな単語を多く含む文章では,後者のカテゴリより,前者のカテゴリに属する確率の方が高くなるのが適切と考えられます。

このような文章内の単語を特徴とした分類器の利用は,スパムフィルタなどのドキュメント分類で広く行われています。

※1)
このような教師あり学習のアプローチでは,精度の高いモデルを構築するために,多くの場合において手動でデータを用意する必要があります。そのため,手動でのアフターコーディングがまったく必要なくなるわけではありません。

分類を行うための「ナイーブベイズ」の考え方

分類器にも多くの手法があります。その中でも,ドキュメント分類でよく利用されるアルゴリズムの1つにナイーブベイズ(または単純ベイズ)があります。

ナイーブベイズは,与えられた学習データから,アイテム内の各特徴が各クラスに出現する確率を計算し,それをモデルとします。

そして,分類対象のアイテムが与えられた際には,与えられたアイテムが持つ特徴と,事前に作成したモデルから,そのアイテムが属する確率が最も高いクラスを導き出します。その最も確率が高いクラスが,そのアイテムが分類されるクラスになります※2 )。

※2)
各クラスへの重み付けや最低閾値の設定が行われた場合などでは,最も確率が高いクラスが採用されない場合があります。

ナイーブベイズでドキュメントをカテゴリへ分類する5つのステップ

この一連の流れを今回のドキュメント分類に当てはめて考えると,以下のようになります。

  1. 学習データから,以下の各単語が各カテゴリに出現する確率を計算し,モデルを作成します。

    単語 i がカテゴリ j に出現する確率

    単語iがカテゴリjに出現する確率

  2. 分類対象のドキュメントに属する各単語が,各カテゴリに出現する確率を,上記1.で作成したモデルから求めます。

  3. 上記2.の同一カテゴリにおける各単語の出現確率を掛け合わせて,ドキュメントが各カテゴリに出現する確率を計算します。

    ドキュメント i がカテゴリ j に出現する確率

    ドキュメントiがカテゴリjに出現する確率

  4. ベイズの定理を用いて,上記3.から各カテゴリがドキュメントに出現する確率を求めます。

    カテゴリ j がドキュメント i に出現する確率

    カテゴリjがドキュメントiに出現する確率

  5. 上記4.の各カテゴリの確率で,最も確率が高かったカテゴリを,そのドキュメントが属する確率として採用します。

上記の手順で,ナイーブベイズを用いたドキュメント分類が可能になります※3)。

Mahoutには,このナイーブベイズが実装されています。

最終回となる次回は,Mahoutを用いて,ナイーブベイズによるアフターコーディングを行います。

※3)
ナイーブベイズの計算で必要となる条件付き確率やベイズの定理について,よりくわしく知りたいようでしたら,こちらの連載をご覧ください。

著者プロフィール

やまかつ(山下勝司)

開発/インフラ/統計,機械学習/プロジェクトマネージメントをこなす器用貧乏。最近はビッグデータ,Hadoop,機械学習あたりに夢中。

株式会社マーズフラッグ 先端研究開発本部所属。

趣味は妻と子供と過ごすこと。

Twitter:@yamakatu
Facebook:http://www.facebook.com/katsushi.yamashita.9

コメント

コメントの記入