概要
みんな大好きGrammarlyはGECベンチマーク上だとどのくらいの精度になるのか気になりすぎて夜しか眠れなかったので検証してみたというお話です。
検証
デベロッパー向けにbeta版のAPIが一応用意されているようですが、今回の用途(&その他もろもろのオーバーヘッド)を考えると、手元のGrammarly(有料版)を使った方が早そうだったのでそちらの環境で検証しました。その代わり?、有料版のGrammarlyに関しては、スペル・文法誤りなどいわゆる古典的なGECがフォーカスしてきたminimal editだけでなく、文章全体の流暢性や可読性など考慮したfluency editも提供してくれるため、そのあたりの差異も合わせて見ていこうと思います。
※ Minimal editとFluency editについては、先日書いたこちらの記事で軽く触れているのでご覧ください。
設定
モデル
-
Grammarly Basic
- Correctnessに関する修正を採用したときのシステム出力(minimal editの気持ち)
- Correctness: スペル・文法・句読点の改善に関する修正
-
Grammarly Advanced
- Correctnessに加えて、Clarity, Engagement, Deliveryに関する修正を採用したときのシステム出力(fluency editの気持ち)
- Clarity: 文章の可読性の改善に関する修正(e.g., conciseness, clarity, readability)
- Engagement: 文章をより魅力的かつ効果的にするための修正(e.g., vocabulary, variety)
- Delivery: 読み手に正しい印象を与えるための修正(e.g, formality, sensitivity)
評価
- 評価データ: JFLEG test
- 評価尺度: GLEU
CoNLL-2014ではなくJFLEGを選択したのは、Grammarly Advancedを考えると、fluency-editに対応したJFLEGを用いた方がそのポテンシャルを評価できるかなと思ったからです。
結果
モデル | GLEU |
---|---|
Stahlberg&Kumar.(2021) | 64.7 |
Mita et al.(2020) | 63.7 |
Kiyono et al.(2019) | 61.4 |
Junczys-Dowmunt et al.(2018) | 59.9 |
Chollampatt et al.(2018) | 57.5 |
Grammarly Basic | 56.7 |
Grammarly Advanced | 52.6 |
Grammarly Basicの精度はCNN Seq2Seq(Chollampatt+2018)くらいの精度でした。
個人的には思ったより低いなと感じましたが、Grammarlyが出した高性能GECモデル GECToRは、なぜかJFLEGだけ評価されていないので実際のところどうなんでしょう(もちろん、GECToRをそのままプロダクトに入れているわけではないと思いますが...)。
あと、BasicよりもAdvancedの方が低いという少し意外な結果になりました。ただし、上に書いたようにAdvancedは厳密に言うと、単純に文の流暢性に関する修正だけでなく、より高次な修正(clarity, engagement, deliver)もしているので、決して最終アウトプットの質がBasicよりも低いか、と言われるとそうでもないように見えます(むしろ質は高くなっていると感じます)。このあたりは、スペル・文法誤りなどの低次な修正に比べて、文書全体の読みやすさやなど高次な修正における妥当なリファレンスはより多岐にわたる(varianceが大きい)ので、リファレンスあり評価の限界という側面は大いにあるように感じます。
おわりに
Grammarlyの性能をGECの既存ベンチマーク上で測ってみたという話をしました。やはり実際にプロダクトに落とし込む上では単にニューラルでポンという話ではなく、モデルの軽量化含めてプロダクト側でいろいろ泥臭いことがあるかと想像するのでそのあたりのリアル話は気になりますね。
ということで(!?)、詳細は別途正式にアナウンスがあるかと思いますが、私の所属する理研AIP主催で来年の頭あたりにGrammarlyの人たちをお呼びしてトークをしてもらう予定です。上のような踏み込んだ話も聞けると思うのでもし興味がある方はぜひご参加ください(ステマ)!