Nomolytics

Nomolyticsの概要

 Nomolyticsとは、Narrative Orchestration Modeling Analyticsの略で、従来のテキストマイニングにトピックモデルのPLSA(確率的潜在意味解析)と確率的因果モデルのベイジアンネットワークという2つのAI技術を連携して適用し、テキストデータに潜む特徴や要因関係を構造的にモデル化する新しい分析手法です。なお、Nomolyticsの手法は、当社代表の野守耕爾が前職の有限責任監査法人トーマツに所属しているときに特許として出願・登録しており(特許第6085888号)、現在その特許権利は、当社と有限責任監査法人トーマツが共同で保有しています。



Nomolytics:テキストマイニングとトピックモデル(PLSA)とベイジアンネットワークを組み合わせたテキストデータの分析手法



 Nomolyticsでは、まずテキストマイニングによりテキストデータの文書に含まれる単語を抽出し、それぞれの単語が同時に出現する頻度をデータ化した共起行列を作成します。次に、その共起行列をインプットにPLSAを適用し、使われ方の似ている単語群を複数のトピックにまとめ上げます。そして、すべてのテキストデータに対して各トピックがどれくらい該当するのかという重み(スコア)を計算し、テキストデータをトピックによって定量的に説明可能にします。テキストデータには、文章情報の他に様々な属性情報が紐づいていますが、Nomolyticsでは、このデータにさらにトピックのスコア情報を付加することができます。このデータを使ってトピックのスコアを属性別に集計することで、各属性の傾向をトピックを軸にシンプルに可視化できます。最後にこのデータのトピックを確率変数として定義し(量的なスコアを質的なフラグに変換し)、ベイジアンネットワークを適用することで、トピックや他の属性情報との間に潜む確率的な因果構造をモデル化します。その確率モデルを用いることで、各要因が他の要因に与える影響を確率的にシミュレーションすることができます。このようにNomolyticsでは、膨大なテキストデータをいくつかのトピックに変換することで全体の傾向をシンプルに可視化し、またテキスト情報内に潜む因果構造をモデル化することで、ビジネスアクションに有用なインサイトを発見することに役立ちます。



Nomolyticsを適用して作成されるトピックのスコアデータ(例:ホテルの口コミデータ)



 Nomolyticsは様々なテキストデータに適用可能な分析手法ですが、当社では特に「特許データの分析」と「VOCデータの分析」で多くのご提供実績があります。それぞれの具体的な分析内容については以下をご参照ください。


 

 



Nomolyticsのメリット

 Nomolyticsでは、主に以下の3つのメリットがあります。

メリット①:トピックを軸にしたシンプルな可視化ができる

 テキストマイニングの分析は、テキストデータの文章情報に含まれる単語を抽出し、その単語を軸に特徴を可視化していきます。しかし、膨大なテキストデータでは大量の単語が抽出されるので、ビッグデータを対象にした分析では、大量の単語による大変複雑な可視化になってしまい、そのような結果は解釈が難しく、なかなかインサイトが得られません。


 Nomolyticsでは、膨大なテキストデータから抽出される大量の単語を、PLSAによっていくつかのトピックに集約することで、そのトピックを軸にして特徴をシンプルに可視化していきます。これにより結果がとても解釈しやすくなり、様々な深堀分析も可能になり、ビッグデータであっても、そこに潜む傾向を捉えることができます。



メリット②:テキストデータに潜む因果構造をモデル化できる

 テキストマイニングの分析では、各属性別に単語の頻度を集計して、それぞれの属性の傾向を把握することがありますが、これはあくまでも集計された傾向に留まります。それぞれの要因がどのようにどの程度影響し合っているのかモデル化(特徴が一般化)されているわけではありません。その傾向は一つの属性だけの傾向だけでなく、複数の属性が関係しているかもしれませんし、それぞれの属性の影響度合いも比較したいところですが、大量の単語を軸にしたテキストマイニングでは、こうした分析はまずできません。


 Nomolyticsでは、PLSAで抽出されたトピックの間の関係、あるいはトピックと他の属性情報との関係構造をベイジアンネットワークでモデル化することができます。これによって、テキストで記された複雑な現象に潜む因果構造を探索することができます。たとえば、アンケートの顧客満足度に寄与する自由記述のトピックにはどのようなものがあるのか、コールセンターで抑制したい問い合わせトピックの発生に寄与する属性要因にはどのようなものがあるのかなど、施策に重要なキードライバーの発見も期待できます。



メリット③:条件に応じた効果の変化をシミュレーションできる

 テキストマイニングの分析は、基本的に現状把握の分析となります。このテキストデータでは現状このような記述傾向があるということを把握する分析です。しかし、仮にその現状から何か条件が変わったとき、それに伴って結果がどのように変動するのかというシミュレーションをすることはできません。たとえば、分析結果から何か施策を検討した場合も、その施策によってどれほどの効果が期待できるのか、事前に評価をすることは難しいです。


 Nomolyticsでは、ベイジアンネットワークで構築した因果構造の確率モデルを用いることで、この変化に伴うシミュレーションを実行できます。たとえば、口コミで話題にされるトピックや投稿者の属性情報と口コミの評点との関係構造をモデル化したとき、口コミのトピックの内容によって、また投稿者の属性によって、評点がどの程度変化するのか確率的にシミュレーションできます。また、コールセンターの問い合わせのトピックとその他の属性情報との関係構造をモデル化したとき、消費者の属性や製品の属性によって各トピックの問い合わせの起こりやすさがどのように変化するのかということも確率的にシミュレーションできます。逆に、その結果の発生確率を最大化あるいは最小化するような各要因の条件もベイジアンネットワークのモデルを使って発見することができますので、ある行動を促進させるための施策、あるいは抑制させるための施策をテキストデータから検討することができます。





Nomolyticsの技術的解説

1. テキストマイニングの課題

1-1. テキストマイニングという分析手法

 テキストデータを分析しようとするとき、その文書情報は定性的なデータであるため、そのままでは他の定量的なデータのように集計したり統計解析を実行することはできません。テキストマイニングはそんな文書情報のデータを定量的に統計分析可能にするデータマイニング手法です。大量のテキストデータからその文書に含まれる単語を抽出し、単語単位による集計や統計解析に基づいて文書に記述されている傾向を可視化します。


 テキストマイニングにおける自然言語処理には「形態素解析」「構文解析」という2つの基本技術があります。形態素解析とは、文書を単語に分割し、その単語の品詞を割り当てる技術です。一方、構文解析とは、文法規則に基づいて文書の構造を解析し、単語間の関係性を識別する技術です。たとえば、主語と述語や、修飾語と被修飾語といった係り受け関係を抽出します。これらの処理によって、文書に含まれる単語とその品詞、また単語間の係り受け関係を抽出することができます。


テキストマイニングの形態素解析と構文解析



 テキストデータという定性的な文書データを定量的に統計分析可能にするには、そのデータを数値の形式で表現する必要がありますが、その代表的な方法が文書や単語をベクトルで表現するというものです。形態素解析はその最も基本的な技術であり、形態素解析で文書に含まれる単語を抽出し、各文書にどの単語が何回出現したのかをカウントすることで、その出現頻度という数値によって文書一つひとつをベクトルとして表現できます。このように単語の出現頻度でもって文書をベクトル化する手法をBag-of-Words(BoW)と呼びます。Bag-of-Wordsのベクトル表現は「文書×単語」という行列形式のデータで考えると分かりやすいです。一つの行に一件の文書を、一つの列に一つの単語を取ったとき、各セルの値はその文書内におけるその単語の出現回数を示します。以下の図は、ホテルの口コミデータを対象にBag-of-Wordsの例を示したものです。Bag-of-Wordsは最もシンプルな文書のベクトル表現ですが、この処理だけでもテキストデータのさまざまな定量分析が可能になり、とても強力な処理手段です。テキストマイニングのツールで実行される可視化や統計解析は基本的にこのデータ形式をベースにしています。


Bag-of-Words:テキストマイニング分析のベースとなるベクトルデータ形式



 テキストマイニングは現在多くの実行ツールが存在し、自然言語処理の専門知識がなくても分かりやすいインタフェースで直感的な操作が可能です。たとえば、無償のツールでは、立命館大学の樋口耕一教授が作成したKH Coderやユーザーローカル社のAIテキストマイニングなどが、有償のツールでは、NTTデータ数理システム社のText Mining Studioやプラスアルファ・コンサルティング社の見える化エンジンなどが知られています。


 ここでは、テキストマイニングのツールでよくある分析のアウトプット例を3つ紹介したいと思います。1つ目に紹介するアウトプットは、もっとも単純な分析となる単語の頻度集計ランキングです。形態素解析によって抽出された単語や、構文解析によって抽出された係り受け表現の出現頻度を集計しランキングすることで、分析対象としているテキストデータの文書情報では、どのような記述が多いのかという全体像を把握できます。2つ目に紹介するアウトプットは、1 件の文章の中で同時に出現しやすい単語同士をネットワークでつなぐ共起ネットワークという分析です。単語の頻度集計では、それぞれの単語が独立して集計されるため単語間のつながりが分かりませんが、共起ネットワークではつながりのある単語のかたまりが可視化されます。こうしたネットワーク結果から、このテキストデータの文書情報ではどのような話題が形成されているのかを考察できます。3つ目に紹介するアウトプットは、さらに少し高度な分析で、コレスポンデンス分析(あるいは数量化Ⅲ類)というものです。これは、テキストデータに紐づく属性情報(たとえばアンケートデータであれば回答者の性別・年代、特許データであれば出願年や出願人といった属性情報)と文書情報内の出現単語との対応関係を同じ平面上にマッピングしたものです。そのマップの属性と単語の位置関係からそれぞれの属性の記述傾向を把握できます。


