本日のアジェンダ

田村吉宏氏(以下、田村):「Azureで"賢く深める"自然言語処理」と題して、SBテクノロジーの田村吉宏が発表します。

まず本日のアジェンダですが、はじめに自己紹介と会社紹介をして、次に自然言語処理の概論。その自然言語処理を用いた分析活動の中で、どのように「Azure」を活用しているのか、簡単なトイプログラムを2つ用意しましたので、そちらでデモをします。

少し宣伝になりますが、SBTでのAzureを活用した機械学習サービスを紹介して、最後にまとめとして、本日の発表の全体像とします。

自己紹介と会社の紹介

はじめに、自己紹介と会社の紹介をします。田村吉宏と言います。出身は東京の福生市、少し西のほうで生まれています。東京生まれですが、区に来たのはSBテクノロジーに転職してはじめてで、それまではずっと市で暮らしていました。

趣味はゴルフ、野鳥撮影、ゲームが大好きで、特にゴルフとゲームは、今メチャクチャホットにやっています。

少し略歴も話すと、社会人は今年で6年目、SBテクノロジーにきて3年目になります。実はエンジニアとしてのスタートではなく、最初は某教育会社に院卒で入社しています。そのため、エンジニアの方々がやっているような、コーディングの研修などは一切受けておらず、いきなり現場に配属されて実務ではPM業をやっていました。

ただ、大学院まで進んで、自然言語処理の研究を少しかじっていたので、その縁があって、チャットボットの内製開発だったり、PoCチームの兼任をやっていました。そこでもう少し技術を磨きたいと思いSBテクノロジーに転職して、今はデータサイエンスグループで、PoCやコンサルティング、あとはチャットボットのサービス提供などをやっています。

会社の紹介です。“情報革命で人々を幸せに、技術の力でみらいをつくる”をモットーに、いろいろなコンサルティング、“クラウドコンサルと、サービスカンパニー”を目指している会社です。

SBとついているので、察しのいい方は知っているかもしれませんが、ソフトバンクグループの傘下で、ICTサービスビジネスを展開している会社になります。

SBテクノロジーの事業領域は、ビジネスITソリューション、コーポレートITソリューション、テクニカルソリューション、ECソリューションの、大きく4つの柱でサービスを展開しています。

実は、マイクロソフトさんとのクラウドの関わりは長くて深いです。いろいろな賞もたくさんもらって。着目してほしいのは、(スライドの)一番左のクラウド導入実績です。ちょうど今、私たちの会社からAzureなどを導入した会社が1,199社あって、あと1社で1,200社です。見ている方々で、キリ番賞を狙う方は、ぜひ声をかけてもらえればと思います。

NLPの概論

ここまで私と会社の紹介をしたので、ここからはNLPの概論について話します。自然言語処理。NLPとは、“人が日常的に使っている言葉、自然言語をコンピューターで処理させること”です。機械翻訳や音声認識がもう本当に王道で、検索技術も含まれています。

前処理がかなり泥臭いことが、ほかの分野と比較して特徴的かと私個人は考えています。スライドの図で言うと、赤く囲った部分です。ほかの分野でももちろんデータ加工や、トークン化、ベクトル化などをやっていると思いますが、そこにかなり泥臭く面倒な処理がたくさん入ってくるのがNLPの特徴かなと思っています。

泥臭さの例を少しだけ、ちょっと文字文字しいですが紹介すると、みなさんが書いている言葉の表記ゆれはとても大きな壁になってきます。

とあるチャットボットでは“1000円”、“1,000円”、“千円”をそのままだと全部違うものとして認識してしまいます。もし文字コードの闇に興味ある方は、“Unicode正規化”などでググってもらうと、本当にいろいろな方々が戦っている歴史がたくさん出てきます。

