1.文章を意味から判断するセマンティック技術の紹介まとめ
・単語出現頻度ではなく意味から文章を分類するセマンティックな技術が注目を集めている
・ユニバーサルセンテンスエンコーダーを使うと容易にセマンティックな分類が可能
・現時点ではユニバーサルセンテンスエンコーダーは英語のみ対応
2.セマンティックとは?
セマンティックとは直訳すると「意味の」や「意味論」であり、日本語に翻訳してしまうと不自然な日本語になる中々困った単語なので以下ではそのままセマンティックで統一しています。
近年のニューラルネットワークベースの自然言語解析研究の進歩は非常に早い。特に文章が似ているかどうかを単語ではなく意味から判断するセマンティックと呼ばれる技術はSmart ComposeやTalk to Booksなどの新しい製品を可能にした。また、100程度の比較的少ない学習データから品質の高い文章予測を可能にするなど、様々な既存の自然言語解析作業の品質を向上させた。
以下では、2つの論文から直近のGoogleで行われている関連技術の現状を見ていく。このモデルはTensorFlow Hubから利用可能であり、Googleは開発者がこれらを使って新しくワクワクするようなアプリケーションを作成する事を期待している。
3.セマンティックによる文章の類似性
論文、Learning Semantic Textual Similarity from Conversationsでは、Googleは、意味によって文章の類似性を判断する新しい手法を紹介した。これは「もし、2つの文章が同じ応答を得るのであれば、その文章は似た意味なのではないか?」と言う発想からスタートしている。
例えば、
1)貴方は何歳ですか?(How old are you?)
2)貴方の年齢は幾つですか?(What is your age?)
はどちらも年齢に関する質問であり、「私は20歳です」と答える事が出来る。対照的に
3)お元気ですか?(How are you?)
は、1)と使用単語はほとんど同じであるが、意味は異なり、応答も異なる。
Googleは文章に対する応答を学習させる事により、意味的な類似性を学習する事が出来るのではないかと考えた。会話データを入力として与え、ランダムに選択された複数の応答選択肢から一番適切な応答を選ぶ事を学習させるのである。
しかし、最終的な目標は類似性と関連性を含む、様々な自然言語の関係性を人工知能に学習させる事である。SNLI entailmentデータセットを使い論理的なアプローチを追加学習させ、STSBenchmarkやCQA task Bなどの性能測定試験でより良いスコアの達成に成功した。これは「論理」が単純な等価とは全く異なり、複雑な意味表現を学習するためのより多くの特徴を提供するためである。
4.ユニバーサルセンテンスエンコーダー
論文、Universal Sentence Encoderでは、Googleは上で説明した複数のデータから学習する方法をさらに拡張し、より多くのデータセットから学習をさせ、文脈から文章を予測するskip-thought-likeモデルを用いる事とした。しかし、オリジナルのskip-thought-likeモデルが使っているencoder-decoderアーキテクチャーの代わりに、エンコードのみを行う事とした。これにより、感情分析やセマンティック分類などを含む様々な作業の共有エンコーダーとなる事ができ、学習時間等を大幅に削減できた。
この共有エンコーダー、つまり、ユニバーサルセンテンスエンコーダーは、言い換えの検出、文書間の関連性、クラスタリング、カスタムテキスト分類など、様々なアプリケーションをサポートする単一のエンコーダーとなる事を狙いとしている。
論文で説明しているが、ユニバーサルセンテンスエンコーダーは最初のVersionではdeep average network (DAN) を使用した。二番目のVersionでは、より複雑な自己管理型ネットワークアーキテクチャーであるTransformerを利用した。
Transformerは、様々な感情分析や類似性分類でシンプルなDANより優れていた。しかし、Transformerを解析対象と文章が長くなるにつれて計算量が顕著に増加するが、DANの場合は文の長さが増えても計算量の増加は一定である。
5.ユニバーサルセンテンスエンコーダーの新モデル
上で解説したユニバーサルセンテンスエンコーダーに加えて、Googleは2つの新しいモデルをTensorFlow Hubに公開した。Universal Sentence Encoder – LargeとUniversal Sentence Encoder – Liteである。これらは学習済TensorFlowモデルであり、様々な長さの文章をセマンティックにエンコードする事ができる。
エンコードとは、文章を人工知能が扱いやい形(ベクトル)にする事である。ユニバーサルセンテンスエンコーダーを使うと、様々な長さの文をベクトル化する事が出来る。そしてそのベクトルはセマンティックなベクトル、つまり意味を意識したベクトル化であり、従来使われていた単語出現数を元にベクトル化したものではないので、セマンティックな類似性分類や、関連性分析、予測、クラスタリングなどに使う事ができる。
1)Universal Sentence Encoder – Large
Transformerを使って学習させている。モデルのサイズや実行速度を犠牲に正確性を最優先させている。
2)Universal Sentence Encoder – Lite
単語の代わりにSentence Pieceを使用して作成したボキャブラリーを用いて学習させた。そのため、モデルのサイズを大きく削減する事ができている。Liteモデルは、オンデバイスやブラウザベースなどCPUとメモリの制限がある環境で実行される事を想定している。
Googleはこれらの開発成果とモデルをコミュニティと共有できる事に興奮している。この技術はまだ初期段階であり、他の言語への拡張(現在は英語のみ)や、段落や文書などもっと大きなサイズの文章のセマンティック解析を実現し、真の「ユニバーサル」なエンコーダーになる事を希望している。
5.セマンティックによる文章の類似性の感想
人工知能の最新のトレンドを大まかに掴みたいな、と思ってarxiv.orgの論文の分類に挑戦したのですが、単語出現カウントを用いたクラスタリングがあまりスマートに実現できずに困っていた際に、このセマンティックな手法を知り、もう少し使いこなせるようになりたいと考えています。
なお、Universal Sentence Encoder – Liteで言及されているSentence Pieceの作者の方は日本の方で、思ってもみなかったところで日本人のお名前を発見して何故か少し嬉しかったです。
https://t.co/sX6nMqPzgv Universal Sentence Encode Lite で SentencePiece が使われています。SentencePiece のモデルファイルは、分割だけでなく、コンパイル済みのテキスト正規化ルールも内包する完全自己完結パッケージなので、再配布しても再現性が保証されます。
— Taku Kudo (@taku910) May 14, 2018
6.文章を意味から判断するセマンティック技術の紹介関連リンク
1)ai.googleblog.com
Advances in Semantic Textual Similarity
2)github.com
google/sentencepiece
コメント