【論文ノート】K-BERT:知識グラフによる言語表現の実現

紙のアドレス:https
://arxiv.org/abs/1909.07606v1プロジェクトのアドレス:https ://github.com/autoliuweijie/K-BERT

概要

BERTは、大規模なコーパスから一般的な言語表現情報を取得できますが、ドメイン固有の知識が不足しています。これに応えて、論文の著者は、特定の知識としてトリプルを文に注入することにより、知識グラフ(KG)を組み込んだK-BERTモデルを提案しています。しかし、あまりにも多くの知識が組み込まれていると、元の文が正しいセマンティクスから逸脱する可能性があります。これは、知識ノイズ(KN)問題と呼ばれます。この問題を解決するために、著者はソフトポジションと視覚化マトリックスを導入して、元の文に対する知識の影響を制限します。

前書き

ドメインテキストを読むとき、一般の人々は文脈からしか理解できませんが、専門家は関連するドメイン知識の助けを借りて推論を行う能力を持っています。したがって、著者はドメイン固有の知識を使用してモデルを事前トレーニングする予定です。
KGをLR(言語表現)モデルに統合できる場合、モデルにドメイン知識を装備し、それによってドメイン固有のタスクでのモデルのパフォーマンスを向上させると同時に、大規模な事前トレーニングコストを削減します。さらに、注入された知識は手動で編集できるため、生成されたモデルはより解釈しやすくなります。

  • 知識注入で遭遇する2つの課題:
    (1)異種埋め込み空間(HES):テキスト内の単語の埋め込みベクトルとKG内のエンティティの取得ベクトルが分離されているため、ベクトル空間に一貫性がありません。
    (2)知識ノイズ(KN):知識が多すぎると、元の文のセマンティクスが変更されます。

したがって、著者は、事前にトレーニングされたBERTモデルをロードし、モデルにドメイン知識を簡単に注入できるK-BERTモデルを提案します。

  • 主な貢献:
    (1)BERTと互換性があり、ドメイン知識を組み込む際の異種埋め込みスペースの問題や知識ノイズの問題がないK-BERT。
    (2)知識が細かく統合されているため、K-BERTモデルは、オープンドメインタスクと特殊ドメインタスクの両方でBERTモデルよりも優れた結果を達成します。
    (3)オープンソースアドレス:https://github.com/autoliuweijie/K-BERT

モデル構造

ここに画像の説明を挿入
上の図に示すように、他のRLモデルと比較して、K-BERTには、そのアプリケーションドメインに適合させることができる編集可能なKGが装備されています。モデルには、ナレッジレイヤー、埋め込みレイヤー、可視レイヤー、マスクトランスコーダーレイヤーが含まれます。入力センテンスの場合、ナレッジレイヤーは最初に関連するトリプルをKGからセンテンスに挿入し、元のセンテンスを豊富な知識を持つセンテンスツリーに変換します。次に、センテンスツリーは埋め込みレイヤーと表示レイヤーの両方にフィー​​ドされ、トークンレベルの埋め込み表現と可視性マトリックスに変換されます。可視性マトリックスは、各トークンの可視領域を制御するために使用され、注入された知識が多すぎるために元の文の意味が変化するのを防ぎます。

知識層

文と文ツリーに知識を注入するための変換。入力文が与えられた場合:s = [w0、w1、w2、…、wn]およびKとして示されるKG、次に文ツリーt = [w0、w1、…、wi [(ri0、wi0)、…、( rik、wik)]、…、wn]。
最初に、入力文のすべてのエンティティのトリプルについてKGにクエリを実行します
ここに画像の説明を挿入
。EE = [(wi、ri0、wi0)、…、(wi、rik、wik)]

次に、K-Injectは、Eのトリプルを対応する位置に注入することにより、クエリされたEを文sに注入し、文ツリーtを生成します。tの構造を図3に示します。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

埋め込みレイヤー

BERTと同様に、K-BERTの埋め込み表現は、トークン埋め込み、位置埋め込み、セグメント埋め込みの3つの部分の合計ですが、K-BERTの埋め込みレイヤーの入力は、トークンのシーケンスではなく文ツリーであるという違いがあります。したがって、文構造情報を保持しながら文ツリーをシーケンスに変換する方法がK-BERTの鍵となります。