テキストマイニングのアウトプットの例



1-2. テキストマイニングの複雑性の問題

 このようにテキストマイニングは、テキストデータの文書情報に含まれる単語や係り受け表現を抽出することを基本とし、その単語や係り受けを単位に集計したり、属性情報とも絡めて統計解析を実行することで、テキストデータ全体の記述傾向を可視化し、現状を把握できる手法となります。


 しかし、対象となるテキストデータがビッグデータになると結果がとても複雑になるという問題が生じます。大量のテキストデータからマイニングで抽出される単語は膨大となるため、その大量の単語を単位に可視化される結果は非常に複雑で解釈性が薄れてしまいます。これではビジネスの課題解決における有用なインサイトを得ることが困難です。


この問題の従来の解決策としては、抽出される単語を大幅にフィルタリングする試みがありますが、これでは頻出する単語しか分析対象とできず、新たな気づきとなるような細かい個別性のある特徴を把握することが難しくなります。また、抽出された大量の単語を人が意味的にグルーピングしていくつかのカテゴリを作成し、そのカテゴリを単位にシンプルに可視化をする試みもしばしば見られますが、そのグルーピングルールは属人的となってしまい、さらにその作業負荷はとてつもなく大きいです。


 ある程度の件数のテキストデータであれば、従来のテキストマイニングのアプローチだけで可視化をしても問題なく傾向を把握できますが、大量のテキストデータとなると従来のアプローチでは限界が生じてしまいます。そこで教師なし学習によって使われ方の似ている単語群を機械的に集約できるトピックモデルという技術を適用することが有効となります。




2. テキストマイニング×トピックモデル

 ここではテキストマイニングの複雑性の問題を解決する手段として、トピックモデルを適用することの有効性について説明します。


2-1. トピックモデルの適用

 トピックモデルは主に1990年代から2000年代初頭にかけて開発が盛んになった自然言語処理技術です。Bag-of-Wordsによる「文書×単語」の行列データをインプットに、教師なし学習で文書に潜むトピックをアウトプットします。そのトピックは文書の集合と単語の集合で構成され、使われ方の似ている単語群は同じトピックに集約されるようになります。トピックモデルを適用することで、単語単位ではなく、集約されたトピックを単位に文書全体の傾向を把握することができます。


 教師なし学習でデータを機械的に集約する方法としては、同じくBag-of-Wordsのデータに対して、階層クラスター分析のWard法や非階層クラスター分析のk-means法といった従来のクラスター分析を適用する方法も考えられます。しかし、以下の点で挙げられるように、トピックモデルは従来のクラスター分析よりBag-of-Wordsのデータクラスタリングという観点において優れています。


(1) 高次元データに対応できる

 従来のクラスター分析では、データ間の距離に基づいて類似度を計算し、距離の近いデータをまとめていきます。しかし、変数の数が大量にある高次元データになると、データ間の距離がどれも大きく離れ、妥当な結果が得られにくくなる「次元の呪い」と呼ばれる問題が起きてしまいます。Bag-of-Wordsは大量の単語を列に取った高次元のデータとなるため、こうした従来のクラスター分析手法は適していません。これに対してトピックモデルでは、距離に基づかず、高次元の情報をできるだけ保持した形でその次元数を削減し、低次元に変換できる手法です。そのためトピックモデルはしばしばデータの次元削減でも用いられ、次元削減法と呼ばれることもあります。トピックモデルを適用すれば、膨大な単語で構成されるBag-of-Wordsの高次元データでもトピックに集約することができます。


(2) 行の要素と列の要素を同時にクラスタリングできる

 上記のような従来のクラスター分析手法は、列をベースに行をクラスタリングする、あるいは行をベースに列をクラスタリングするため、どちらか一方のみがクラスタリングの対象となります。トピックモデルでは、トピックは行の要素と列の要素の2つの軸に基づいて抽出され、各トピックに対する行の要素と列の要素のそれぞれの関連度が同時に計算されます。つまり、Bag-of-Wordsによる「文書×単語」の行列データに適用すれば、一つのトピックに対して文書と単語が同時にクラスタリングされていると解釈できます。このように、抽出されるトピックは行と列の2つの軸の情報を持つことができるため、従来のクラスター分析よりも情報量が多い結果となり解釈がしやすくなります。


