Spaces:
Running
Running
MaskedLMで[Mask]が"承認"や"否決"である確率が低い問題への対策
#2
by
mittu
- opened
BERTが承認か否決を選択するアルゴリズムについて考えてみました。
現状だと[MASK]に入りそうな単語として"賛成"や"反対"の方が生起確率が"承認"や"否決"より高い場合があることがあり、
モデルが適切に2択を答えていると言い切れないと思います。
ある単語vと同意の単語は単語vと分散表現が近いということを踏まえて、
- allow_weight= "承認"と語彙の各単語の分散表現の距離(内積かコサイン類似度かその他)を計算しSoftmaxしたもの
- deny_weight = "否決"と語彙の各単語の分散表現の距離を計算しSoftmaxしたもの
- モデルが出力したlogitをSoftmaxした確率分布P(w)とaloow_weightを積算
"承認"と同意義で出力確率の高い単語のスコアがハイライトされる - モデルが出力したlogitをSoftmaxした確率分布P(w)とdeny_weightを積算
"否決"と同意義で出力確率の高い単語のスコアがハイライトされる - 3と4で計算したスコアから"承認と"否決"のどちらにするかをどうにかして決定
って言うのがいいのかなって思いました。
少なくとも分散表現の近い単語のlogitは積極的に使って行ったほうがいい気だけはしています。
余談ですが、その際のスコアを同時に出力すると、AIの選択に説得力が生まれるかと思います。
一旦,mT5をpromptが簡単なmBERTに変更し,YesとNo(トークン化後1トークンに収まる対義語のサブワード)に変更しました.少しはマシになる気がします.
https://huggingface.co/spaces/gojiteji/NAGISystem/commit/dad54e880df39e39e3d62e703421d758cee3c2d8