サイトアイコン IoTNEWS

自然言語処理のAIエンジン「KIBIT」のしくみと活用事例 ―FRONTEO取締役CTO 武田秀樹氏インタビュー

自然言語処理のAIエンジン「KIBIT」のしくみと活用事例 ―フロンテオ取締役CTO武田秀樹氏インタビュー

「自然言語処理」とは、私たちが普段使っている言葉(自然言語)を解析する人工知能(AI)の技術だ。用途としては、「翻訳」や「チャットボット」などがよく知られている。しかし、「自然言語処理」とひとくちにいっても、技術はすべて一緒ではない。求められるアルゴリズムは用途によってさまざまであり、AIエンジンの強みも異なってくる。

株式会社FRONTEOが手がける「KIBIT」は、人間が書いた文章(テキストデータ)から、目的に応じて必要なデータを抽出する自然言語処理のAIエンジンだ。「KIBIT」という名前には、人間の微妙な心の動きを意味する「機微」(KIBI)と、情報量の最小単位を意味する「ビット」(BIT)を組み合わせ、「人間の機微を学習できる人工知能」というコンセプトが込められている。

KIBITは本来、訴訟に必要な証拠を発見し、弁護士をサポートする技術として開発された。訴訟では、弁護士は限られた時間の中で大量の資料の中から証拠となる文書を見つける必要がある。そこでKIBITは、「自然言語処理」と「機械学習」を使うことで、弁護士の経験や勘に基づく「暗黙知」を習得し、弁護士の判断基準に沿って大量のテキストデータから証拠の抽出を行う。また、KIBIT独自のアルゴリズムは、いつも豊富な資料がそろえられるとは限らない訴訟の現場のために、少量のテキストデータから求めるデータを抽出できる能力が実装されている。

文章から、証拠などの人間が求めるデータを見つけだしてくれるKIBITでは、どのような自然言語処理の技術が使われ、どのようなユースケースでの展開が進んでいるのか。株式会社FRONTEO 取締役CTO 行動情報科学研究所 所長の武田秀樹氏に話を伺った(聞き手:IoTNEWS代表 小泉耕二)。

目的によって異なる、自然言語処理のしくみ

IoTNEWS 小泉耕二(以下、小泉): 初めに、「自然言語処理」とはどのような技術でしょうか。

FRONTEO 武田秀樹氏(以下、武田): 一言で説明すると、「人間が普段使っている言語(=自然言語)をコンピュータで処理する技術」です。自由に記述された文章の言葉を、現在の人工知能(AI)の最大の特徴である「コンピューティングパワー」を使って解析します。

自然言語処理の難しさは色々ありますが、一つは「数値ではない」ことです。AIは一般的に、プログラムやアルゴリズムを使いますが、文字や文章のままでは処理できません。まず、何らかの数値データに変換する必要があります。その際に、どのような変換の方式がベストなのか、処理方法やアルゴリズム、言語の特性などから考慮しなければならない点が多くあります。

自然言語処理では、言葉を文字や単語の単位で切って処理をすることが、第一歩となる。名詞、動詞、助詞、形容詞などの品詞を判別することも、構造を捉えるための大きなヒントとなる。

武田: また、自然言語処理には色々な分野があります。たとえば、「対話システム(チャットボット)」です。対話システムでは、話されている言葉にどんな文脈や背景があるのかを認識しなければならないという、固有の難しさがあります。たとえば、次のような会話を考えてみます。

A:「今日、ラーメンを食べに行こう。」
B:「いいね、どこにする?」
A:「品川で。」

武田: この場合、「いいね、どこにする?」「品川で。」という質問と回答のセットには、「ラーメン屋」という情報が含まれていないため、「品川」が何を指しているのかわかりません。

このように、短い言葉が繰り返される対話システムでは、正しく「文脈」をつかみにくいという難しさがあります。そのため、その一つ前にある「今日、ラーメンを食べに行こう。」といった前後のコンテクストをいかに考慮して解析するかなどが、ポイントとなります。

あるいは、「翻訳」の分野もまた異なります。翻訳の場合、関係づける言葉の意味は同じですが、使われている言語が異なります。この場合には、できるだけ多くの「翻訳例」をデータとして集め、解析することが有効となります。

これからご説明するKIBITの場合は、ある程度まとまった情報が書かれている文章が解析の対象になるため、難しさのポイントが以上の分野とは異なります。

小泉: 自然言語処理といっても、それぞれ必要な技術のポイントが異なってくるのですね。

武田: そうなんです。課題や目的によって、使える自然言語処理の技術やノウハウは違います。もちろん、共通の要素技術はあります。ただ、何か突出したアルゴリズムがあって、それを使えばすべてに対応できるということはまずありません。

次ページ:KIBITを使って、「談合の証拠」をつかむ

KIBITを使って、「談合の証拠」をつかむ

小泉: それでは、「KIBIT」について詳しく教えていただけますか。

武田: 事例を一つご紹介します。競合の企業どうしが価格調整を行う「談合(カルテル)」に関するメールの調査です。

企業の談合を調べる場合、もし当事者どうしが「談合」という言葉をメールで使っているなら、「キーワード検索」ですみます。ただ、普通は「談合」というストレートな言葉を使っていることはまずありません。

そんな場合でも、KIBITは証拠となる言葉を見つけだしてきます。たとえば、次の「飲み」や「居酒屋」という言葉です(下の図)。

小泉: そうなんですか。一見、普通に使う言葉に思えますが。

「カルテル調査」の事例:KIBITが不正を示唆するメールを見つけだす。

武田: もちろん、これだけでは「談合」に関わるキーワードとはなりえません。あらかじめ、A社とB社で談合がありそうだと目星をつけたうえで、メールを調べるから証拠になるのです。

小泉: なるほど。A社とB社は談合の疑いがあるから、それぞれの営業担当が居酒屋に飲みに行くのはおかしいのではないかと、あらかじめ仮説を立てるわけですね。

武田: そうです。この例の場合、あくまで目的は訴訟の「証拠を見つける」ためです。談合の疑いはあっても、具体的に何が行われていたのか明確にできなければ、証拠にはなりません。仮説にもとづいて、関係がありそうな言葉をKIBITが自動的に特徴づけ、「証拠」を選んできます。

また、談合の場合、業界が変われば競合する企業は変わってきます。ただ、業界が違ったとしても、同じ人間ですから、同じようなメールのやりとりとしている場合があります。

そこで、あえて固有名詞を学習データから外すなどして、あらゆる業界の談合の調査に汎用的に使えるAIエンジンをつくる、といったアプローチも行っています。

実際の人間の行動は多様ですから、一つの汎用モデルで調査が完結できるということはめったにありません。そのため、案件個別のモデルと組み合わせて、汎用モデルを利用するケースもあります。

小泉: なるほど。

武田: また、品詞をどう見るかが、KIBITにとって重要なポイントです。名詞と動詞は、文の主語/述語/目的語に使われるため、比較的汎用的に使えるのですが、形容詞や副詞は特徴がかなりぶれることがあります。

使う人の主観によって、その意味が変わってくるからです。たとえば、「やばい」という言葉のように、いいことなのか、悪いことなのか、どちらを指しているのかわからない曖昧な言葉がありますよね。このように、解釈のぶれが文脈によって大きい言葉は、学習モデルからは外した方がいい場合が多いです。

株式会社FRONTEO 取締役CTO 行動情報科学研究所 所長 武田秀樹氏

小泉: 機械学習のモデルを作成する際のポイントについてお話がありましたが、KIBITの開発では、具体的にどのようなことを行っているのでしょうか。

武田: まず重要なことは、解決したい課題が何かです。その解決に向けて、KIBITのAIエンジンを最適化していくことになります。

たとえば、ある事業部門で、文章をチェックする業務があるとします—―そして、その業務に今は8時間かかっていますが、半分の4時間に削減したいという課題があるとします。

その業務をブレイクダウンしていくと、A、B、Cという3種類のドキュメント(文書)があり、Cだけすごくチェックに時間がかかっている、といったことがわかってきます。具体的には、Cは6時間かかるけれども、AとBは合わせて2時間。そうすると、Cを3割に削減できたら、全体としては大きな効果がある。

