こんにちは.AIチームの邊土名です.
2021年8月30〜31日に開催されるNLP若手の会 (YANS) 第16回シンポジウムにて,AI Shiftから1件の発表を行います.研究内容を以下にまとめましたので,発表をお聞きになる際の参考になれば幸いです.
発表内容
① ポスター発表
[P4-18] 単語分散表現と音素列に基づく音声認識誤りに頑健な教師なし Entity linking
- 日時:8月31日(火) 15:30-17:00
- セッション:ポスターセッション (4):マルチモーダル
- 著者:○邊土名朝飛(AI Shift),友松祐太(AI Shift),杉山雅和(AI Shift),戸田隆道(AI Shift),東佑樹(AI Shift)
弊社では,電話応対業務を自動化するサービス AI Messenger Voicebot を提供しています.
いわゆる音声対話システムというものですが, AI Messenger Voicebot も一般的な音声対話システムと同様に,ユーザが発話した音声を認識し,発話内容をテキスト化,そのテキストを処理することで対話を進めていきます.
後段のテキスト処理の部分には,ユーザの発話意図分類や発話テキスト中からの固有表現抽出など様々な要素がありますが,今回の発表では Entity Linking に焦点を当てています.
Entity Linking とは,テキスト中の固有表現(地名,店舗名,商品名,etc.)をWikipediaなどの知識ベース上のエントリに紐付けるタスクです.
なお,AI Messenger Voicebot では,紐付け先は Wikipedia のエントリではなく,各クライアントが持っているEntity 辞書(店舗名や対象地域名などをまとめたリスト)が対象となっています(図1参照).
しかしながら,音声対話システム上で Entity Linking を行うにあたり,いくつかの問題が存在します.
1. 音声認識誤り
現在,汎用的な音声認識エンジンは様々な企業,研究機関で研究開発が行われ,サービスとして提供されています.Google の Cloud Speech-to-Text はその代表例です.しかしながら,それらの高性能な音声認識エンジンを以ってしてもドメイン特有の用語は認識されづらいという問題があります.
ちなみに,私の名字である「邊土名(へんとな)」も Google Cloud Speech-to-Text ではなかなか認識してもらえませんでした(発音の問題もありそうですが)
2. 誤り訂正用の教師データ収集が困難
(1)で挙げた音声認識誤りの問題の解決策として,教師データを用意して誤り訂正を行うことが考えられます.しかし,ドメインごとに大量の教師データを収集することはあまり現実的ではありません.ドメイン適応のアプローチで対処することも考えられますが,やはり専門用語の誤り訂正は非常に難しいと思われます.
3. 様々なパターンのEntity,発話が存在する
Entity の表記やユーザの発話には様々なパターンが存在します.
例えば,ある Entity では「奈良」を「なら」と表記していたりします.この2つの単語はどちらも奈良県を指しているということは人間が見ると分かるのですが,これらの単語を形態素解析器のSudachiに入力すると,「奈良」は名詞,「なら」は助動詞(「それ“なら”」の「なら」)と認識され,品詞レベルで異なる単語と推定されてしまいます.また,当然ではありますが,単語分散表現を用いて「奈良」と「なら」のCosine類似度を測ってもあまり類似していないということが確認できました.
ユーザの発話パターンでよく見られるのは略称です.例えば,「東京臨海広域防災公園」を「防災公園」のように略して発話するケースが該当します.この略称は構成単語の組み合わせで表現されるので単純ですが,「東京大学」を「東大」と略して発話するなど,略し方一つをとってみても様々なパターンが存在します.
本研究では,様々なパターンの Entity や発話を考慮でき,かつ音声認識誤りにも頑健な教師なし Entity linking 手法を提案しました.
具体的には,ユーザ発話およびEntityに含まれる単語の音素列と分散表現の2種類の情報を考慮し,単語間のアライメントを取ることで Entity Linking を行っています.
単語間のアライメントをとる手法としては最適輸送を用いており,略称に対処するために Unbalanced Optimal Transportを導入しています.
また,手法の妥当性を検証するため,弊社で運用しているボイスボットの対話ログデータ(ドメイン:飲食系,医療系)を利用し,文類似度を測る複数の手法との間で比較実験を行いました.
議論したいこと
- 音素列と分散表現のweightについて
- 提案手法では,輸送コスト計算時に単語の音素列と分散表現の2種類の情報を考慮しています.しかし,医療系ドメインのデータを用いた Ablation study では,音素列のみを考慮したほうが性能が高いという結果が示されました.
- この結果から,ドメインごとに音素列と分散表現のweightを調整する必要があると考え,Entity辞書に登録されている単語からweightを自動的に調整する方法について検討しています.
おわりに
以上の内容で当日は発表いたしますので,少しでもご興味を持った方はぜひセッションに参加していただき,様々な議論ができればと思います.
また,AI Shift以外にもCyberAgentグループから2件発表がありますので,そちらの発表にもぜひお越しください!