(3) ソフトクラスタリングできる

 上記のような従来のクラスター分析手法はハードクラスタリングと呼ばれ、ある要素が一つのグループに所属してしまうと他のグループには重複して所属が許されません。一方、トピックモデルはソフトクラスタリングとも呼ばれ、すべての要素がすべてのトピックにまたがって所属し、その関連度合いが計算されます。これにより、複数の意味を持つ要素がある場合でも柔軟なクラスタリングを実現できます。



2-2. トピックモデルの各手法とテキストマイニングに適用する手法の選定

 トピックモデルの代表的な手法には、「LSA」「PLSA」「LDA」などがあります。トピックモデルの中で最も単純な手法はLSAですが、これは「文書×単語」の行列を特異値分解によって分解することでトピックを抽出します。PLSAはLSAを確率的な枠組みで発展させた手法です。LDAはPLSAをさらにベイズ的に拡張させた手法で、ディレクレ分布という確率分布を事前分布に導入しています。それぞれの手法の詳しい解説は、『自然言語処理コラム ~トピックモデル編~』のページをご参照ください。


 トピックモデルの中ではLDAを適用することが一般的です。しかし、LDAがあらゆる課題で優れたトピックモデルということではありません。トピックモデルの各手法の特徴を俯瞰的に理解し、解決したい課題に応じて使い分けることが重要です。LSAやPLSAは、結果が観測データに完全に依存するので、過学習を起こしやすいことがデメリットとして挙げられ、そうした背景から事前分布を導入したLDAが開発されています。ただ、これは新しい文書の推定を課題としたときのデメリットではないでしょうか。たとえば、情報検索などへの適用を想定した場合、学習データにないテキストデータのトピックを推定できることは確かに重要なので、LDAを適用することが相応しいと考えられます。では、テキストマイニングに適用する場合はどうでしょう。先述したテキストマイニングの複雑性の問題を解決する手段としてトピックモデルを適用する場合、テキストマイニングが現状把握をするための手法であることを考えれば、新しいデータのトピックを推定することよりも、観測データのありのままの特徴をトピックで反映できることが重要であると思います。LSAやPLSAは観測データに依存した過学習でトピックを抽出するモデルですが、観測データに対する再現度は高く、その観測データ固有の特徴をそのまま反映できるモデルと捉えることができます。


 この点において、LDAはディレクレ分布という確率分布を事前分布に仮定していることで、観測データをそのまま再現するモデルではなくなっています。またLDAは新しい文書の推定ができる高い汎化性能を持つ一方で、抽出されるトピックの内容が一般的で抽象度が高くなることがあります。さらに、LDAはディレクレ分布のハイパーパラメータによって結果が変動しやすく、その設定の仕方、推定の仕方が簡単ではありません。テキストマイニングは専門知識がなくても直感的に操作できる使いやすさが特長の一つであるため、ビジネス現場では文系理系問わず人気の分析手法となっています。こうした点においても、より高度なLDAを適用することは複雑で扱いにくさが生じてしまう懸念があります。


 したがって、テキストマイニングの「複雑性の問題」を解決する手段としては、LDAよりもLSAやPLSAの方が適していると考えられます。その中でもPLSAは、LSAのようなTF-IDFなどの前処理がいらず、トピックの結果が確率で解釈しやすく、かつ各トピックが独立しているという特徴を有していることから、当社ではPLSAがテキストマイニングに適用するトピックモデルの手法として適していると考えています。



2-3. PLSAの適用によるトピック抽出

 ここではNomolyticsで採用しているトピックモデルのPLSAついて、より詳細に解説します。PLSAは自然言語処理に限らずデータクラスタリングや次元削減法として用いられる手法です。自然言語処理に限定せず、より一般的にPLSAという手法を表現すると、共起行列と呼ばれる行列データをインプットに教師なし学習をし、行の要素xと列の要素yの背後にある共通する特徴となる潜在クラスzを抽出する手法となります。自然言語処理の分野では、共起行列をBag-of-Wordsの「文書×単語」行列とし、潜在クラスをトピックと呼んでいます。つまり、文書xとそこに出現する単語yの間には潜在的な意味クラスzがあることを想定し、文書と単語に共通するトピックを抽出しているということです。これにより文書全体をいくつかのトピックを軸に解釈できるとともに、使われ方の似ている単語群をそのトピックの構成要素として集約できます。PLSAは、文書xと単語yの同時確率P(x,y)を3つの確率分布①P(x|z)、②P(y|z)、③P(z)に分解して表現します。この3つの確率分布がPLSAの実行によって得られるアウトプットになりますが、その計算過程の詳細は、『分析コラム ~PLSA(確率的潜在意味解析)~』のページをご参照ください。


