こんにちは、bashii です。今回はTableau 2019.1で追加された新機能「Ask Data」をキッカケとしてTableau の自然言語処理に対する取り組みを紹介していきたいと思います。
◆ AskData (データに聞く) とは 何か?
2019年1月、Tableau 2019.1 のリリースに伴い、Ask Data(データに聞く)の機能が追加されました。Ask Dataは自然言語処理技術をビジネスインテリジェンスに取り込み、人間の言葉で「データに聞く」ことでデータから新しい発見を得ることを目的とした機能です。ここで自然言語処理とはいったいどういうものなのでしょうか。
◆ 機械が人間の言葉を理解する?
ガートナーのレポートによると「2020年までに、分析クエリーの50%が自然言語による検索、自動生成に変わる」(※1)と予測されています。ドラッグアンドドロップに慣れ親しんだ私としては、にわかには信じがたい予測なのですが、ふと周りを見渡してみると、自然言語処理は確実に私たちの生活に浸透し始めているように思います。試しにGoogleの検索エンジンで「近くのおいしい味噌ラーメン」と打ってみると、確かに現在地から近い人気のラーメン屋をマップに表示してくれます。そしてAmazon AlexaやGoogle Homeなどのスマートスピーカーに話しかけると、やはり人間の言葉を理解して電話をかけてくれたり、音楽をかけてくれたりします。とても便利ですよね。なんだかあまりに便利で当たり前のように感じてしまいますが、よく考えると機械が人間の言葉を理解してくれるというのは本当に不思議なことです。
(※1:Augmented Analytics: The Next Disruption in Analytics and BI)
◆ 自然言語処理(NLP)とは
人間が普段当たり前のように使っている私たちのコトバですが、実は非常に多くの曖昧さを含んでおり、機械にとってはとても理解するのが難しいコトバです。例えば先ほどの例で、「近くの美味しい味噌ラーメン」と検索しましたが、「近くの」といってもどこを起点として、半径何メートル以内を近いとするか、「美味しい」とは何を基準に美味しいと評価したらいいのか、実際には事細かに指示を出さなければ機械には判断ができません。このように私たちが普段当たり前に理解して使っている曖昧な言語と、曖昧さを許さない機械が使う言語の溝を埋める技術が自然言語処理と言えるでしょう。自然言語処理のテクノロジーが進めば、機械の方が私たちに寄り添ってくれて、私たちが複雑なプログラミングや機械が理解する言葉の使い方を勉強しなくても、機械に命令ができたり、機械から情報を得たりすることができるのです。
自然言語処理は英語で Natural Language Processing と言い、NLPと略されます。NLPの中にも、NLU(Natural Language Understanding)とNLG(Natural Language Generating)があります。
NLU(自然言語理解)とはより狭い範囲に限定したNLPです。
NLPとの違いは、より機械にとってフレンドリーな言語理解を行う事を目的としており、構造化されていないテキストを受け取った場合に、それを機械に解釈可能な形式に落とし込む役割を担います。
NLG(自然言語生成)とは自然な言葉で文章を生成するために用いられます。NLUが人間から機械への方向で言葉を理解するのに対し、NLGでは機械からの情報を人間が分かりやすいような言葉、文章、音声で伝える技術を指します。(※2 NLP, NLU, NLG and how Chatbots work)
◆ Ask Data の機能とは
それではここで、Tableau の話に戻ってAsk Dataの機能を見てみましょう。
Ask DataはTableau Server / Tableau Online に組み込まれており、データ ソースに直接アクセスできるすべてのユーザー ロール、つまり Creator、Explorer、インタラクターで利用可能です。データソースのパブリッシュが完了すると、デフォルトでまず最初に表示されるのがこのAsk Dataの画面となります。以下Ask Dataの画面です。
① Ask Data タブ
② データソースのデータ構造の解析
データソースのデータ構造の解析状況が表示されます。構造解析のリフレッシュも行います。
③ データソースに含まれるフィールド一覧
データソースに含まれるディメンションとメジャーが表示されます。
④ データへの問い合わせ入力エリア
ここにデータに対する質問を自然言語で入力します。
⑤ クエリーのサジェスチョン一覧
入力されたフレーズをもとにクエリーのサジェスチョンを行います。
ここではあらかじめ、都道府県別のアルコール消費量のデータTableau Onlineにパブリッシュしておきました。まず、都道府県ディメンジョンにカーソルを当てると、どのような県がデータとして入っているか一部がリストされます。
次にカテゴリにカーソルを当てると、「ウィスキー」、「日本酒」、「ワイン」、「焼酎」、「ビール」といったカテゴリーがあることが分かります。
ここで、質問ボックスに「 top 10 飲酒量 都道府県 日本酒」と打ってみましょう。
はい、自然言語による問い合わせ(ドラッグアンドドロップ操作なし)で結果が出ました!! トップは新潟ですね!続いて秋田と来ています。納得です。
現バージョンでAsk Dataがサポートする言語は英語のみとなっています。しかし、フィールド名が日本語であっても、それをフィールド名として取り扱うことができるので「 top 10 飲酒量 都道府県 日本酒」と少しカタコトの言葉になってしまいますが、「日本酒の飲酒量がトップ10以内である都道府県はどこか?」という意図の質問を投げかけると、ドラッグアンドドロップの操作なしに、きちんとトップ10のリストが返されたことになります。
また、画面の上部には「 top 10 飲酒量 都道府県 日本酒」という質問がどのように解釈されたかが表示されています。ここでは、「sum of 飲酒量」「by 都道府県」「top10 都道府県s by sum of 飲酒量」「filter カテゴリ to 日本酒」と解釈されています。
これは、「 top 10 飲酒量 都道府県 日本酒」というフレーズから、「飲酒量」はメジャー、「都道府県」はディメンジョンであることを理解し、「飲酒量」の「都道府県」ごとの合計を取って、「都道府県」をソートし、上位10のリストを作成し、更に「日本酒」は「カテゴリ」の中の要素なので「カテゴリ」を「日本酒」にフィルタする・・・といった一連の解釈が行われています。
更に生成されたクエリのフィルタを「日本酒」から「焼酎」に変えてみましょう・・・さて焼酎の消費量トップ10の都道府県はどこでしょうか?
結果です。宮崎、鹿児島、大分・・・九州勢、強いですね。納得感があります。
表示形式をマップにすると、九州地方の色が濃くなっており、焼酎の消費量が多いことが分かりますね。
もう一つ例を見てみましょう。今度はe-statのデータをもとに、日本の主たる死因の年ごとの推移のデータを利用します。「死因 overtime」と打ってみます。
Overtime は時間の推移ということで、日付型の「西暦」を探して、西暦ごとの死亡数の推移を線グラフで表示してくれました。
ここに「死因」というキーワードを追加してみましょう。
「死因」ごとに色分けがされました。緑色の「悪性新生物」とまり「がん」で亡くなる方の数が1970年以降圧倒的に増えていることが分かりますね。
このように、Ask Dataを使って、気軽にデータに質問することで、ざっくりとした回答が得られるサンプル紹介しました。ここで得られた結果は、ワークブックとして保存し、編集することで従来通りのドラッグアンドドロップのインターフェイスでさらに詳細な調整をおこなうことができます。
現時点では、日本語は未対応であるため、キーワード・フレーズでの入力が必要となりますが、今後より私たちの話し言葉に近い質問方法を理解できるように機能が向上していくでしょう。また、英語では一部サポートされていますが、「高い(high)」、「低い(low)」、「安い(cheep)」など、基準が曖昧な表現(どこからどこまでが安いかを判断するのは機械にはなかなか難しい)にも対応していくことが考えられます。
現在のAsk Dataがサポートする機能についてはこちらを参照ください。
近い未来には、音声認識の技術も進み、スピーカーに対して「Hey Tableau 、今月の売り上げ成績の良い店舗はどこ?」と尋ねると、「今月の売上トップは銀座支店、最終売上はXXXXXです・・・」なんて答えてくれる日が来るかもしれません。
まだまだ生まれたばかりの自然言語対応機能「Ask Data」ですが、今後どのように発展していくのがか楽しんで行きたいです。
◆ 自然言語でレポートを説明する(NLGへの取り組み)
最後にTableau のNLG(自然言語生成)への取り組みについても紹介しましょう。Automated insight社のWord Smithという技術を使うと、以下のようにTableauのレポートに自然言語での説明を追加してくれます。
「Regional Manager(地区マネージャ)」で「Central Region Manager」を選択すると、以下のようにレポートを文章で説明してくれます。Central Regionのマネージャに対して「11人のうち6人の社員が目標達成率50%を下回り、以下の社員はトレーニングを受けるのが必要である・・・」という具合にレポートの説明してくれています。受け手によって様々な解釈のできるレポートに対して、機械が一定の説明を加えて示唆してくれるというのは、共通の認識をとる上でも有効になるかもしれません。
こちらのWord Smithの機能はダッシュボード・エクステンションとしてエクステンションズ・ギャラリーからベータ版を試すことができます。
以上、今回はTableau と自然言語処理への取り組みについてまとめてみました。データ分析のユーザーインタフェースがより人間に寄り添ったスマートな形に進化することで、私たちのデータへの向き合い方も変わってくるかもしれませんね!今後の動向に注目したいと思います。
※ 本記事の作成にあたり Shingo Nakaminami さん、 Hiroshi Masudaさんにアドバイスを頂きました。ありがとうございます!
※ 本記事はTableau社の正式なレビューを受けておりません。あくまでデータ活用の最新事例を提案する目的の一技術文書としての投稿となりますのでご了承ください。