2020年6月アーカイブ

皆さんはレポートを作成する際、どのような方法で作成していますか?

膨大な量のデータを読み解き、文章を考えて、何かうまくまとまらない...... もっと簡単にできたらいいのに!と思ったことはありませんか?

この記事では、Arria NLG PLCのデータから文章を生成する技術について紹介します。


1 ARRIA NLG PLCとは?

ARRIA NLG PLCは2009年に設立した企業です。しかし、その技術は30年間の科学的研究に基づいたもので、ARRIA NLG PLC ホームページではこのように紹介しています。

『ARRIA NLG PLCは、自然言語生成(NLG)として知られる人工知能(AI)分野におけるグローバルリーダーです。Arriaは、Arria NLGプラットフォームを介して利用可能な、特許取得済みのコアNLGテクノロジーを所有、開発、およびライセンス供与しています。Arria NLGプラットフォームの中心は、世界で最も先進的な自然言語生成エンジンであるArria NLGエンジンです。』(ARRIA NLG PLC ホームページより)  


2 NLGとは?

 NLGとは、自然言語生成(Natural Language Generation)のことであり、自然言語処理の一種で、文・画像など様々な表現を入力として、最終的に自然言語文を出力とする処理のことです。


3 ARRIA NLGエンジンの仕組み

Raw Dataを取り込み、Narrative Explanationを出力します。

Untitled Diagram.jpg

Raw Data
構造化および非構造化の両方のさまざまなデータソースから取り込む

Data Analysis and Interpretation
データを処理し、重要な事実を抽出、解釈する

Document Planning
データから派生したメッセージを受け取り、メッセージに含まれる情報を含む上手な文章を構築する方法を考え出す

Micro-Planning
流暢さと一貫性を最大化するために情報をまとめ、文章化する方法を考え出す

Surface Realisation
正しい文法、単語の選択、形態、句読点を用いた文章構成となるようにする

Narrative Explanation
さまざまな形式(HTML、PDF、Wordなど)で出力することができ、必要に応じてグラフィックスとの組み合わせや音声での配信も可能


4 ARRIA NLGの利用方法

  • レポート作成の自動化
  • データの可視化による意思決定支援
  • レポートの作成と送信の高速化


5 ARRIA NLGの活用

 ARRIA NLGのテクノロジーは天気の分野や金融分野をはじめ、様々な分野に利用されています。

 NLGシステムで使用されるデータは、株価、会社の利益、降雨量、気温、雇用統計などの時系列データです。データは空間的である場合もあり、場所による変動(異なる地理的領域での降雨など)を示したり、時空間で両方の次元の変動(たとえば、異なる地理的領域での時間による降水量)を組み合わせたりします。NLGの目的は、生データのコンテンツをユーザーがよりアクセスしやすくすることにより、付加価値を与えることです。まず、データのパターンと傾向を検出することで、何が起こっているのかについて、生データを見るよりもユーザーが捉えやすくなります。 


6 ARRIA NLGの活躍

 Arria NLGは様々な企業と提携し、そのテクノロジーを社会のために活かしています。以下は最近ニュースになった話題について紹介します。  

『自然言語生成(NLG)テクノロジーの有力プロバイダーであるArria NLGは20日、Glemser Technologiesと提携し、医療・製薬企業にスケーラブルな自動化ソリューションと大幅な効率性を提供すると発表した。GlemserはArriaのテクノロジーで駆動されるNatural Language Generationソリューションによって、世界で展開する同社のライフサイエンス業務を強化する。』(ニューヨーク2020年5月20日PR Newswire=共同通信JBN)


『自然言語生成(NLG)テクノロジーの有力プロバイダーであるArria NLGは6日、バンク・オブ・ニューヨーク・メロン・コーポレーション(BNY Mellon)と提携し、アセットマネージャーおよびアセットオーナーがデータをアクショナブルアナリティクスに変換することを支援すると発表した。BNY Mellon Data and Analytics Solutionsのクライアントは今、自然言語生成の能力を通じてデータからより良い知見を引き出すことが可能になる。』(ニューヨーク2020年5月6日PR Newswire=共同通信JBN)