また、日本語自体がかなりハイコンテクストな言葉になっていて、今だと「コロナやばいっす」と言うと、「COVID」のこと指しているだろうなあと思いますが、これがたぶん5年前に言ったとすると、いろいろな人が違う解釈をしていたでしょう。あと専門用語の略語をもかなり多く、私たちの分野で“ML”と言うと、Machine Learningがほぼ1択で出てきますが、違う分野の人だとメーリングリストのことなんじゃないかと思ったり。

あと、“トルコン”という、トルクコンバーターの略をちょっともってきましたが、これパッと見たときに人の名前なのか、略語なのか、もしくはただの名詞なのか、人によってぜんぜん解釈が変わってきてしまいます。

そういうところが難しさでもあり、慣れるとだんだんそこが楽しくなってくる、少し不思議な分野なのが、NLPの魅力だったりします。

NLPで解いているタスク

そのNLPでどんなタスクを解いているのかを、少しまとめてみました。大きく集計から分析までありますが、ほかの分野と違うところは実はここにもあります。集計や可視化は、画像ではただの前処理かもしれませんが、それをやるだけでも大きな価値を出せるのが自然言語分野の特徴かと思っています。というのは、みなさんが自然に、本当に普通に使ってしまっている言葉を、定量的に評価するだけでもいろいろな発見があるのが、この分野のおもしろさかと思います。

タスクとフロー

では、タスクとフローを少しマッピングしてみます。案件のほとんどは、実は集計・可視化までで対応できるというと失礼かもしれませんが、実はそこまでで大きな価値が出せたりします。

私個人が今まで担当している案件の比率でいうと、8:2ぐらい。8が集計・可視化までで、分類・翻訳・生成、いわゆる目的アルゴリズムの利用までやるのが、だいたい全体の2から3ぐらいです。

私たちはデータサイエンティストなので、分析という工程に関しては、どんな集計や、可視化、分類・翻訳・生成するときにも、必ず意識していることかと考えています。

NLP分野は最近アツい

このNLP分野は、最近メチャクチャアツい分野になっています。トップカンファレンスの中に国際学会でACLというものがありますが、その論文投稿数、採択数ともに、2019年度から爆発的に増加しています。

みなさんも知っているかもしれませんが、BERTをはじめとする事前学習言語モデルのブレイクスルーがあります。右の図は2016年の論文のカテゴリーを示していますが、これが2020年になると、対話や、生成、翻訳みたいなところ、どんどん応用研究のほうに加速度的に進展をしていることが見てとれるかと思います。

NLPの市場も今どんどん伸びていて、やはりテレワークや、コロナ対策によるデジタル化の推進によって、テキストデータのデジタル化が想定よりも早く進んでいます。

2020年度には116億ドルの世界の市場規模でしたが、それが2026年には351億ドルまで成長することが見込まれているし、CAGR、年平均成長率は、毎年20パーセント以上で成長していくだろうと言われているほど、今アツい分野になっています。

さらに加速させている要因として、事前学習済みの言語モデルのエコシステムがかなり加速しています。有志の方々が、自分たちで学習したモデルを公開することで、障壁がどんどん低下しています。

専用ライブラリの整備。デモでも見せるTransformersが代表的なライブラリですが、そういうものを利用して、日本語でも手軽にBERTだったり、ALBERT、ELECTRAみたいなものを試せる環境がどんどん整いつつあります。この場を借りて、公開してくれているみなさんの善意に、感謝します。本当にありがとうございます。

生成系の学習済みのモデルも、日本語の分野でも開発や公開がどんどん進んでいます。rinnaさまの事例になりますが、GPT-2の大規模な言語モデルを開発し、オープンソース化、公開されているものが発表されています。LINEについても、世界初で日本語に特化した超巨大言語モデルの開発を進めていくことが話されています。

ここでまとめたいことは1つで、世界に比べるとどうしても日本語の自然言語の分野は遅れていますが、どんどんできることが増えてきていて、実社会利用も、日本でも加速していく分野であると考えています。

事前学習済み言語モデルを語る理由

ここでちょっと、事前学習済み言語モデルをどうしてこんなに熱く語っているかを、ちょっとBERTの利用フローにのっとって説明します。