PLSAのグラフィカルモデルとインプット・アウトプット



 たとえば、先ほど例に示したホテルの口コミデータのBag-of-WordsにPLSAを適用した場合、アウトプットとして得られる「文書×トピックの確率分布P(x|z)」「単語×トピックの確率分布P(y|z)」「トピックの周辺確率P(z)」は以下の図のようなイメージとなります。この結果では、ホテルの口コミデータから「広さ」「清潔さ」「利便性」「スタッフ」「朝食」という5つのトピックが抽出されたと仮定したときのイメージです。P(x|z)はトピックzに対する各文書xの所属確率を示しており、P(y|z)はトピックzに対する各単語の所属確率を示しています。P(x|z)はそれぞれのトピックにおいてすべての文書の所属確率を合計すると100%となり、P(y|z)はそれぞれのトピックにおいてすべての単語の所属確率を合計すると100%となります。またトピックの周辺確率であるP(z)も、すべてのトピックの確率を合計すると100%となります。こうした確率分布として得られるアウトプットは解釈性に優れており、PLSAを適用することで、どのような単語群で構成されるトピックが抽出され、それぞれの文書はどのトピックの要素が多いのか把握することができます。


「文書×単語」行列にPLSAを適用して得られるトピックの確率分布の例



 このようにテキストマイニング×PLSAの適用により、大量のテキストデータを複雑な単語単位ではなく、集約されたトピックを単位としてシンプルに傾向を分析できるようになります。




3. テキストマイニング×ベイジアンネットワーク

 ここではテキストマイニングにベイジアンネットワークという確率的な因果構造モデルのAI技術を応用することの有用性について説明します。テキストマイニングの分析が表層的な傾向の現状把握に留まっていることを指摘した上で、それを解決する手段として、データに潜む因果構造をモデル化し、確率的な推論を実行できるベイジアンネットワークの概要と応用可能性を説明します。


3-1. テキストマイニングの現状把握分析の限界

 テキストマイニングの分析では、全体像としてどのような単語が多く使われている傾向にあるのか現状を把握できます。また、アンケートデータにおける回答者の性別・年代や、特許文書データにおける出願年や出願人といった属性情報がテキストデータに紐づいていれば、その属性別に出現しやすい単語の傾向の違いも把握できます。さらにテキストマイニングにトピックモデルを適用すれば、この傾向をトピックという分かりやすい単位で把握できるようになります。


 ただ、この傾向分析で把握できるのは表層的な傾向であり、その属性で出現しやすい単語あるいはトピックが多い順に列挙された結果となります。その属性との統計的な関係の強さの可視化や、その出現傾向に影響を与えている要因の探索まではできていません。また、テキストマイニングは現状を把握する分析であり、その現状から状況が変化したときに、その変化に伴って結果がどのような影響を受けるのかシミュレーションすることはできません。ビジネスの課題解決において、まずは現状を知ることはきわめて重要ですが、知るだけでは課題解決にはなりません。その現状がどのような要因と関係しており、どのようなアクションを取れば現状の結果をどの程度コントロールできるのか、こうした要因の関係構造まで探索することが課題解決の施策検討において要となります。


 このようにテキストデータに潜む因果構造まで探索するような深い分析を実行する手段として、ベイジアンネットワークというAI技術を適用することが有効となります



3-2. ベイジアンネットワークの概要

 ベイジアンネットワークは、複数の変数の確率的な因果関係を有向リンクのネットワーク構造で表わし、その関係の強さを条件付確率で表現した確率モデルです。このモデルを用いることで、ある変数の状態を条件として与えたときの他の変数の起こりうる確率を推論することができます。ベイジアンネットワークは、①確率変数、②確率変数間のリンク構造、③各リンクの条件付確率表の3つによって定義されます。ベイジアンネットワークはすべての確率変数の同時確率を、各変数間のリンク関係が示す条件付確率の連鎖律で表現しています。そのリンク構造は、観測データと変数の定義に基づき、それを数学的に最もよく説明する(尤度を最大化する)モデルを学習して獲得されます。これにより各変数間の確率統計的な関係構造を把握することができます。また、構築されたモデルを用いることで、観測した変数群から未観測の変数の確率分布を条件付確率表に基づいて推論することができます。なお、ベイジアンネットワークで用いる確率変数は質的変数(カテゴリカル変数)となるため、量的変数の場合は閾値を設けて事前にカテゴリに分割する必要があります。


ベイジアンネットワークの概要図



 ベイジアンネットワークの特長には以下の点が挙げられます。

