Translate

2017年4月26日水曜日

AIで長文の要約ができないか調べてみる


長文のテキストを短い文で要約するところをAIでできないか調べてみたら
以下の記事を見つけた。

Text summarization with TensorFlow
https://research.googleblog.com/2016/08/text-summarization-with-tensorflow.html

以下、翻訳した文章である。
いつもどおり参照する人は At your own riskでお願いします。

-------

TensorFlowを使ったテキスト要約


  • 2016年8月24日水曜日
  • 投稿者:Peter Liu、Xin Pan (ソフトウェアエンジニア、Google Brain Team)



毎日、人々はニュースストーリからソーシャルメディアポスト、検索結果まで、さまざまな情報源に依存しています。より長いテキストの正確な要約を自動的に提供できる機械学習モデルの開発は、大量の情報を圧縮形式で消化するのに役立ち、 "Google Brainチーム":https://research.google.com/teams/brain/ の長期目標となっています。

要約は、機械の興味深い読解力テストとしても役立ちます。 要約すると、機械学習モデルは、特に文書の長さが増すにつれて、文書を理解し、重要な情報、コンピュータにとって非常に挑戦的な課題を抽出することが可能です。

この研究を推進するため、 "TensorFlowモデルコード":https://github.com/tensorflow/models/tree/master/textsum をオープンソース化し、要約研究でよく使用されるデータセットである  "Annotated English Gigaword":https://catalog.ldc.upenn.edu/LDC2012T21 でニュース見出しを生成する作業を行っています。 また、ドキュメントのハイパーパラメータは、執筆時点で最も一般的に使用されている "メトリック":https://en.wikipedia.org/wiki/ROUGE_(metric) について、公開されている最先端のものよりも優れていると規定しています。 以下では、モデルによって生成されたサンプルも提供します。


抽象的および抽象的要約


抽出および抽象的な要約要約に対する1つのアプローチは、あるメトリック(例えば、逆文書頻度)によって興味深いとみなされる文書の部分を抽出し、それらを結合して要約を形成することです。このフレーバのアルゴリズムは、抽出集計と呼ばれます。

要約に対する1つのアプローチは、あるメトリック(例えば、逆文書頻度)によって興味深いとみなされる文書の部分を抽出し、それらを結合して要約を形成することです。 このフレーバのアルゴリズムは、抽出集計 (Extractive Summary) と呼ばれます。


原文:


Alice and Bob took the train to visit the zoo. They saw a baby giraffe, a lion, and a flock of colorful tropical birds.


アリスとボブは列車に乗って動物園を訪れました。彼らは、赤ん坊のキリン、ライオン、カラフルな熱帯鳥の群れを見ました。



抽出集計 (Extractive Summary) :


Alice and Bob visit the zoo. saw a flock of birds.


アリスとボブが動物園を訪問する。鳥の群れを見た。



上記では、元のテキストに 太字の単語 を抽出し、それらを連結して要約を作成しています。読んでわかるように、抽象的な制約により要約が不自然になったり、文法的に奇妙になることがあります。これとは別のアプローチは、人間がするようなシンプルに要約することであり、これは抽出制約を課さず、再評価を可能にすることです。これは抽象要約 (Abstractive Summary) と呼ばれます。


抽象要約 (Abstractive Summary) :


Alice and Bob visited the zoo and saw animals and birds.


アリスとボブは動物園を訪れ、動物や鳥を見た。



この例では、原文にはない単語を使用して、同様の量の単語でより多くの情報を保持しています。 良い抽象要約 (Abstractive Summary) が好まれるのは明らかですが、どのようにすればアルゴリズムにこれを始めるさせることができるのでしょうか?


TensorFlow モデルについて

短いテキストでは、 Smart-Reply for Inbox と同様の Sequence-to-Sequence 学習 と呼ばれる Deep Learning 技術を使用して、要約を学ぶことができます。特に、このようなモデルを訓練して、ニュース記事の見出しを作成することができます。この場合、モデルは記事テキストを読み取り、適切な見出しを書きだします。

モデルがどのような要約を生成するかを知るためには、以下のいくつかの例を見てください。最初の列はモデル入力であるニュース記事の最初の文を示し、2番目の列はモデルが書いた見出しを示しています。


入力:第1文モデルが書いた見出し
metro-goldwyn-mayer reported a third-quarter net loss of dlrs 16 million due mainly to the effect of accounting rules adopted this year (メトロ・ゴールドウィン・メイヤーは、主に今年採用された会計規則の影響により、第3四半期の純損失は1,600万ドル) mgm reports 16 million net loss on higher revenue (mgmはより高い収入で1600万の純損失を報告)
starting from july 1, the island province of hainan in southern china will implement strict market access control on all incoming livestock and animal products to prevent the possible spread of epidemic diseases (7月1日から、南中国の海南島は、流入する家畜や動物製品の厳しい市場アクセス管理を実施し、流行病の拡大を防ぎます) hainan to curb spread of diseases ( 海南は病気の広がりを抑制する)
australian wine exports hit a record 52.1 million liters worth 260 million dollars (143 million us) in september, the government statistics office reported on monday (オーストラリアのワイン輸出は9月に2億6100万ドル(1億4,300万米ドル)相当の5億2,100万リットルを記録した。政府統計局月曜日報告)australian wine exports hit record high in september (オーストラリアのワイン輸出は9月の最高記録をヒット)


研究の将来


我々は、ニュース見出しの性質上、記事の始めからちょうど少数の文章を読むことによって、モデルが良い見出しを生成できることを観察しました。この作業は概念実証のためのものですが、良い要約を作成するためには文書全体を読む必要があるため、より難しいデータセットを検討し始めました。これらのタスクでは、このモデルアーキテクチャによるゼロからのトレーニングは、我々が研究している他の技術と同様に機能しませんが、ベースラインとして機能します。 今回のリリースは、要約研究における他者のベースラインとしても役立つことを願っています。

------

ようは、

  • Googleでも長文の要約は初めているよ
  • やりかたには以下の2つがあるよ
  • 興味深いとみなされる文書の部分を抽出、結合する(Extractive Summary)
  • Sequence-to-Sequence ベース(Abstractive Summary)
  • 実際のアウトプットを載せたから確認してね※文章として後者のほうがまとも
  • ニュース見出しコーパスだとだいたい最初にサマリ書くから精度はあがっちゃうよね
  • 将来的にはほかの長文コーパスで全文を使ってより要約分らしい文章を抽出するモデルを検討するよ

ということらしい。

Google検索すると日本の方でいくつか
要約アルゴリズムだとかWebのフォームで実際に試せるサービスとか
提供しているところもあるけど、
アルゴリズム公開している情報 を読むと
いまのところ
この記事で言う
Extractive Summary
ばっかりのようだ。

バズワードで言えば
機械学習だけど、ディープラーニングではないアルゴリズム
たとえばTF-IDFベースだとかを併用したやつとか

まあでも、それで精度が出るのならそれでも良いのだけど...


ニュース記事だけで学習しちゃうと
機械学習で最初の方にばっかりattentionされたモデルになりかねないわけか..

このへんは TOEIC の Phase7 を人間がどう解いていたかを
モデル化しないといけないわけだけど..
とすると最初にニュースなのか広告なのか報告なのかメールなのか
種類分けをCNNなりRNNなりでやる必要があるだろうなあ..

でもなあそれだとせっかく Sequence-to-Sequence してるのに
なんとなくアレか..

しっかし、Googleはほんとに Sequence-to-Sequence 好きだねえ..

0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...