ブログ

掘り起こしたジャガイモには触れないようにしましょう – 下町ディープラーニング #12

下町ディープラーニング

 みなさんこんにちは。dottの清水です。

 前回の「水も滴るいいりんご」では、ディープラーニングでAIを作るために、学習データをオーグメンテーションする、つまり水増しする方法についてお話ししました。画像では盛んで確立された手法がある分野ですが、文章を扱うような自然言語の分野では手軽に利用することが難しいという問題がありました。

 今回の記事では、機械翻訳を用いて文章を水増しさせる方法についてお話ししたいと思います。

水増し作業を減らすために

 少ない文章のデータを水増しする方法としては色々ありますが、下町ディープラーニング工場では以下の条件を満たす方法を探していました。

  1. 大量のデータを扱うことができる
  2. 作業する人間の手間が0に近い
  3. (あわよくば)言い換えのバリエーションを増やすことができる

 前回お話しした「辞書を用いた単語の置き換え」の方法でも、1の条件を満たすことができます。しかし辞書を用意することから始め、前回ご説明した「お風呂」の問題が発生しないような置き換えができる言葉を探すという手間が発生します。そしてバリエーションを増やすためには辞書を拡張するという作業を繰り返す必要があるため、手間もバリエーションに応じて増えて行きます。

 そこで僕たちが採用したのは「逆翻訳(Back Translation)」という方法でした。

日本語 => 英語 => 日本語

 逆翻訳というとなんだか難しく聞こえてしまいますが、日本語を別の言語に翻訳して、また日本語に戻すという方法のことを指しています。

 いくつかの例を挙げたいと思います。

原文「掘った芋いじるな」
翻訳「Don’t mess with the potatoes you dug up.」
逆翻訳「掘った芋に手を出すな」

原文「薬を飲むことを忘れてしまい、頭が痛いと話していた」
翻訳「He told me he forgot to take his medicine and that he had a headache.」
逆翻訳「薬を飲むのを忘れて、頭が痛いと言っていた。」

原文「ケアサービスを利用した際に、介護士さんとうまく話せなかった」
翻訳「I did not speak well with the caregiver when I used the care service.」
逆翻訳「介護サービスを利用する際、介護士とうまく話せなかった。」

 「いじるな」が「手を出すな」となっていたり「ケアサービス」が「介護サービス」となっていたり、元々のニュアンスを残しながら、うまく文章が言い換えられていることがわかります。

怪我の功名

 実は元々この方法でデータの水増しがうまくいくと考えていたわけではありません。研究の中で表記ゆれを修正する方法として試していた時、文章の言い回しが細かく変わることがオーグメンテーションに使えそうなことが分かり、導入した経緯があります。

 「DeepL」という機械翻訳のサービスはご存知かと思いますが、元々精度が高いと話題になっていた通り、この逆翻訳オーグメンテーションではDeepLを使っています。他にも有名な機械翻訳を試してみた結果、DeepLが最もこの用途には優れていると感じました。

 DeepLにはAPIがあり、機械的に処理が行えるため課題1「大量のデータを扱うことができる」はクリアしています。同時に辞書などを準備する必要がないため、課題2「作業する人間の手間が0に近い」という点もクリアしています。

 もちろん、翻訳の精度は完璧ではないので、ある程度内容をチェックする必要がありますが、画像で言えばノイズを加えるような作業に近いので、元々の意味と厳密に一致していなくても、水増しようのデータとしては十分に動いています。

 では、バリエーションはどうでしょうか?

言語は多様性そのもの

 もうお気づきかと思いますが、言語というのは多様性の代表のような存在です。そのため、英語ではない他の言語を用いて逆翻訳を試すことにしました。

 先ほどの例を、今度はイタリア語でさらに逆翻訳をしてみましょう。

原文「掘った芋いじるな」
逆翻訳・英「掘った芋に手を出すな」
逆翻訳・伊「掘り起こしたジャガイモには触れないようにしましょう。」

原文「薬を飲むことを忘れてしまい、頭が痛いと話していた」
逆翻訳・英「薬を飲むのを忘れて、頭が痛いと言っていた。」
逆翻訳・伊「薬を飲むのを忘れて、頭が痛くなったという。」

原文「ケアサービスを利用した際に、介護士さんとうまく話せなかった」
逆翻訳・英「介護サービスを利用する際、介護士とうまく話せなかった。」
逆翻訳・伊「支援サービスを利用する際、介護士とうまく話せなかった。」

 このように、原文から1回目の逆翻訳、そして2回目と遷移すると文章が少しずつ変わっていくことが確認できます。もちろん変わらない部分もありますが、大きく変化せず、細かな言い回しの変化が期待できるのが、この方法の良い部分だと考えています。

 この方法により、これまであるカテゴリーには10件のデータしかなかったものが、30件として増やすことができるため、上位5位以内に正解を当てる確率はこれまでよりも確実に向上しています。詳しい内容が知りたい方は論文として掲載されていますので、そちらをご覧いただけると嬉しいです。

これにて一件落着

 さて、これまで4回に渡ってお送りしてきた「認知症ちえのわnet」のAIのお話。この話も今回で終わりです。

 まだまだ話したいテーマはありますが、さて次はどんな話をしましょうか。そういえば、最初の頃にお話ししたニュース記事の自動分類AIが、さらに進化しているとかいないとか。

 その話はまた、次回の記事で。