K-BERTとBERTのトークン埋め込みの違いは、埋め込み操作の前に、センテンスツリー内のトークンを再配置する必要があることです。再配置戦略では、ブランチ内のマーカーは対応するノードの後に​​挿入され、後続のマーカーは後方に移動されます。図2に示す例では、文ツリーは「Tim CookCEOAppleが北京首都を訪問しています。中国は今都市です」と再配置されています。このプロセスは単純ですが、文が読めなくなり、適切な構造情報が失われます。幸いなことに、それはソフトポジションと可視性マトリックスで解決できます。

ソフトポジション埋め込み

図2のセンテンスツリーを例にとると、並べ替え後、[CEO]と[Apple]が[Cook]と[is]の間に挿入されますが、[is]の件名は[Apple]ではなく[Cook]である必要があります。 。これを修正するには、[is]の位置番号を5ではなく3に設定するだけです。したがって、トランスフォーマーエンコーダーで自己注意スコアを計算する場合、[is]は[Cook]の次の位置に等しくなります。ただし、別の問題が発生します。[is]と[CEO]の両方にジョブ番号3があり、自己注意を計算するときにそれらを近づけますが、それらの間に実際の関係はありません。この問題の解決策は、自己注意をブロックすることです。これについては、次のセクションで説明します。

セグメント埋め込み

BERTと同様に、K-BERTもセグメント埋め込みを使用して、複数の文が含まれている場合に異なる文を識別します。たとえば、2つの文[w00、w01、…、w0n]と[w10、w11、…、w1m]を入力すると、それらは1つの文[[CLS]、w00、w01、…、w0n、[SEP]に結合されます。 、w10、w11、…、w1m]および[SEP]。結合された文の場合、セグメントトークンシーケンス[A、A、A、A、…、A、B、B、…、B]でトークン化されます。

目に見える層

目に見える層は、K-BERTとBERTの最大の違いであり、この方法を非常に効果的にしている理由です。K-BERTへの入力は文ツリーであり、ブランチはKGから取得した知識です。ただし、知識のリスクは、元の文の意味が変わる可能性があることです(つまり、KNの問題)。たとえば、図2の文ツリーでは、[China]は[Beijing]のみを変更し、[Apple]とは関係ありません。したがって、[Apple]の表現は[China]の影響を受けません。一方、分類に使用される[CLS]タグは、[Apple]情報の[Cook]をバイパスしないでください。これは、セマンティック変更のリスクを伴うためです。これを防ぐために、K-BERTは可視性マトリックスMを使用して各マーカーの可視領域を制限し、[Apple]と[China]、[CLS]と[Apple]が互いに見えないようにします。
ここに画像の説明を挿入

マスク変換レイヤー

ある程度、可視行列Mには文木の構造情報が含まれています。BERTのトランスフォーマー(V aswani et al。2017)エンコーダーはMを入力として受け取ることができないため、Mに従って自己注意領域を制限できるMask-Transformerに変更する必要があります。Mask-Transformerは複数のマスクのスタックです。 -自己注意のためのブロック。BERTの場合、レイヤーの数(つまり、マスク-自己注意ブロック)をL、非表示のサイズをH、マスク-自己注意ヘッドの数をAと表します。hi
ここに画像の説明を挿入
はi番目のマスク-自己-非表示です。注意の状態、Wq、Wk、Wvはトレーニング可能なパラメーター、Mは可視行列、wjがwkに不可視の場合、注意スコアMjkは0に設定されます。

上記の式は、BERTの自己注意を単純に変更したもので、Mを追加したものであり、残りも同じです。2つの単語が互いに見えない場合、それらの間の影響係数S [i、j]は0になります。これは、これら2つの単語の非表示状態の間に影響がないことを意味します。このようにして、センテンスツリーの構造情報がBERTに入力されます。
ここに画像の説明を挿入
上に示したように、マスクトランスフォーマー層は複数のマスク自己注意のスタックです。[Apple]は[Cook]を介して間接的に[CLS]にのみ作用し、知識ノイズの影響を減らします。

おすすめ

転載: blog.csdn.net/weixin_40605573/article/details/113920143