2021年9月21日火曜日

文字を知らなくても言語は習得できる

Facebook AIが最近発表したこれ, おもしろいです.  Textless NLP … 文字を使わない自然言語処理って何それ!?

Textless NLP: Generating expressive speech from raw audio



あらまし

BERTやGPT-3など, 大量のテキストデータを学習した言語モデルの有用性が近年明らかになってきた.  それと同じ要領で, 音声を入力として(話された)言語を学習するモデル, GSLM (Generative Spoken Language Model)を開発した.  下図がその基本構成.

システムの構成部品に新しさはなく, 組み合わせの妙.  K-meansのような古臭い手法が入っているのが逆に斬新?
  1. Encoder (S2u: Speech-to-unit)
    入力音声を素片(20ms程度のセグメント)単位でベクトル(例えば768次元)に変換し, さらにクラスタリングによってシンボル(←文字らしき何か)の系列に変換.  実体はCPCwav2vec 2.0, HuBERTなどのニューラルネットワーク(自然言語処理のword2vecに相当)とK-meansクラスタリングの組合せ.
  2. Decoder (u2S: unit-to-Speech)
    シンボル系列から音声を生成する音声合成器.  Tacotron 2とWaveGlowで構成されたニューラルネットワークが, Encoderに入力された音声を再構成できるように訓練される.  訓練データはLJ Speech, 約24時間分の読み上げ音声.
  3. uLM (unit Language Model)
    シンボル系列を与えられて次に来るシンボルを予測する, GPTシリーズと同様の自己回帰型(autoregressive) Transformer言語モデル.  Encoderが出力するシンボル系列を学習.  サイズは12層, 1024次元, 16ヘッドで, GPT-1やBERTBASEと同じか少し大きい程度.  訓練データはLibri-Light, 約6000時間.
ざっくり言えば, 通常の自然言語処理でテキストを最小単位に分割するトークン化(tokenization)を行うのと同じように音声をトークン化, さらにそれを使ってGPTタイプの言語モデルを構築したということ.  したがって, GPT-3がテキスト(プロンプトと呼ばれる)を受け取ってその続きを生成できるのと同様に, GSLMは音声で与えられたプロンプトの続きを音声で生成できる, つまり(理想的なイメージとしては)人間が何かを話すとその続きをしゃべってくれる!

ただし, 実際にどれほどのことができているかというと…以下の生成例は論文から引用.

温度パラメタ(uLMが出力するシンボルのランダム性の度合い)を低く設定すると, 同じ語が反復される単調な出力となる一方で, 温度が高いと様々な語を無意味に吐き出す状態に.  温度を適切に調節できれば, まずまず文法的に正しく, 話題的にも一貫性のあるテキストが得られる.

公開されているサンプル音声を聞くと, 内容はおかしいが人間がしゃべっているように聞こえる.  深層学習ベースの表現学習(HuBERT)をEncoderに用いることで, 旧来の信号処理による方法(LogMel)よりもクオリティが向上している.  特筆すべき点としては, 英語という言語を明示的に教えていないのに英語らしく聞こえるのが興味深い.

コメント

文字を教わる前の幼児, あるいは文字がなかった先史時代の人類が脳内に持っていた言語モデルはこんな風だったのだろうか…と想像させられる, 興味深い研究.  以下は前出のサンプル音声の抜粋.  深層学習を使わない従来法(LogMel)の壊れ具合がなかなかシュールです(笑)

LogMel
HuBERT

構成的には, GPTタイプの言語モデルに音声のインタフェースを被せた, 音声でやりとりができる言語モデルという体.  これがGPT-3並みのパフォーマンスをもった日には, 自分が言いたいことを少し話せば後はコンピュータがしゃべってくれたり, コンピュータと自然に会話(音声チューリングテスト!)できたりと, GPT-3を上回るイノベーションになるはずですが, 残念ながら(あるいは幸い?), まだそのレベルには程遠いようです. 

いかんせん, 言語モデル(uLM)が小さい.  GPT-1やBERTBASE並みであればパラメタ数は1億を超えているので, 通常の基準で見れば決して小さくないのですが, GPT-3 (1750億)と比べると1/1000以下なので, GPT-3のような驚異的な能力を期待するのは筋違いなのですね.

じゃあuLMをもっと大きくすればいいかというと, それができるならとっくにやっているでしょう.  訓練データがネックです.  6000時間は音声のデータセットとしては最大級ですが, テキストに換算すると必ずしも大きくありません.  6000時間みっちりしゃべったとしたら, だいたい1時間あたり1万語としてトータル6000万語.  今回のシンボルの単位は単語よりも小さい音節や音素に相当するようなのでもう少し数を稼ぐことができて, ざっくり1~3億くらいでしょうか.  対して, GPT-1BERTの訓練データはそれぞれ8億語と33億語.  GPT-2やGPT-3の領域に進むためには, 桁違いの巨大な音声データを用意する必要があります.

とはいえ, "textless NLP"は従来の音声情報処理システムの固定観念をひっくり返しそうな可能性を秘めており, 工学的な価値もあり面白いです.  音声情報処理といえば通常は, まず音声認識(speech-to-text)で音声をテキストに変換して, 自然言語処理(NLP)にかけるという流れ.  感情認識や声紋認証などの処理は, 必要なら別モジュールとして適宜付加する設計です.  Textless NLPはこれらをオールインワンで実現できるかもしれません.

なお本研究の新規性は別のところにあり, 前出の論文の筆者らは, この種のシステムが生成する音声の品質(自然性や多様性)を定量的に測る尺度を考案してシステム間の優劣を明らかにした点が主要な貢献であると述べています.  過去にはVQ-VAE [van den Oord+ 2017]という先駆的な研究(画像, 音声, 映像からその構成要素を自動抽出するニューラルネットワーク)があり, 近頃も事前知識がない状態で音声から音の単位を発見するZero-Resource Speech Challengeのようなコンペティションが盛り上がっているようなので, 研究で新規性を出すのは容易ではないかも.  この分野に限らず深層学習時代の「あるある」ですが😖

0 件のコメント:

コメントを投稿