では、Cの業務時間を削減することを目標にしたうえで、Cの文章を詳しく見ていきます。すると、Cの文章に時間がかかるのは、「業務に関係のない言葉が多く含まれているからだ」などとわかってきます。

では、その業務に関係のない言葉を見つけるためには、どのようなアルゴリズムを使い、どのような学習を行えばいいのか、ということを考えていく必要があります。ここで、データサイエンティストの出番になります。

小泉: 業務を理解したうえで、どんなアルゴリズムが使うべきかなど、方針を立てるのがデータサイエンティストの役割ということでしょうか。

武田: そうです。データサイエンティストが方針を立てた上で、「アノテーション」(KIBITに、そのデータが正解か不正解かを学習させる)という作業を行います。

アノテーションは、業務の専門家が判断した結果や、過去に起こった結果(たとえば、退職者を見つけたいなら、実際に退職しているという結果、結婚相手を見つけたいなら、実際に結婚しているという結果)を利用する場合が多いです。

アノテーションを行ったうえでデータを入れていけば、あとはAIが自動で特徴を見つけてきてくれます。ただし、思ったような結果が得られない場合は、データサイエンティストが再度、どのようなデータを学習させればよいのか、データそのものに問題があるのか、アノテーション自体に問題があるのか、または他のアルゴリズムを利用した方がよいのか、などを検証していく必要があります。

次ページ:【事例紹介】KIBITを使って、特許調査・分析業務を効率化
※インタビューの続きは、4ページをご覧ください。

【事例紹介】KIBITを使って、特許調査・分析業務を効率化

このページでは、KIBITのユースケースを紹介する。1つ目は「金融」の分野だ。

たとえば、投資信託を販売するときの「違法な勧誘」を調査する際に、KIBITが使われる。投資信託の営業担当は、理屈にもとづかず、「絶対大丈夫です」や「問題ありません」といった言葉で、巧みに消費者を勧誘することがある。また、消費者もなぜ投資する必要があるのか、その動機が曖昧な場合がある。

金融分野で使われるKIBIT

そこで、営業担当と消費者のやりとりをKIBITで調査することで、違法な勧誘や動機が正しくない勧誘の実態を見つけ出すのだ。これは販売する側としても、営業のスキルを平準化できるというメリットがある。

次は「特許」に関連する事例だ。新たな技術を開発した企業が特許出願を行う。その際には、既に同じような技術が特許として登録されていないか調べる必要がある。その検索の際に、膨大な特許文献のデータベースから、自社の特許を学習したKIBITが、同じような技術の「特徴」を持つ特許を探してきてくれるのだ。

最後に、社員の「離職防止」の事例だ。ある企業には、新入社員2,000名分の面談記録があった。その中から、退職する可能性の高い社員をKIBITが抽出し、その後上司などが追加でフォローをしたグループ、フォロー措置をしなかったグループに分けた比較テストを行った。

離職防止に使われるKIBIT

すると、追加フォローをしなかったグループの離職率37%に対し、追加フォローをしたグループは16%で、その差は21%だった。この結果から、KIBITが退職リスクの高い社員を抽出でき、同時にそうした社員に適切な対策を打てば、退職を防ぐことができる可能性があることがわかった。

この場合、KIBITの教師データになるのは、既に退職した社員の面談記録だ。たとえば、「迷惑をかけている気がする」や「まだまだ甘いような気がする」といった、一見前向きに見える言葉から、実はかなり不安な心情にあったということが、KIBITによってわかるのだ。

次ページ:新しい技術を使っても、AIエンジンは必ずしもよくならない

新しい技術を使っても、AIエンジンは必ずしもよくならない

小泉: KIBITのアルゴリズムは、どのように進化してきているのでしょうか。

武田: KIBITのアルゴリズムの特徴は、少量のデータでも精度の高い学習モデルをつくれることです。AIがどんな未知のデータに対しても正確な判断を下せることが理想ですが、現実には微妙な判断を求められる境界線にあるデータが存在します。

より多くの種類の未知データに対応するには、より広範な特徴を学習し、カバーできる網羅性を確保しなければなりません。