(1) 要因の関係構造を理解できる

 どの変数がどの変数に影響しているのか、構築されたモデルの構造によってデータ全体に潜む要因関係を理解することができます。なお、ベイジアンネットワークでモデル化される有向リンクの関係性は、本当の因果関係ではなく、あくまでも確率的な因果関係となります。本当の因果関係は原因と結果の関係ですが、確率的な因果関係では、その変数を条件に与えた条件付確率を形成する方がモデルの尤度(データへの当てはまりの良さ)が向上するというものになります。


(2) モデルの構造を指定できる

 各変数の関係構造は、観測データに基づいて数学的な基準のみで探索することもできますが、人間が構造を指定することもできます。たとえばこの変数とこの変数は関係があることは分かっているといった経験則があったり、この変数群とこの変数群の関係にフォーカスして確認したいというような目的が定まっていれば、それをモデル構築の条件に採用することができ、それ以外の部分を観測データから数学的に探索するということもできます。たとえば、特許文書情報から用途と技術の関係を分析するという点においても、用途を実現する上での重要な要素技術を把握したいときは用途群⇒技術群という向きのリンク構造、技術を応用する用途の展開を把握したいときは技術群⇒用途群という向きのリンク構造を指定してモデルを構築すると効果的です。つまり業務における経験則や分析目的といった事前知識と数学のハイブリッドでより実務に即したモデルを構築できます。


(3) 互いの変数間の関係を把握しさまざまな方向からの推論を実行できる

 ベイジアンネットワークでは、目的変数と説明変数の区別なく変数の関係をモデル化し、ある変数を条件に与えたときの他の変数の確率を推論することができます。回帰分析や決定木分析、ニューラルネットワークなど、通常のモデリング手法では、目的変数と説明変数を設定し、一つの目的変数ごとにモデルを構築する必要があり、一つの目的変数に対する説明変数の関係しか把握することができません。また構築されたモデルを用いた推論の実行では、複数の説明変数群から一つの目的変数を推論するという一方向の推論に限定されます。一方、ベイジアンネットワークでは目的変数と説明変数の区別がないため、それぞれの変数が互いにどのような関係性を持っているのかという構造を把握できます。また、モデルを推論で用いる場合も、その推論対象と推論条件とする変数は自由に設定でき、さまざまな方向から各変数の起こり得る確率を推論できます。


(4) 非線形の関係や交互作用の効果も表現できる

 ベイジアンネットワークは回帰分析のように線形処理によってモデルを構築するのではなく、確率論による非線形処理のモデルであるため、非線形の関係がある複雑な現象でもモデルで表現できます。また、ある条件が揃うときにだけ効果が発揮されるというものや、ある条件とある条件が組み合わさると逆の効果に転じてしまうといった交互作用がある場合でも、確率的に意味のある関係としてモデル化することができます。



3-3. テキストマイニングにベイジアンネットワークを適用するメリット

 本来ベイジアンネットワークはテキストデータを分析対象として開発された技術ではありません。しかし、ベイジアンネットワークを応用することで、テキストデータの中に潜む要因関係を構造化することが可能となります。たとえば、テキストマイニングによって構築されたBag-of-Wordsのデータの単語一つひとつを確率変数に設定し、その変数間の関係をベイジアンネットワークでモデル化した実施例を紹介したいと思います。これは当社代表の野守が産業技術総合研究所に所属していたときに実施し、人工知能学会論文誌に投稿した取り組みです。この取り組みでは、病院で収集された子どもの傷害事故の診療記録データ4,238件を対象に、事故状況がテキストで記されたデータにテキストマイニングを実行することで事故に関わる製品や行動の単語を抽出し、それら一つひとつを確率変数としています。また子どもの性別・年齢の情報や事故の情報も確率変数とし、これらの関係をベイジアンネットワークでモデル化しており、その結果が以下の図のようなネットワークモデルとなります。このベイジアンネットワークの確率的因果構造モデルを用いることで、どのような発達段階の子どもはどのような製品でどのような行動を取る可能性があり、どのような事故にいたる危険性があるのかという、事故発生のプロセスを確率的に推論することができます。


Bag-of-Wordsにベイジアンネットワークを適用したモデルの例



 このようにテキストマイニングにベイジアンネットワークを適用することのメリットをまとめると、主に以下の2つが挙げられます。

(1) テキストデータに潜む要因関係を構造的にモデル化できる

 テキストマイニングでは、文書でどのような単語が多く使われる傾向があるのか、またその傾向が属性によってどのような違いがあるのか把握できます。ここにベイジアンネットワークをさらに適用することで、そうした傾向がどのような要因によって影響を受けているのか、あるいは他の事象に影響を与えているのかという、統計的な関係性を構造的なモデルとして可視化できます。たとえば上記のモデルの例では、子どもの製品に対する行動はどのような発達段階を要因としており、またどのような事故の要因となり得るのか、その統計的な関係性を分析できています。また、先ほどはホテルの口コミデータのBag-of-Wordsを例に取り上げましたが、口コミデータには投稿者の性別や年代、評点といった属性情報が紐づいていることが多いので、ベイジアンネットワークを適用すれば、こうした属性情報と口コミコメントの内容の間に存在する統計的な関係性もモデル化できます。


