こんにちは。技術部機械学習グループの深澤(@fukkaa1225)です。
3月に沖縄で行われた言語処理学会2023に参加してきました。本連載の1つ目ではクックパッドとして「レシピに含まれる不使用な材料等に関する記述の抽出」という発表を山口(@altescy)がしてくれた様子をお伝えしました。自分は共著者兼聴講参加です。
本連載の2つ目となるこの記事では気になったり面白いと感じた論文やセッションを紹介していきます。
印象に残ったセッション1: 形態素・構文解析
形態素解析といえば MeCab ですが、一強というわけではもちろんなく、様々なアプローチが提案されています。今回のセッションでは KWJA・vibrato、そして新たに提案された Jagger という多様な発表を一度に聞くことができたのは非常に貴重な経験でした。
テキスト生成モデルによる日本語形態素解析
https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/C2-3.pdf
京都・早稲田発の汎用言語モデルを用いて日本語を統合的に解析するツール KWJA についての発表です。本発表は KWJA 1.0 でトークン分類問題として定式化した形態素解析ではなく、単語の読み・原形等の推定を生成問題として定式化した、という内容でした。用いられている汎用言語モデルは T5 の他言語版である mT5 のXLサイズで、既存手法を上回る精度を達成したと報告されています。
感想: 見出し語強制デコーディング・疑似データによる曖昧性解消など、モデルの入力と出力それぞれについて必要な処理を加えており試行錯誤に基づく工夫も見られてとても勉強になりました。KWJA 2.0 は https://github.com/ku-nlp/kwjaで既に公開されており、少し試してみましたが、速度は置いておいて非常に高い精度で形態素解析・読み推定が行われていることを実感できました。今後の発展が楽しみです。
最小コスト法に基づく形態素解析におけるCPUキャッシュの効率化
https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/C2-4.pdf
最小コスト法に基づく形態素解析は入力文に現れる形態素をノードとしたグラフ構造(形態素ラティス)を構築し、その後コストが最小となる経路を探索し、対応する形態素列を出力する、といった手法です。 MeCab が代表的です。代表的な手法である一方で問題点も存在する、といった指摘がされており、こちらの発表ではその解決法を提案していました。具体的に焦点が当てられた問題点は辞書構造の肥大化に伴う CPU キャッシュの効率低下です。この問題点に対して、データを格納する際にバイト構造ではなく Unicode で持つようにした上で、頻度順に並び替えることで局所性を改善したと報告されています。
感想: https://github.com/daac-tools/vibratoから利用できる vibrato の発表でした。実際に https://vibrato-demo.pages.devからブラウザで動くデモを試すことができるのですが、かなり高速で動作していることがわかります。論文中でも速度に重きが置かれた比較が行われていました。記述されていない形態素解析の性能が気になりますが、今後も継続して改善を行っていくとのことなので非常に楽しみです。
最長一致パターンに基づく高速・高精度な日本語形態素解析
https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/C2-5.pdf
様々な高速化が行われてきた現代でこれ以上速くなることは当分ないかな、と思っていたのですが最長一致法でさらなる高速化が提案されました。学会が始まる前から話題になっており、個人的に注目度の高かった発表だったと思います。 辞書を元にパターンをまとめて、そのパターンを使って文章の先頭から照合を行い条件に合致したパターンを解析結果として提供する、というのが概要です。京都大学テキストコーパスと京都大学ウェブ文書リードコーパスでの実験結果では MeCab や Vaporetto と同程度の F1 値で、 MeCab の 16-21 倍、 Vaporetto の 3-9 倍の速度で解析を行うことができたと報告されています。
感想: 恐らくパターン生成に使う辞書、及びそれを適用する文章ドメインによって解析性能が上下しやすいのではないか、と思っていますが、それを差し置いてもシンプルなアイデアで効果的な結果が得られた印象深い研究だと思いました。実装が公開されるのが楽しみです。
印象に残ったセッション2: 埋め込み表現
BERT が出てきて以降、そのメカニズムや挙動を調べる研究は年々盛り上がり続けている印象があります。日本語で質の高いセッションが聞けてとても良かったです。
自己注意機構における注意の集中が相対位置に依存する仕組み
https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/C3-3.pdf
Transformerの自己注意機構において、各トークンが周辺のトークンに注意を集中させるメカニズムを分析した研究です。RoBERTaが学習を通して獲得した位置埋め込みには周期性があり、自己注意機構はそこから周期成分を抽出し、クエリとキーで位相がずれる方向に注意を集中させていることがこの研究で明らかにされました。これにより、絶対的な位置埋め込みが相対的な位置に基づいた推論をできているという経験的な事実を一部説明することができるようになりました。
感想: まだまだ分かっていないことが多い Transformer について丁寧な解析に基づいた発見が積み重ねられたことはとても大きなインパクトがあり、重要な研究だなと感じました。
BERTを用いた文埋め込みモデルの単語の暗黙的な重み付け
https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/C3-4.pdf
word2vec や fastText といった static な embedding が主流だったときは文章埋め込みを得る際、重みを調整しながら平均することでよりより文章埋め込みが得られることが知られていました。 が、BERT以降の context を汲み取れるモデルではそうした工夫なく既存手法を凌駕しています。この研究ではその理由を知る一歩として、マスク言語モデルが各単語を情報量に従って重み付けしているのでは、という仮説を Integrated Grad を使って検証しています。 結果、情報量 -logP(w) と言語モデル内の重みの強さには緩やかな正の相関が見られたとのことでした。また、追加学習をすると更に相関係数が上がることが報告されています。
感想: ただただ面白かったです。テキストにも使える GradCam みたいな手法があることを初めて知れて勉強になりました。
Transformer言語モデルの予測ヘッド内バイアスによる頻度補正効果
https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/C3-5.pdf
Transformer の挙動を調べる研究において、注意機構やフィードフォワードに着目した研究は数多くありましたが、予測ヘッドに近い部分のバイアス項に着目した研究はそれほど多くありません。こちらの研究ではバイアス項と出力との関係性に関する分析を行っています。 対象としたモデルは BERT-cased と、GPT-2 です。両者に共通しているバイアス項を除去してみると、コーパス中で高頻度の単語の出現回数が減り、低頻度の単語の出現回数が増える現象が確認されました。 次にこのバイアスを除去ではなく調整することで、頻度の高い表現を出にくくするよう調整したり、頻度の低い表現を出やすくするよう調整することが可能かどうかの実験を行ったところ、バイアスを小さくすると多様性がある文章が得られる一方で人間が出力する文章との近さが低くなる、といったトレードオフな関係性があることが明らかにされました。
感想: 表現力の小さいモデルは頻度情報の制御をバイアスに任せて、本体のモデル重みでより核となる言語情報を処理しているのではないか、という考察が面白かったです。モデルにとって重要な情報がなにか、はさらなる大規模言語モデルになると変わってきそうで、今後もこうした研究を追っていきたいです。
ガウス埋め込みに基づく文表現生成
https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/C4-4.pdf
文章埋め込みは多くのタスクで有用なものとされています。文章埋め込みは点で表現されますが、こちらの研究では文章埋め込みを分布で表現することで、広がりを持った表現を獲得しようとしたと報告されています。分布で埋め込みを表現することで文章同士の重なり具合が計算できるようになり、含意表現などの問題を解きやすくなっています。NLIデータセットを使って、BERTに入力した際に得られる CLS トークンのベクトルから、ガウス分布を構成する平均と分散のパラメータを後続の FFN が出力します。これをある文章のガウス埋め込みとして、ガウス埋め込みの類似度を計算し、含意か矛盾かといったラベルに従って対照学習を実施したとのことでした。後続タスク(含意かどうか)を解くときは similarity がしきい値を超えているかどうかでラベルを推定し、その結果 SNLI データセットで Supervised-simCSE を上回ったとのことでした。
感想: Box-Embedding などいくつか似たアプローチがあるかと思いますが、こちらのアプローチはとても直感的で理解しやすく、シンプルなアイデアだったため非常に扱いやすく感じました。クックパッドでも似ている料理を判別したい時があるのですが、分布で表現するこのようなアプローチはとても有用に感じました。
印象に残ったセッション3: ことばの評価と品質推定
編集操作によるデータ拡張を用いたテキスト平易化の自動評価
https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/A6-2.pdf
既存のテキスト平易化タスクを評価する際には、どの程度平易になったか、を評価するための参照文が必要になります。が、この参照文を集めるのはそれなりのコストがかかることが知られています。こちらの研究では、参照文を必要としない平易化の評価方法として SIERA(SImplification metric based on Edit operation through learning to RAnk)が提案されています。核となるのは、平易性を評価するランキングモデルを構築し、それを平易化指標として利用する部分です。このランキングモデルを作るための学習データとして、編集操作を行って拡張したデータを用いています。原文と平易文のパラレルコーパスを使って、原文を平易に編集操作したものを中間文として、これを生成することでより粒度の細かいモデルが学習できることを狙っています。得られたモデルの出力結果を人手で得られた評価結果と比較したところ、相関係数が0.3~0.4程度得られており、有用な指標であることが示されています。
感想: クックパッドにおいて平易化の概念は持ち込みにくいですが、少し考え方を変えて基本のレシピ→それをアレンジしたレシピ、という対が作れればそのデータを使ってアレンジ度合いを評価することができそうだな、と思ったりしました。そのときにこのような編集操作を用いてある材料・調味料を減らしたり増やしたりして、疑似データを作るときにこの考え方が役に立つかもしれません。
入力文と自然言語処理モデルの相性判定
https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/A6-5.pdf
あるテキストを翻訳モデルに入力した後の出力品質について、本来であれば出力された文章と Gold な文章とを比較することで BLEU などの指標を計算して評価を行います。こちらの研究では文章を入力する前にどの程度うまくいきそうか、を品質推定するモデルが提案されています。学習方法としては機械翻訳を通したコーパスについてBLEU の値がしきい値以上であるかどうかでラベルを付与・感情極性分類についてはその正解率についてしきい値を基準にしてラベルを付与し、そのラベルを分類するモデルとして多言語 XLM-RoBERTa・日本語BERT をそれぞれ fine-tuning したものを使っています。結果としてはそれぞれ7~8割程度の正解率でラベルを予測できた、とのことでした。
感想: 入力文のみを使って品質を推定するという発想がとてもユニークに感じました。正解率もそれなりにあったため、翻訳・極性分類がうまくいく文章とそうでない文章との間で何らかの差異が見られるというのは面白かったです。
参照例を使わないキャッチコピーの自動評価
https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/A7-2.pdf
キャッチコピーを評価するタスク・データセットとそれを解くモデルとして対照学習を提案した論文です。キャッチコピーを生成するタスクを解こうとしたときにそれを評価する術がこれまでありませんでしたが、この論文ではそのキャッチコピーがどのような賞を受賞したのかに応じてスコアを振り、それを学習することで評価器を得ています。ランダム・Perplexity・SVR・BERT Regression・BERT contrastive(スコアについて s1>s2 になるようにペアを選び学習) というモデルを用意して比較したところ、BERT contrastive が最も良い性能が得られたとのことでした。
感想: 特徴量を用いて学習するモデルにおいて、会社の情報を用いると精度が上がるが会社情報だけでも性能があまり落ちなかった、という報告があり、キャッチコピーの性質上避けられない問題だな、と思って聞いていました。とはいえ受賞、というのはある側面からのキャッチコピーの質を評価したものであることに変わりなく、他に使えるデータもなかなかなさそうなので難しそうでした。が、とにかく面白い研究でした。
下流タスクでの日本語事前学習モデルの性別バイアスの評価
https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/A7-3.pdf
日本語の事前学習モデルについて、そのモデルを使って下流タスクを解く場合に問題となるのが事前学習モデルが含むバイアスです。バイアスにも様々な種類がありますが、こちらの研究では性別バイアスに着目しています。バイアスの計測には NLI 的な考え方を適用し、職業に関する性別バイアスが反映されそうな文章を用意します。例えば「医師がテニスをしています」「男性がテニスをしています」「女性がテニスをしています」のようなものです。これらを用意して、矛盾しているか含意関係にあるかをモデルに出力させることで、バイアスを可視化するといった狙いです。ステレオタイプ・ステレオタイプでの性別をひっくり返したもの(アンチステレオタイプ)・ノンステレオタイプのデータをそれぞれ用意して含意・矛盾・中立のいずれの出力が得られるかを計測したとのことでした。cl-tohoku BERT をはじめとして広く使えるモデルを対象として実験を行ったところ、ステレオタイプのデータでは含意、アンチステレオタイプのデータでは矛盾を出力する割合が高くなっていることを確認できたそうです。程度の大小はあるものの、全ての事前学習モデルに性別バイアスが存在することが明らかになりました。
感想: ImageNet を学習した画像系の事前学習モデルでもキャプション生成でキッチンに居る人を本来は男性なのに女性と出力してしまう、など以前から事前学習モデルにバイアスが存在することは指摘されていましたが、言語系でもそれがあることがはっきり示されており、インパクトのわかりやすい研究でとても印象に残りました。クックパッドで事前学習モデルを使うときに、料理ドメインに関するバイアスがないかを計測するタスクを考えてみるのも面白そうだなと考えたりしています。
その他印象に残った発表
意味解析: 思考連鎖指示における大規模言語モデルの否定表現理解
https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/C10-1.pdf
GPT-3・OPT を対象とした研究です。Chain Of Thoughts Prompt と呼ばれている、思考過程を出力させながら答えを求める質問を投げることで、GPT-3 の推論能力を引き上げられることが知られています。この論文では、言語モデルが特にこれまで苦手としてきた否定表現を対象として、否定表現が含まれる質問に対して、その推論内容及び結論が正しく得られるかどうかを評価しています。 事前に得られている知識に基づく推論がされないように架空のスポーツ・人物名を用意し、それを用いて YES, NO が得られる質問文章を用意します(Yes, No の割合はおおよそ50%ずつ)。質問文章は only, implausible, not を混ぜたものを数パターン用意しており、こうした否定文が含まれる質問文章から正しい応答が得られるかどうかを確認しています。 対象のモデルは GPT-3 (text-davinci-002)、OPT-(最大 66B) を用いています。得られた結論としては、いずれのモデルでも否定表現が混じった質問文章では No と答える確率が 8割以上(正答率5,60%程度)になってしまうことがわかりました。否定表現が混じっていない質問文の場合は正答率が80%程度ある場合でも否定表現が含まれるとかなり正答率が落ちており、現在の最先端 LLM であっても否定表現が苦手であることがわかりやすく示されています。
感想: 否定が苦手なのはGPT-3.5-turbo、GPT-4 になっても変わっていないような感覚があります。OpenAI も Best practices for prompt engineering with OpenAI API | OpenAI Help Centerの中で Instead of just saying what not to do, say what to do instead
と書いています。この研究ではどれくらい否定表現が理想的な出力を得る上での障害となり得るか、について詳細な知見が得られて非常に勉強になりました。特に研究で得られた結果の面白さもさることながら、架空の名称を用いることで事前知識が使われないようにして推論能力だけに着目できるようにする実験デザインが非常に素晴らしいなと感じました。
形式言語: チョムスキー階層とニューラル言語モデル
https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/D12-3.pdf
チョムスキー階層と呼ばれる形式言語を階層別に分類する考え方があります。近年、言語モデルについてチョムスキー階層のどのクラスに属する言語までを認識できるのか、といった研究が盛んに行われています。こちらの研究では語彙の影響を排除し、先行研究より自然言語の実態に即した評価を行うために終端記号を多様化したタスクを新たに提案し、その形式言語を用いて言語モデルの扱える範囲を調べています。 対象としたのは LSTM と GPT-2 です。提案した形式言語を用いて幾つかのパターンを用意し、それらのパターンについてあるクラスに属するかどうかの二値分類タスクを学習させてどの程度認識が可能かを比較しています。 結論として、LSTM の方が GPT-2 よりも多くの場合で高い精度での汎化性能を示したとのことでした。特に論文中における AnBn型では顕著な差が生じており、言語モデル間での扱える範囲に差が見られる結果となっています。
感想: LSTM の方が GPT-2 よりも一定高い精度での汎化性能を示したことは近年の流れからいうと興味深い現象でした。ただ Transformer がチョムスキー階層にうまく位置づけられない、といった論文がいくつかあることもあり、それほど不思議ではない結果かなとも思いました。じゃあなぜ GPT-3,4 があれほど上手に言語を扱えるのか、という疑問が次に浮かんできますが、それは今後の研究できっと明かされていくのだろう、と思い今後の研究を引き続き追っていきたいなと思います。
NLP 2023 に参加してみて
しばらくオンライン開催が続いていた自然言語処理学会ですが、改めて最先端の研究にオフラインで直に触れる機会が貴重であることを実感しました。知り合いとあってその場で議論をしたり、発表者の方に直接質問して知見を深めたり、というのはオンラインとオフラインでどうしても質が違うものだな、と感じました。情勢が落ち着いていたらぜひ来年もオフラインで参加したいです。 特に今年は会期中に GPT-4 が発表され、参加者の発表の中でも急遽 GPT-3,4 に触れている発表が散見され、研究をされている皆さんの動きの速さを見て改めて重要度を再認識しました。
さて、クックパッドは非常にテキストで構成されているデータの比重が高いサービスです。機械学習グループに所属しているメンバーの殆どが自然言語処理を専門としていることもあり、毎日議論は尽きないのですが、今回の学会を通じてより一層 NLP に対する熱量を高められた、と感じています。 また、学会で行われた発表を聴講している中で感じたのは使用されているモデルのトレンドでした。殆どの研究が BERT 以降のモデルを使用していました。一方で、クックパッドの料理ドメインにおける言語処理タスクで、これら基盤モデルの性能を十分に発揮させることはまだできていない状況です。しかし、今後より一層積極的に基盤モデルと向き合い、活用の可能性を模索していきたいと考えています。
この記事を読んでいただきありがとうございました。 最先端の自然言語処理技術を用いて機械学習の技術をプロダクトで活かしたい方がいらっしゃいましたら、ぜひ新卒・中途採用にご応募ください。
また、今年の夏には就業型インターンの枠を増やして募集を行います。学生の方で興味がある方はぜひ申し込んでみてください。
明日は弊グループの原島(id: jharashima) から座長編が投稿されます。こちらもぜひご覧ください。