しかし、特徴を広く学習しすぎると、微妙な境界にあるデータの中で、間違いを正解とみなす確率も上がってしまいます。学習する特徴を広げすぎないことも重要なのです。

その二つが両立すると完璧なAIマシンができるわけですが、普通はトレードオフの関係にあります。広く特徴を取ろうと思ったら、精度が落ちます。特徴をしぼると、網羅性が損なわれます。

少ないデータでも精度の高い学習モデルをつくれるというKIBITのメリットを損なわず、より精度を上げるために、広すぎず、せますぎず、いかに程よいデータを教師データとして学習させるか、というノウハウを強化してきました。

小泉: 自然言語処理の技術そのものは、どのように進化してきているのでしょうか。

武田: たとえば一つのトレンドとして、語と語の関係性を以前より理解できるようになってきていることがあります。

コンピュータで自然文を正しく解析する上で、それを難しくしているのは、「言葉」が固定された一つだけの意味を持つのではなく、文脈によって意味がさまざまに変わる多義性を持っているからです。

事前にデータを学習しておくことで、自動的に語と語の関係性を解析し、文脈に応じた解析が可能になってきています。

例えば、わかりやすい例として、「シノニム(類義語)」の理解があります。以前は辞書を整備することが、類義語を解析する上での手段でしたが、同じ意味で使われる言葉を、自動的に判別することができるようになってきています。

小泉: そうした新しい技術を取り込むことで、KIBIT自体の精度も向上してきているのでしょうか。

武田: はい、解析に関わるさまざまな新しい技術を取り入れ、向上しています。

一方、よく誤解されることですが、新しくできたアルゴリズムを使ったからといって、必ずしもAIエンジンのすべてがよくなるわけではありません。

さきほど、課題に応じて最適なアルゴリズムを使うことが重要だと申し上げましたが、やはりAIにとっての肝はそこにあるのです。使えるアルゴリズムのバリエーションが広がり、選択肢が増えるのはいいことですが、必ずしもすべてが一つの手法でよくなる、というわけではありません。

小泉: なるほど。第3次AIブームが到来してから、何でもかんでもディープラーニングを使おうという考え方が一時期広まったように思いますが、ディープラーニングも得意分野と苦手分野があり、万能ではありません。やはり、それぞれの課題や用途によって、必要な技術を見定めていくことが重要ということですね。

武田: おっしゃるとおりです。

株式会社FRONTEO 取締役CTO 行動情報科学研究所 所長 武田秀樹氏

小泉: KIBITのようなAI技術によって、人間でもわからないような、言葉の裏にある意味がわかるというのは、とても面白いことですよね。

武田: そうなんです。実は、「KIBIT」が学習するデータには2種類あります。「結果」と「判断」です。

「結果」とは、過去に実際に起こったことや目的に応じて、正解と不正解が明確にわかるものです。たとえば、先ほどの「離職してしまった人」などです。

一方、「判断」は、その時点では正解と不正解はわからないデータのことです。たとえば、談合や金融のケースなど、業務の専門家が状況を見て、正解と判断する場合です。

人間にとって、膨大な情報をふまえて質の高い判断を選ぶのは難しいことです。それはコンピュータの方が得意です。人間の仕事においては、「雑だけど判断の早い人」と「丁寧だけど判断の遅い人」の2パターンの人がいると私は思っています。

そもそも早い判断が苦手な人間にとって、「丁寧だけど判断の遅い人」の方が、判断を間違えない傾向にあります。だとすると、「丁寧だけど判断の遅い人」の方が、学習データとしては優秀であり、その方が将来的には生き残れる可能性が高いのではないか、などと思ったりします。

小泉: なるほど、面白いですね(笑)。

武田: 人間の仕事では、「そんな時間をかけなくていいから、早くやってほしい」ということがよくありますが、これから機械が人間の世界にますます入ってきて、何らかの判断を下すようになると、「判断の正確さ」が人間の価値として浮き彫りになってくるような気がするのです。

小泉: 貴重なお話をありがとうございました。

【関連リンク】
KIBIT

モバイルバージョンを終了