この記事は、合併前の旧ブログに掲載していた記事(初出:2021年6月21日)を、現在のブログへ移管したものです。現時点の情報に合わせ、表記やリンクの調整を行っています。
こんにちは。ヤフーの音声認識エンジン「YJVOICE」の研究開発を担当している前角です。本稿ではヤフーにおける音声処理技術の研究開発の最新の取り組みを紹介します。今回は先日参加したThe Zero Resource Speech Challenge 2021(以下ZeroSpeech Challenge)で、ヤフーのチームが行ったモデルの性能改善手法を紹介します。
ZeroSpeech Challengeは、音声データのみ(話者ラベルも使用可)を用いた自己教師あり学習によって、言語理解がどの程度まで可能かどうかを競うコンペティションです。自己教師あり学習はデータ自身から自動的に生成された教師を用いて学習を行う手法で、自然言語処理や画像処理といったさまざまな分野で近年目覚ましい進展を遂げており、音声処理の分野においても現在ホットな研究テーマの1つとなっています。本コンペティションでは、音素・語彙・文法・意味の各観点で評価が行われます。我々が提出したシステム(TM1〜TM4)の結果は、ZeroSpeech Challenge 2021の概要論文のリーダーボード(Table 2)に掲載されています。本記事では、それらの評価に向けて試した手法と、得られた知見をまとめます。なお、この研究は音声処理系の難関国際会議INTERSPEECH 2021に投稿し、採択されました。
ZeroSpeech Challenge
今日の音声認識システムは、ニューラルネットワークを用いたEnd-to-End(E2E)モデルが主流となっています。ヤフーで取り組んでいるE2Eモデルについては過去に紹介した記事がありますので、こちらもご覧ください。
E2Eモデルは音声データを入力とし、それらを書き起こしたテキストデータを教師データとして1つのニューラルネットワークで学習を行うことで実現しています。E2Eモデルはタスクによ っては人間に迫る音声認識性能を達成しており、近年盛んに研究されています。しかし、基本的には音声データのペアとなるテキストデータが必要であるという制約を抱えています。一般に十分な認識性能を実現するためには大量の学習データが必要になりますので、大規模な音声データを収集するだけでなく、それらを書き起こすリソースも求められます。
一方で乳幼児が言語を理解し、話せるようになるまでの過程を想像してみてください。彼らはテキストの情報に頼らなくても周囲の環境から浴びせられる音声を元に自発的に言語を習得します。よって究極的には音声データのみから音声認識器をある程度実現できるはずであると考えられます。
ZeroSpeech Challengeは、幼少期の言語学習者が利用可能な聴覚などのセンサー情報のみを用いて音声対話システムを1から学習することを最終目標として、2015年にスタートしたコンペティションです。なお、現状ではこの最終目標に到達することが困難であるため、各回で異なるタスクを設定し段階的に目標に進んでいく構成となっています。2021年の今回は、音声データのみ(話者ラベルも使用可)を用いて音声言語モデル(spoken language model: sLM)を構築し、その性能を競うというものでした(音素に関する情報を陽に与えて学習する一般的な言語モデルと区別するため、ここでは音声言語モデルと呼んでいます)。評価は以下の4つの言語的観点で行います。
- 音素的観点: "aba"や"apa"といった音声から音素を識別可能かどうか
- 語彙(ごい)的観点: “brick”と”blick”といった単語の違いを聞き分け られるかどうか
- 文法的観点: “dogs eat meat”と”dogs eats meat”のようなペアが与えられたときに文法的に正しい方を選択可能かどうか
- 意味的観点: 2単語間の意味的な類似度を求め、人間が別途与えた類似度と相関を計算
今回私たちは、Deep ClusterとConformerという2つの手法を用いてモデルの性能改善に取り組みました。
ベースライン
本コンペティションで提供されているベースラインのシステムについて説明します。
まず、表現学習を行うことによって音声をある固定次元のベクトルに変換します。表現学習とは、入力データの要素について予測問題を解かせることによって低次元の埋め込み表現を得る手法です。ここでは、音声のような系列データの表現学習を行う上でよく用いられる手法の1つであるCPC (Contrastive Predictive Coding) を使用します。CPCは、現在時刻のコンテキストと未来方向の埋め込み表現との相互情報量を最大化するように学習を行います。その後、学習済みのCPCモデルを用いて入力音声をフレームごとに固定長の特徴ベクトルに写像します。
次にk-meansを用いてこの特徴量をクラスタリングします。これにより、各フレームの特徴量を音響的に近いクラスIDで置き換えることで入力音声は離散系列に変換されます。最後にこの離散系列を入力とし、音声言語モデルを学習します。sLMのネットワークには、近年自然言語処理の分野で注目されているBERTを使用してMasked Language Modeling(マスクされた系列から元の系列を生成)のタスクのみで学習を行います。

Deep Clusterとは?
Deep Clusterは画像処理の分野で2018年にFacebookによって提案された、自己教師あり学習によって画像分類を行う手法です。まずニューラルネットワークを用いて入力画像を特徴ベクトルに変換します。次にこの特徴量をクラスタリングすることによって得られたクラスIDを疑似ラベルとして、画像の識別学習を行います。これにより教師ラベルをあらかじめ用意することなく画像分類を学習させることが可能です。
(出典:Deep Clustering for Unsupervised Learningof Visual Features)
Conformerとは?
Conformerは、2020年にGoogleによって提案されたTransformerとCNN(convolutional neural network)を組み合わせたモデルです。Transformerに内在するself-attentionは全域的なコンテキスト情報を捉えられますが、これに加えて畳み込みモジュールを用いることで局所的なコンテキスト情報も合わせて捉えることが可能です。TransformerをConformerに置き換えることにより、さまざまな音声認識タスクで認識性能が向上することが多くの研究で報告されています。

ベースラインシステムの改良
本コンペティションの評価指標の多くは識別タスクであるため、ベースラインのシステムに対して何らかの音響的な識別タスクを追加することが有益であると考えられます。これには、ベースラインのk-meansの実行時に得られるクラスIDの情報を、表現学習用のネットワークの学習時に使用することで実現できそうです。よって、前述したDeep Clusterを用いて識別タスクを追加することにしました。具体的にはCPCの特徴量をクラスタリングした後、クラスIDを疑似ラベルとして用いてCPCと同様の構成のネットワークに対して教師あり学習を行います。これにより、このネットワークの中間層から得られた特徴量が音素識別的な表現を獲得することを期待しています。この特徴量を再度k-meansでクラスタリングし、得られた離散系列を用いてベースラインと同様に音声言語モデルを学習します。

(出典: