最近の言語生成の強化学習

こんにちは、品川です。本記事は強化学習 Advent Calendar 2021 6日目の記事です。

短いですが、最近の言語生成周りの強化学習関連の話題を取り上げたいと思います。

言語生成周りの強化学習のおさらい(2020年時点での私の理解)

  • 言語生成モデルの訓練にはTeacher forcingを用いる
  • 言語生成で最もよく使われている強化学習手法は、方策勾配法の最も簡単な手法であるREINFORCEアルゴリズムである(他にもActor-criticや、DQNをはじめとする価値ベースの手法などが使われている)
  • REINFORCEでは、生成した文に対してあらかじめ報酬を算出しておき、Teacher forcingで用いていた目的関数(負の対数尤度)に、トークンごとに重みづけして学習する操作に対応している
  • REINFORCEは勾配の分散が大きいので、ベースライン関数を適用することで分散を下げる工夫が重要である
    • ベースライン関数には、ミニバッチ内の報酬の平均値や、Self-critic(greedyにサンプルした文の報酬を使う)ことが多い
  • REINFORCEでモデルを一から学習するのはうまくいかない。Fine-tuningで用いるのが一般的
  • REINFORCEは色々な分野で頻繁に登場しているものの、Actor-criticや価値ベースの手法は、(いくつかの手法が提案されてきたものの)あまり他の論文で利用されていない。
    • 私見としては、Action space(語彙数)が大きいのもあってか、モデル学習の手間がかかる割には期待するほどの精度向上が得られないとみなされているのではないかと考えている。

詳しくは、去年の「強化学習苦手の会 Advent Calendar 2020」の私の記事や、「2021.04.08 強化学習若手の会チュートリアル 言語生成の強化学習」を参考にしていただければと思います。

adventar.org

speakerdeck.com

最近の言語生成の強化学習①:REINFORCEもPPOへ徐々に移行中

Proximal Policy Optimization (PPO)とは、REINFORCEと同じく方策勾配ベースの手法です。
ロボティクスの分野ではよく使われている手法でしたが、2019年にOpenAIがPPOを利用する論文を出してから、徐々に言語生成周りの論文でもPPOが登場するようになってきました。

このOpenAIの論文は、私の記事でも一度取り上げたことがあります。PPOをREINFORCEと直接比較した結果がないのがちょっと気になるんですけど、まあPPOがREINFORCEより悪くなるケースというのもそんなにないんでしょうし、大丈夫でしょう。。。いつか誰かが試してくれることを願います・・・(自分でやる時間がない) snowman-88888.hatenablog.com

ちなみにHuggingfaceでは、GPT-2をPPOで学習するライブラリがサポートされてたりします。 lvwerra.github.io

実は言語生成の強化学習周りで使い勝手の良いライブラリは(いまだに)あんまり無いです。あると便利かもですね(自分でやる時間がない)

PPOが使われた最近の事例としては、募金を呼び掛けるという説得対話タスクにおける文生成の強化学習にPPOを使った例があります。

Refine and Imitate: Reducing Repetition and Inconsistency in Persuasion Dialogues via Reinforcement Learning and Human Demonstration (EMNLP2021 Findings) aclanthology.org

最近の言語生成の強化学習②:価値ベース?できるよ。そう、事前学習済み言語モデルならね

トークンごとに価値を推定するActor-criticや価値ベースの手法は難しいとされていました。理由は、下記の論文で言及されているように、action spaceが語彙サイズなのでデカすぎて、即時報酬を予測するモデルを学習することが難しいという点です。

However, RL by far has made limited success for training text generation, primarily due to the key challenges of sparse reward (i.e., a single reward signal is received only after the whole text sequence is generated) and large action space (i.e., a vocabulary of millions of words). [2106.07704] Text Generation with Efficient (Soft) Q-Learning

昔は何をしていたかというと、action spaceに制約を与えたり、時刻ごとに報酬を切り崩すreward shapingという方法が行われていました(詳しくは下記)。 言語生成の強化学習をやっていく(手法紹介 Actor-Critic編②) - Seitaro Shinagawaの雑記帳

ただ、最近の論文によると、BERTやGPT-2などの事前学習済み言語モデルを使えば、価値ベースでも十分動くようです。

arxiv.org

この論文では、Soft Q-learning(目的関数に、報酬の期待値最大化に加えて方策エントロピーを最大化して多様性も向上させる項を追加したQ-learning手法)を利用した手法を提案してして、Critic(Q)のモデルに事前学習済みの言語モデルを用いています。性能もpolicy gradientと比肩しているようで、タスクによっては有効な選択肢に入ってくるのではないでしょうか?

ただ、どういう場合で活きてくるかは私もまだよくわかってません。文の途中からでも評価ができるという利点は文の制御がまず思いつきますが、昨今の文生成では俗に「スペシャトークン芸」と言われるように、タスクや制御したい情報を特殊トークンとして加えることで文を制御することが一般的であり、少なくとも言語生成タスクにおいてはそこまで重要とは思えません。off-policyとon-policyを使い分けられるところがうまみになるんでしょうか?よくわからんです。知見のある方がいらっしゃればぜひ教えていただけると幸いです。