BERTは3段階の利用でフローが作られています。まずは事前学習をして、ファインチューニング、推論をしていきますが、実はこの事前学習の部分が私たちでは絶対できないぐらい重たい処理となっています。GPU使って何十日かかるような処理なので、この部分が非常に課題になります。

さっき紹介したような方々は、この事前学習を終わらせたモデルを公開してくれていて、私たちはそれを転移学習やファインチューニングをして、推論で実社会に利用していくところだけをやればいいような状況になっているのが、本当にありがたいことになっています。

NLPを用いた分析活動です。ビジネス上でのNLPの課題としては、やはりここがけっこう肝になるかなと思っていますが、人が自然な活動の中で生み出されているデータがほとんどであることが大きな特徴です。そのため、データはあるけど、機械学習用にタグづけや、カスタマイズがされていないことが大半です。

ちょっと「よくある話その1」にもってきましたが、例えば「アンケートはよく取っています」と。「ただ、フリーコメントも取ってはいるけど分析はしていないんだよね。ただただ取っているだけなんだ」という話とか。

あと、備考欄に「故障原因をみんなに書いてもらっているから、それを用いて分類したいんだよね」みたいな話がきますが、実際に中見てみると、人によって、もしくは部署によって書き方もぜんぜんバラバラで。じゃあ、やはり集計・可視化からやりましょう、ということが多いです。

また、出てくる結果をどのように活用するかがイメージしづらいのも特徴です。「よくある話その2」にも書いてありますが、とあるツールを導入はしてみたはいいけれど、結局使わなくてやめちゃった、だったり。

報告レポートまで書いて考察してくれれば、書いてあることも分析結果も理解できますが、可視化したものだけ見ても、やはりよくわからないというようなフィードバックをもらうことが多いです。

ツールの提案をしているときに特に多いんですが、総じていうと、みなさんが当たり前に使っているからこそ、それをビジネス上でも科学的にというか、定量的に活用しようとするとけっこう難しい、というところが課題かと思っています。

集計・可視化のモットー

そこで、私がどういうふうにやっているか、集計・可視化についてちょっとだけ話すと、モットーは、とにかくカラフルに。見てもらうのが非常に大事かなと思っています。自然言語の分野は、どうしても言葉なので、ただただ結果を並べると、あまりカラフルにならないのも大きな特徴です。

そのため、できる限りいろいろなグラフや、可視化、カラフルにする手法があります。意味があるかとかを考える前に、まずは可視化をしてお客さまにぶつけてみて。そのときに、ただただぶつけるだけでは意味がないので、必ず考察というか、自分の中での考え、「なんでこういう色にしたのか」「軸にしたのか」は必ず説明できるようにしながら、お客さまにぶつけていく。

ただそのときに、あまりきれいな結果を出すことは意識しておらず、“Quick & Dirty”アンド“フッ軽”。この2つのキーワードで私は活動しています。

当たり前のことですがけっこう見落としがちなので強調すると、比較はすごく大事です。特にこの自然言語の分野は、出てくる結果がやはり捉えられにくいこともあって、非常に大事です。

例えば、左の図はただ共起ネットワークを1個もってきただけですが、「じゃあこれで考察してください」と言われても、やはりどんな専門家でも難しいし、どんな解釈のしようもある。「それってどんな裏付けがあるんですか?」と言われたときになかなか困ります。

ただ、そこで軸を切ってあげて、2つネットワークを用意してあげると、話がだいぶ変わってきます。そうすると、この2つの切った軸のどちらかで、何が違うのかが明確に可視化されます。

そこをキーにして、「じゃあそこが違うのはなんでだろう?」という考察のフックにどんどんしていって、繰り返していって、細分化をしていく。

そのため、とある手法などを試してみるとき、けっこう可視化だけをして満足してしまうことが私もありますが、そこで比較対象を必ず決めて、どんな軸でもいいので、比較をしていくことは、分析活動をする上で非常に大事かなと私は考えています。

(次回につづく)