BERTは外部知識か?
自然言語処理の論文で、外部知識を使っていない方法の中では、我々の方法が一番スコアが高い、という主張をしたいことがある。ただ、よく考えると今は多くの研究でBERTを使っているので、厳密には外部知識を使っていないとは言い難い。
タスクによりますが、場合によってはテストデータに含まれる文でBERTを学習していて、そのことが(気が付かないうちに)性能に影響している可能性もあります。この場合は期せずしてトランスダクティブな評価になっている。最悪のケースでは、例えば、英文の穴埋め問題をBERTを使って解かせたときに、実はテスト文と同じ文でBERTの学習をしているということもありうる。この場合は、トランスダクティブというより、学習時にテストデータの答えを見ていることになってしまう。
今の研究の流れでBERT系の事前学習を使わないことは考えらないので、BERTがだめということではないのだけれど、外部知識を使っていないという主張をするときには(自戒の意味でも)気を付けないといけない。今の若い人はBERTありきで研究をしているので、ではどうすれば外部知識を使わないで評価できるかという疑問を持つと思う。厳密には、与えられた訓練データ以外のものは何も使わないでテストするということになる。例えば、単語やトークンを昔のようにOne Hotベクトルで表現することになる。BERTも訓練データだけで学習したものを使えば、外部知識を使っていることにはならない(相当大きな訓練データでないと効果は少ないと思いますが)。
逆から考えると、今やもう訓練データだけを使って外部知識なしで評価するという時代ではなく、いかに外部知識を事前学習などで活用するかという点で勝負する研究にシフトしているという見方もできます。
少し宣伝になりますが、我々の研究室では、薬学分野の知識を知識グラフで表現して深層言語処理に組み込むと性能が上がることを確認しています。