GmailはAIがメールの書き方を習得、文章を書き始めると次のフレーズを教えてくれる

GoogleはGmailを大幅にアップグレードし、AIがメール文書を作成する機能をリリースした。これは「Smart Compose」と呼ばれ、メールを書き始めると、AIがそれに続くフレーズを生成する。書き始めるだけで文章が完結するので、メールを書く時間が大幅に短縮される。

出典: VentureClef

使い方はシンプル

Smart Composeは一般公開に先立ち、試験バージョンとしてリリースされた。使い方はシンプルで、Gmailのメール作成画面で、文字をタイプすると、AIがそれに続くフレーズを提示する (上の写真)。「How」とタイプすると、AIは「How are you doing?」という文章を生成する。AIが提示するフレーズ  (「are you doing?」の部分) は灰色で示され、タブを押すとこの文章が確定する。また、Smart Composeは受信したメールに返信するときも、AIがフレーズを生成する。

実際にメールを書いて見ると

実際に使ってみると想像していた以上に便利だ。冒頭の言葉をタイプすると、AIがそれを完結する。下の写真がその事例で、AIが生成した部分を赤字で示している。文章の殆どをAIが生成していることが分かる。あて名はAIがメールアドレスを見て生成する。また、AIは筆者の住所も把握しており、自動で挿入する。AIが個人情報を把握しており、少し気味悪いところもあるが、便利さとのトレードオフになる。

出典: VentureClef


挨拶文のバリエーション

メールの冒頭で挨拶分を書くときに、様々な表現があるが、AIは多彩な書式を学習している (下の写真、AIが生成した部分を赤字で示している)。「Hope」と入力すると、AIはそれに続き「all is well with you」と出力する (下の写真、一行目)。このフレーズではなく、別の表現を意図しているときは、タイプを続け、「Hope e」まで綴ると、AIは意図を察して、「everything is going well with you」と出力する (下の写真、二行目)。今度は、「Hope w」と綴ると、AIはこれに続き、「work is going well」と出力する (下の写真、三行目)。つまり、書きたい文章をタイプし始めると、AIがその文章を完結する。挨拶分のバリエーションは幅広いが、AIはこの多様性に対応できている。

出典: VentureClef


少し複雑なメール

AIは冒頭のあいさつや、最後の決まり文句だけでなく、中間部分のフレーズも生成する。文章を書き始めるとAIが意味を察して、それに続く単語を生成する。ただ、少し複雑なメールになると、AIが補完する部分が少なくなる (下の写真、AIが生成した部分を赤字で示している)。AIが文章の最後の部分だけを生成するケースが増える。Smart Composeの機能はまだ限定的で、補完できる範囲を広げることが、次の目標となる。

出典: VentureClef

言語生成モデル

興味深いのはSmart Composeを支えているAIで、アルゴリズムが学習を重ね、メールを生成する能力を習得する。このAIは言語生成モデル (Language Generation Model) と呼ばれ、入力された文字列から、次の文字を予測する。このため、一般的に、Sequence to Sequence (Seq2Seq) モデルに区分される。Gmailは言語モデルの中で、Recurrent Neural Network-Language Model (RNN-LM) とNeural Bag of Words (BoW) を使っている。

Recurrent Neural Network-Language Model

RNN-LMはRNNベース (時間に依存するニューラルネットワーク) の言語モデルで、言語生成の定番技法である。Googleは翻訳サービス「Google Neural Machine Translation」でRNN-LMを使っている。RNN-LMはEncoder (言葉を符合に凝縮) とDecoder (符号から言葉を生成) から成る。翻訳モデルでは、言葉をEncoderに入力すると、Decoderが別の言語に翻訳する (下の写真、中国語を英語に翻訳する事例)。

出典: Google

RNN-LMを使いたいが

GmailにRNN-LMを応用すると、アルゴリズムがメールの文章を生成する。この場合、Encoderに入力するのは、メール題名と受信メール(返信文を書くとき)で、Decoderは利用者がメールを書くにつれ、それに続くフレーズを生成する。しかし、RNN-LMは予測精度は高いものの、大規模な計算量が発生し、答えが出るまでに時間がかかる。メール生成ではタイプするごとに、次のフレーズを生成する必要があり (遅延時間は0.1秒以内)、RNN-LMを使うことができない。

RNN-LMとBoWの組み合わせ

このため、GmailはRNN-LMとBoWを組み合わせて使っている。BoWとは言語モデルの一つで、言葉の並びから、次に現れる単語を予測する。単語は位置情報を含んだベクトルとして表現される (Word Embeddingと呼ばれる)。Gmailはメール題名と受信メールをEncodeするとき、このWord Embeddingを使う。RNN-LMのDecodingの各ステップにWord Embeddingを入力し、Decoderがテキストを生成する。「How」とタイプすると、RNN-LMは「are you doing?」と文章を生成する (下の写真、実例は先頭の写真)。つまり、RNN-LMのEncoding部分に軽量なBoWを使い、遅延時間を短くすることに成功した。

出典: Google

計算環境

Gmailの言語モデルが決定すると、ネットワークのハイパーパラメータ最適化や教育 (文字通りTrainingと呼ばれる) のために、TPUv2 Podが使われた。TPUv2は第二世代のTPUで、Podとはこれを64枚搭載した構成。教育された言語モデルを実行 (Inferenceと呼ばれる) する際に、CPUが使われたが、処理時間がかかり遅延時間の制約を満たすことができなかった。そのため、言語モデルの実行もTPUが使われている。

ロードマップ

Microsoft Outlookでメールを作成したり、Wordで文章を書くときも、ウインドウにフレーズ候補が示される (日本語入力変換のケース)。これを上手く使うと、文章を効率的に書くことができる。しかし、これは文字変換機能に留まり、利用範囲は限定される。何よりも、変換の精度が悪くイライラすることも少なくない。これに対しSmart Composeは、タイプされた文字や単語に反応し、それに続くフレーズを生成し、インテリジェントであると感じる。Smart Composeは登場したばかりであるが、次は、利用者のライティングスタイルで文章を生成するアルゴリズムが開発されている。