(2) 現状把握だけでなく状況の変化に伴うシミュレーションができる

 先述したとおり、テキストマイニングは基本的に文書の記述傾向の現状把握をする手法ですが、その現状から状況が変化したときに、それに伴って結果がどう変化・影響を受けるのかシミュレーションすることはしません。ここにベイジアンネットワークをさらに適用することで、その確率的なシミュレーションが可能になります。上記(1)で説明したように、ベイジアンネットワークを適用することで、テキストデータに潜む要因関係を構造的にモデル化できるようになります。そのモデルを利用することで、たとえば上記のモデルの例では、子どもの発達段階の変化によって行動の確率がどの程度変化するのか、同じ行動でも製品が異なれば起こり得る事故の確率がどの程度変化するのかというように、与えた条件に対する結果の挙動を確率的にシミュレーションすることができています。たとえば、「コイン」という製品では「飲む」という行動が57.3%で、「誤飲」という事故が32.6%と確率が高いことがシミュレーションで計算されています。また「ミニカー」という製品では「押す」という行動が50.0%、「乗る」という行動が23.8%で、「転倒」という事故が31.4%、「転落」という事故が27.1%と確率が高く、さらにこれらは1歳児で確率がさらに高くなることがシミュレーションで計算されています。こうした分析によって、子どもの事故の発生を抑制するための具体的な施策をデータドリブンで検討できます。


 また、先ほど例に取り上げたようなホテルの口コミデータにベイジアンネットワークを適用し、口コミコメントに紐づく投稿者の性別・年代や評点という属性を確率変数に組み込んだモデルを構築すれば、そのモデルを用いて以下のようなシミュレーションが可能です。たとえば、性別・年代が変わると口コミのコメントの内容がどの程度変化するのか、コメントの内容が変わると口コミの評点がどの程度変化するのか、確率的にシミュレーションを実行できます。こうした分析によって、たとえばターゲット顧客層の関心に応じたプロモーションを設計したり、顧客満足度を高めるためのサービス改善などを検討できます。つまり、ベイジアンネットワークで構築されたモデルを用いることで、実施する施策を条件として与えたときの効果を評価することや、その効果を最大化させる条件を探索することもでき、ビジネスの課題解決において効果的なアクションを検討することができます。



3-4. テキストマイニング×ベイジアンネットワークの課題

 上記のモデルの例で取り上げた子どもの傷害事故の分析例では、テキストマイニングで抽出された単語一つひとつを確率変数に採用しているため、構築されたモデルはとても複雑で解釈が難しいものとなっていることは一目瞭然です。つまり、Bag-of-Wordsのデータにそのままベイジアンネットワークを適用して、単語一つひとつを確率変数にすると、重要な傾向や気づきが埋もれてしまう懸念があります。本来モデルとはデータに潜む特徴や傾向を抽象化したものであり、情報が集約されて全体としてシンプルに表現されていること望ましいものです。


 そこでテキストマイニングに直接ベイジアンネットワークを適用するのではなく、まずトピックモデルを適用することを考えます。この処理を挟むことによって、単語一つひとつではなく、単語群が集約されたトピックを確率変数として定義し、その上でベイジアンネットワークを適用します。つまり、Bag-of-WordsではなくBag-of-Topicsのデータにベイジアンネットワークを適用します。これによって、テキストデータ全体に存在する要因関係をよりシンプルに把握できるようになります。


 このようにして、テキストマイニング、トピックモデル(PLSA)、ベイジアンネットワークの3つの技術を組み合わせてテキストデータを分析するNomolyticsという手法が生まれています。




4. Nomolyticsにおける技術的工夫ポイント

 Nomolyticsでは、「テキストマイニング×PLSA」と「PLSA×ベイジアンネットワーク」というそれぞれの手法を連携する際の処理に独自の工夫を施しており、それがNomolyticsの技術的な特徴にもなっています。以下にその連携の工夫について説明します。