『Arria NLGは17日、BBCニュース・ウェブサイトが同社のSemi-Automatic Local Content(Salco)プロジェクトを通じて、Arriaの自然言語生成(NLG)プラットフォームの使用を拡大し、英国で行われた総選挙のニュース報道を自動化したと公表した。 BBC News Labの目標は、総選挙の夜にそれぞれの契約者向けに地元の開票集計・結果が入った地域ごとに編集されたニュースを報道する能力を拡大することだった。Arria NLGによって、この巨大メディアは英国歴史上最も多忙なニュースの夜に、それぞれの人口動態に関する地方データを提供してその目標を達成するとともに、多数の記事の報道に成功した。』(モリスタウン(米ニュージャージー州)2019年12月17日PR Newswire=共同通信JBN)

引用:プレスリリース/ニュースリリース配信の共同通信PRWire(https://kyodonewsprwire.jp/author/H100002)


7 おわりに

今回は、機械学習海外活用事例としてARRIA NLG PLCの自然言語生成技術を紹介しました。この技術は文章作成という個人的な身近な問題を解決するだけではなく、様々な分野で人々の役に立つ技術だということがわかりました。この技術はもっと社会に広がっていくと考えられます。今後のさらなる活躍が楽しみですね!


出典:

『TECHNICAL OVERVIEW: THE ARRIA NLG ENGINE
『Arria NLG』


Twitter・Facebookで定期的に情報発信しています!

概要

 今回は、以前ブログで紹介したText-to-Text Transfer Transformer(T5)から派生したWT5(Why? T5)を紹介します。

 Text-to-Text Transfer Transformerとは、NLP(自然言語処理)のタスクをtext-to-text(テキストを入力して、テキストを出力する)形式として考えたもので、様々なタスクでSoTA(State of the Art=最高水準)を獲得しました。こちらの記事で詳しく紹介しています。Googleが発表した自然言語処理モデルText-to-Text Transfer Transformer(T5)とは?

 このT5を改良したWT5のポイントは、"Why T5?"という名前にもある通り、予測に対してその予測の根拠となる説明を与えるということです。

 近年、大規模な事前学習モデルをはじめとするニューラルネットワークをNLPタスクに使用することで、人間を超えるような性能を達成するようになってきました。しかし、ニューラルネットワークの問題点として、なぜモデルがそのような予測をしたのかが分からない、いわゆる「ブラックボックス」になっているということが挙げられます。この問題を解決するためにWT5では、タスクの答えに加えて根拠を説明する文も与えています。この背景には、人間も意思決定の理由もブラックボックスになってはいるが、求めると理由を説明できるため、機械にも同じことを求めています。


手法

解釈可能性と説明生成

 予測の根拠を与える方法として採用されている3つを紹介します。

ルールベース
予測をするルールをあらかじめ与えて、そのルールの基づいて予測をする手法です。たとえば、「ひどい」という単語が入っていたらnegativeと判定するとしたら、「あの選手のプレーはひどかった」という文はnegativeと判定されます。この方法はあらかじめルールがあるので、予測の根拠は明らかになっていて解釈可能性は高いです。ただ、「あの選手のプレーにひどく感動した」のような文までnegativeと返してしまうことがあるので性能としてはあまりよくありません。

説明抽出
判定の根拠となる説明を入力の文字列からそのまま抽出してくる手法です。上の例でいうと「ひどかった」「ひどく感動した」を説明として抽出するイメージです。この手法だと、英語での"they"や日本語での「あれ」というような単語を含む文を抽出すると、単語が何を指しているのかわからないという問題が起こる可能性があります。

説明生成
言葉の通り入力を受けて判定する根拠を「説明抽出」のような制限なしに生成します。直感的に分かるような説明生成を正確におこなうことにより、人間に近い判断ができるようになります。


  WT5では、基本的に説明生成を行いますが、説明抽出のタスクにも対応できるようにしています。

 ここで解釈可能性と性能について、ルールベースの手法・従来のニューラルネット・WT5(提案手法)・人間で比べた図を見てみます。上で紹介したようにニューラルネットワークは性能は高くても解釈可能性は低く、ルールベースは性能が低くも解釈可能性は高いことが分かります。説明生成のWT5は人間と同等の解釈可能性を持ちながら、人間を超える性能を出しています。この図を見るだけでWT5の良さが分かります。

Interpretability.png


モデルのフォーマット

 WT5モデルがテキストを入力してテキストを出力する様子を図を使って説明します。WT5のもととなったT5の入出力を見てみます。

T5.png

入力では先頭に"translate English to German"などタスクを表すテキストが与えられて、その後ろに"That is good."などのタスクを行う入力を与えています。出力は、単に入力に対しての答えのみを返します。

wt5.png

 それに対してWT5では、説明文を生成したい場合、入力の先頭に"explain sentiment"など、"explain"+タスクという形式のテキストを与えることで、出力では"negative explanation"+説明ような、タスクの答え+"explanation"+根拠となる説明という形式のテキストを返して、タスクの答えとともに根拠となる説明も同時に返します。  また、説明は出力せずにタスクの答えのみを出したい場合には、図の青い部分のように、入力の先頭にタスク名のみを与えればその答えのみを与えられるようにモデルを構築しています。

 説明生成だけでなく説明抽出のタスクにも対応でき、その場合は入力の先頭の"explain"の部分を"explanation"変えることで、説明文を抽出するように訓練されています。


訓練

訓練に使用するデータセットは次の4つです。

e-SNLI
SNLIデータセット(前提と仮説が与えられて、前提に対して仮説が正しいのかを判定。それぞれのデータに対して正しい(entailment)、矛盾(contradiction)、どちらでもない(neutral)の中からいずれかがラベルとしてついている)について、それぞれのラベルに対する根拠となる説明テキストをアノテーションしたデータセット

Cos-E
Commonsense Question-Answering(CQA)データセット(一般常識についての質問応答セットで、質問に対して選択肢とその中から回答が与えられている)に、選択の根拠となる説明テキストをアノテーションしたデータセット

Movie Reviews
映画レビューの感情分析データセット(一つの映画レビューに対して、positive/negativeのラベルがついている)に、判定の根拠となるテキストを説明抽出によりアノテーションしたデータセット

MultiRC
MultiRCデータセット(文章が与えられて、その文についての質問と答えの候補が与えられていて、候補それぞれTrue/Falseのラベルが与えられている)に、説明抽出による説明がアノテーションされている

モデルの学習は、2種類のT5モデルを使ってファインチューニングを行います。一つは2億個のパラメータを持つBaseモデルで、もう一つが110個のパラメータを持つ11Bモデルを使います。ファインチューニングの方法としてはT5モデルの際と同様のダウンストリームタスクにより行っています。

学習率・バッチサイズ等、訓練の詳しい設定については論文をご覧ください。


評価

評価に使用する指標は、分類精度に対してはMultiRCのみF1スコアを採用して、それ以外はAccuracy、生成された文に対しては量的な評価として、説明抽出を行うタスク(Movie Reviews, MultiRC)についてはF1スコア、説明生成を行うタスク(e-SNLI, CoS-E)についてはBLUEを使用しています。 また、量的は指標だけでは説明の質についてが十分に評価することができないので、質的な評価として人間による評価も行っています。NLPのタスク、特に対話や今回のような文章を生成する際には人間の評価が重要になることがあるので、そこも注意深く見ていく必要があります。


実験

まずは、それぞれのデータセットでどうなるのかを見ていきます。

table1.png

結果を見ると、WT5-11Bがかなり高い性能を出しており、分類精度では2つ、説明文の評価では3つのタスクでSoTAを獲得しています。また、WT5-Baseでもそれなりのスコアを出せています。この結果はT5のときと似たような感覚です。

説明文の評価を見てみると、説明生成というタスクの性質を考えると量的なスコアが低めに出るのは必然なのかなと思います。ただ、論文中でも述べられているように、Cos-Eタスクの値は他と比べてもかなり低くなっていて、これはアノテーションした説明文の質があまりよくないことが原因ではないかとされています。人間が生成した説明文に対する人手による評価も低めに出ているので、そもそも人による説明がブレるようなタスクに対しては、性能が上がりにくいのかもしれません。

MultiRCでも、人による評価については同じような傾向があるようにも見えるので、個人的には、一般常識や読解など人により考えが変わるようなタスクでは、説明が難しくなってくるのかなと思います。ただ、この辺の評価はどう捉えるのかが難しい部分も出てくるので一概には言えないと思います。

実際にWT5(11B)が生成・抽出した説明文です。

table2.png


説明文を減らしての実験

次に、教師データとなる説明文を減らした場合にモデルの性能がどうなるのかを評価しています。

目的は、アノテーションをして説明文を付与する手間が省けるのかどうかを確認するためです。もし性能が変わらなければ、他のデータセットも簡単に使うことができる可能性があります。

fig3.png

結果を見ると、e-SNLIについては、Accuracyはほとんど変わらず、BLUEに関しては説明文を減らしていくと値が低下するものの、100まで減らしても従来のSoTAよりも高い数値を出しています。

Cos-Eについてもほとんど値は変化せず、説明文を減らしても影響は見られません。

それに対して、Movie Reviewsに関しては説明文を減らしていくとかなり性能が落ちていることが分かります。

また、グラフにはないですが、MultiRCもMovie Reviewsと同じような性能の低下があることから、説明抽出を行うタスクには説明文の教師データがそれなりに必要であることが分かります。


データセット間での転移

説明生成のタスクでは説明文の教師データ説明文が少なくても性能が下がらないことが分かったので、同じタスクの説明文を持たない他のデータセットを合わせて使用してうまくいくかを見ていきます。

具体的にはe-SNLIデータセットとMNLIデータセットを合わせて使用した場合と、Movie ReviewsとIMDb、Amazon Reviewsを使用した場合を見ます。MNLIとIMDb、Amazon Reviewsはそれぞれe-SNLIとMNLIよりもより多くのドメインを含んでいます。

それぞれの場合について今までと同様に学習させて、タスクの分類精度は上と同様の評価で、生成した説明文については人による評価を行います。 分類精度は、MNLI:91.5%・IMDb:97.2%・Amazon Reviews:98.1%とかなり良く、説明文の評価もMNLI:82%・IMDb:94%となっていて説明文生成もうまくいっていることが分かります。このことから、ドメインの異なる文章に対しても対応できることが分かります。 このような説明文が生成・抽出されます。   table3.png


タスク間での転移

最後に、異なるタスクのデータセットに対して学習を行ってもうまくいくのかを見ていきます。

具体的には、説明文ありのe-SNLIデータセットと説明文なしのe-SNLIデータセット、説明文なしのCoS-Eデータセットを使ってファインチューニングして、CoS-Eに対して説明文が生成できるかを見ます。e-SNLIとCoS-Eは全く違うタスクで、CoS-Eについては説明文を一つも与えていないので"zero-shot"になっています。

結果としては、完全にうまくいったとは言えないようですが、下のようにうまくいったものもあるのでタスク間での転移も可能だろうとしています。この辺は残った課題としていますね。 また、詳細については述べませんが、"bean-search decoding"を使うと説明の信頼性が改善されたようです。

table4.png

まとめ

 今回はText-to-Text Transfer Transformer(T5)をもとにした、予測と説明文を生成するWT5(Why? T5)について紹介しました。

まだ改善の必要があるものの、説明文生成などができればブラックボックスなものが解消されますし、アプローチはかなり異なってきます。将来的にはNLPだけでなく、他の分野のタスクでも説明文生成することができれば説明可能なAIの開発につながっていくかもしれません。 これからもtext-to-textの広がりに注目したいです。

参考文献

WT5?! Training Text-to-Text Models to Explain their Predictions
WT5?! Text-to-TextモデルでNLPタスクの予測理由を説明する手法!


Twitter・Facebookで定期的に情報発信しています!

はじめに

私文大学生でクラウドの実務経験は皆無です。普段は機械学習などをぽちぽちしています。緊急事態宣言も解除され、次の試験受験を考え始めたので、次に活かせるようにソリューションアーキテクト c02に至った動機や学習方法をまとめていきます。 資格名そのままだと長いので、以降ソリューションアーキテクトアソシエイトをSAA、クラウドプラクティショナーをCLFと略します。

タイトルでは30時間で〜と謳っていますがSAAをパスするCLFに合格していますので、その時間も含めると全部で倍程度の間はかかっています。


動機

AWSとはなんぞや、クラウドとはなんぞやといった説明はわかりやすくまとめてくださっている先駆者がたくさんいらっしゃるのでここでは省略します。 サーバーまわりの細かい用語は応用情報の勉強である程度は前提知識はあると考え、あとは実際にサービスについて知っていこうと思い、それの指針としてCLFをひとまず受けてみることにしました。 SAAは、CLFでは基礎的すぎてもう1つ上くらいならすぐ行けるだろうと甘い考えで受験を決意しました。


資格習得のメリット

知識を取得していくうえで足がかりになる
資格試験全般に言えることかもしれませんが、資格試験のための勉強はがむしゃらにその分野を勉強するよりも、ある程度その道筋が整備されていることが多いです。 そのため、時間効率も高い上により知識を深めたいときに手を伸ばしやすいです。

褒められる
合格すれば褒められます。そして客観的な知識の証明にもなります。 何ももたずに「できる!」というより簡単に最低限のベースラインにいることが他者にも伝わります。


デメリット

資格一辺倒の勉強になりやすい
未経験からのスタートだと、実務を置き去りにしてしまうケースがあります。 特にAWSでは機能のアップデートも早いので注意が必要です。 しかし、言い換えれば、前までは使わなかったけれども新機能追加で日の目をあびるような組み合わせができるかもしれません。 多くを知っている分には損はないとは思います。


学習方法

ここでは実際に使ったサービスを使用頻度順で紹介していきます。

WEB問題集
https://aws.koiwaclub.com/
20h/30h
私はほとんどの時間をこのWeb問題集に費やしました。 AWSでは過去問の流用を禁じていて、公式から問題集もだしていません。しかしこのサイトは転載の可能なホワイトペーパー(後述)の文章を組み合わせて問題が作られているので相当実践に近い形の問題を解けます。 問題の解説も充実していますが、問題文、解説などすべてのコピペができなくなっています。解説にでてきたここの単語なんだろうとぱっと調べることなどができません。 また、解いた問題の保存機能などがありません。この問題は要注意だからといったチェック機能がありません。 そして有料です。CLFの問題を解くためにはダイヤモンドプランが必要で、90日5,000円ほどします。 しかし、これらのデメリットすべてを鑑みてもこのサイトはやる価値があると思います。 ある程度の下地があればこのサイト+わからないものを調べる、で合格が可能でしょう。 だいたい3週ほどしました。

Black Belt
https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-service-cut/
5h/30h
3倍速くらいで流し見しました。 AWS公式の方がサービス別にまとめてくださったものです。 基本的なサービスについてはYoutubeでのプレゼンもあります。 はじめは難しく感じましたが、わかったあとに見直すとめちゃくちゃわかりやすくまとまっていました。知識が足りないと思った分野のYoutubeがあればそれを見ていました。プレゼンのPDFだけだと眠くなってしまうので。。。

ホワイトペーパー
https://aws.amazon.com/jp/whitepapers/
3h/30h
上述のWeb問題集の解説にあるリンクから飛んだのがほとんどです。 公式ドキュメントです。死ぬほど眠くなります。文もイミワカランカタカナばっかりです。英語のほうが読みやすいんじゃないかみたいなのが膨大な量溢れています。 これしか学習教材がないときに取った方々は尊敬します。。

公式模試
1.5h/30h
解答探しを含めての時間です。 1回2,000円で受けられます。20問しかありません。解答はありません。当然解説もありません。最後に得点率だけ教えてくれます。 問題の傾向をわかるためにと勧めている方が多かったですが、私にはまったく役に立ちませんでした。どの問題を間違えているのかを分野でしか教えてくれないため、正解を調べても一抹の不安が残ります。自分が弱いところがわかる、という使い方もできますが、結局20問しかないので見過ごしてしまう可能性もあります。1回何かしらの試験に受かるとタダ券がもらえるのでそれを使わないでの受験はおすすめしません。 私が受けた試験はC02という2020年の3月末からの試験で私が受けた4月1日の段階ではほとんど情報が出回っていなかったのですがる思いで受験をしましたが、それでもあまり意味はないと感じました。難易度は体感で本番試験と同程度でしたが、出題範囲は本番のときは結構違いました。

海外のpractice exam
0.5h/30h
試験前日に寝る前にさわりました。 別の問題も見てみたかったので海外版Googleでaws saa practice free examと検索して登録しなくてもできそうなのをいくつかやりました。 上のWeb問題と似たような問題が多く、ひとまず安心しました。 やはり英語の資料や問題集は量が豊富でかつ値段も安いのでお得感がありそうでしたがすでに購入したWeb問題集があるので有効期限が切れたら試してみるのもよいかなと思っています。

公式のトレーニングセッション
https://aws.training/LearningLibrary
CLFのときはここから入りました。SAAは受けていませんが、概要を知るには良いと思います。


勉強時のポイントなど(雑記)

教材は最低限からスタートする
性格の違いもあると思いますが、私は最低限の教材を買って足りないと思った分だけ少しずつ足すようにしています。あまりにやるべき量が多いとそれだけでノックダウンしてしまったり、やっぱりやめたとなってしまうからです。

とりあえず申し込む
テストセンターによると思いますが、会場は休日でもない限り前日でも予約でき、キャンセルは前日までできます。受験料も全額返ってきます。 人は締切が設定された瞬間に強くなります。 私もSAAを受けるときにもう少し伸ばそうと思っていたら緊急事態宣言が出そうだったので涙をのんで前日のキャンセルタイミングをスルーしました。 自分で設定した締切+緊急事態宣言という締切によって逃げられなくなりがんばれました。 とりあえず申し込めば、キャンセルする手間が出来る分何もしないときよりも切迫感を味わえるのでとりあえず申し込んでみるのも手だと思います。

やっぱり実際に使ってみる
暗記の部分に関してはなんとも言えませんが、やはり覚えるときに理由付けがあると効率が全然ちがいます。私は実際に手を動かしたのは簡単なゲームサーバーを建てたくらいですべてのサービスに手を付けたわけではありませんが、そこでやったことは記憶に定着しやすかったです。私はこれが足りず、コスト最適化アーキテクチャが再学習の必要ありの評価でした。

本試験での文章のおかしさ
これも巷に言われていることですが、本試験の文章はおかしなところが多いです。C02の最新の試験のはずなのにいくつかおかしい場所がありました。root userとなるべきところがルートルートと訳されている場所もありました。英語版に慣れておくのもよいかもしれません。


SAA取得で感じたメリット

取ってすぐはそこそこできるようになったかな、という見えない自信くらいでした。まぁ資格を取ったので取っていないよりは見える化出来ていますが。。。 強く成長を感じられたのは新たにdvaの学習を始めたときでした。 上でホワイトペーパーをワケワカランと評していますが、スルスルと読めるようになっていました。
あんなにカタカナがソーマッチなのにWhy?
→SAAで基礎部分を学んだおかげで自然と適応していた。かなと思います。
ただまだまだ読めない部分もあるのでこの調子で学習を続けていきます。


おわりに

総勉強時間はCLFが20時間ほど(1週間)、SAAが30時間(1.5週間)の計50時間ほどでした。どうせ暇なんだからもう少しやれという感じですが。 クラウドは勉強して感動、使ってみて感動のすごいサービスだと思ったので。今後はより広く深いレベルの知識習得を目指します。また、同じクラウドサービスのGCPなども比較してみたいと思うのでこの知識を足がかりにそちらの勉強にも足がかりになればいいなと考えています。


Twitter・Facebookで定期的に情報発信しています!

このアーカイブについて

このページには、2020年6月に書かれた記事が新しい順に公開されています。

前のアーカイブは2020年4月です。

次のアーカイブは2020年7月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。