4-1. 「テキストマイニング×PLSA」の工夫

 先述したトピックモデルの解説では、トピックモデルは従来のクラスター分析と異なり行と列を同時にクラスタリングできると説明しました。つまり、PLSAの共起行列の行と列は、双方が十分意味を持つ情報で構成すれば、抽出されたトピックの意味は2つの軸から解釈することができます。以下の図(左)に示すように、一般的なPLSAの適用では、「文書×単語」という構成のBag-of-Wordsを共起行列としてインプットします。しかし、行に設定された「文書」とは文書IDの情報であり、それ自体に意味は持たないため、抽出された潜在クラスの意味解釈には使用しにくい情報です。また、「文書×単語」のBag-of-Wordsは、ほとんどは0となる疎なデータであるため、文書間・単語間で違いが現れにくく、特徴がクリアなトピックが得られにくいという問題が生じます。


 そこでNomolyticsでは、共起行列の構成によって解釈のしやすいトピックを抽出する工夫を施しています。たとえば、「名詞の単語×動詞の単語」というように、行と列をそれぞれ異なる品詞の単語で構成する方法や、以下の図(右)のように「単語×係り受け」という構成で、軸の一方を係り受け表現(文法的なつながりのある単語のペア)とする方法を取ります。こうした「単語×係り受け」の共起行列にPLSAを適用することで、単語という話題の観点となる軸と、その観点の具体的な内容となる係り受け表現を軸にクラスタリングができ、より文脈上近しい言葉・表現でまとめられた解釈のしやすいトピックを抽出できることが期待できます。また、この共起行列は各単語と各係り受けが同時に出現する文章数(共起頻度)が値として入るクロス集計型の行列で、一般的なPLSAの共起行列のような0ばかりの疎なデータとは異なり密なデータとなりやすくなります。これにより、スパース性の問題の影響を受けにくく、よりまとまりのあるクリアなトピックを抽出できることが期待できます。さらにその共起行列のサイズは一般的なPLSAで用いる共起行列に比べて、特に行数においてとても小さいものになり、計算時間も大幅に削減できる効果があります。


NomolyticsにおけるPLSAの共起行列構成の工夫



4-2. 「PLSA×ベイジアンネットワーク」の工夫

 Nomolyticsでは抽出されたトピックを確率変数として扱い、ベイジアンネットワークを適用することでトピック周辺に存在する要因関係を構造的にモデル化しますが、トピックを確率変数として扱うための変換処理にも工夫があります。まず、「文書×単語」という共起行列をインプットとする一般的なPLSAで抽出されるトピックは、所属確率という値によって各文書IDにトピックが紐づいた形で結果が得られます。そのため、この所属確率という連続値をカテゴリ化処理すれば、各トピックは元のテキストデータに対応する確率変数としてそのまま扱うことができます。一方、Nomolyticsで採用する「品詞Aの単語×品詞Bの単語」という構成の共起行列や、「単語×係り受け」という構成の共起行列で抽出されたトピックでは、各単語や各係り受けはトピックに紐づいて所属確率が計算されているが、元のテキストデータには紐づきがされていない結果となります。つまり、元のテキストデータと抽出されたトピックの紐づきを計算する処理が必要になります。そこで、各テキストデータの文書情報に含まれる単語・係り受けと、その単語・係り受けが各トピックに対して持つ所属確率から、そのテキストデータに対する各トピックの該当度を示すスコアを確率的に計算します。最終的にはそのスコアに閾値を設け、各トピックに該当するか否かを1,0のフラグに変換し、トピックの確率変数を作成します。


 スコアの計算では、1件の文書データには複数の文が存在するため、まず文単位(句点「。」で区切られたセンテンス単位)に各トピックのスコアを計算し、それを文書単位に集約します。なお、文SにおけるトピックTのスコアはP(S|T)/P(S)で定義します。これは事後確率と事前確率の比率を示し、リフト値と呼ばれることもある指標です。トピックTを条件とすることでその文Sの発生確率が何倍になるのかを示すため、そのトピックをよく話題にしている文ほど値は高くなります。そして、このP(S|T)/P(S)で定義されるスコアを文単位に計算し、それを文書単位に見たとき、各トピックのスコアの最大値をその文書のトピックスコアとして採用します。さらにこのスコアに閾値を設定し、各文書に対してそのトピックの該当有無を示す1,0のフラグ情報を付与することで、各トピックを確率変数に変換します。なお、P(S|T)/P(S)で定義したスコアは本来1が基準の目安となります。つまりスコアが1より大きいということはトピックTを条件にすることで文Sの確率が上昇するということで、トピックTと文Sの間に関係があると判定できます。実際の分析では、各トピックの特徴をより強く抽出するため、特に関連の強い文書に対して該当ありのフラグを立てることを考え、その閾値は基準の1倍よりも厳しく設定します。以下の図では、トピックのスコアを計算し、確率変数化するプロセスをまとめています。


Nomolyticsにおけるトピックのスコアリングと確率変数化の工夫



Copyright 2025 Analytics Design Lab Inc. All Rights Reserved.