2

出力がName Entity(NE)の次の入力から出力へのマッピングを学習するためにニューラルネットワークモデルを訓練しているとします。NLP - 文トークンの `start`と` end`の埋め込み選択

入力:EUはボイコット英国子羊へのドイツ語の呼び出しを拒否します。

出力:ORG O MISC O O O MISC O O

スライディングウィンドウは、コンテキスト情報を取得するために作成され、その結果はmodel_inputとして学習モデルに供給されます。スライディングウィンドウは、次のような結果を生成する:

[['<s>', '<s>', 'EU', 'rejects', 'German'],\ 
['<s>', 'EU', 'rejects', 'German', 'call'],\ 
['EU', 'rejects', 'German', 'call', 'to'],\ 
['rejects', 'German', 'call', 'to', 'boycott'],\ 
['German', 'call', 'to', 'boycott', 'British'],\ 
['call', 'to', 'boycott', 'British', 'lamb'],\ 
['to', 'boycott', 'British', 'lamb', '.'],\ 
['boycott', 'British', 'lamb', '.', '</s>'],\ 
['British', 'lamb', '.', '</s>', '</s>']] 

<s>文の開始トークンと</s>文トークンの終わりを表し、すべてのスライディングウィンドウは出力内の1つのNEに対応を表します。

これらのトークンを処理するために、単語をベクトル(例えば、グローブ)に変換する事前訓練された埋め込みモデルが使用されるが、これらの事前訓練モデルは<s>および</s>のようなトークンを含まない。私は<s></s>のランダム初期化は、このようなランダムな結果のスケールが他のグローブの埋め込みと一貫しない可能性があるため、ここでは良い考えではないと思います。

質問: 何<s></s>と理由のための埋め込みを設定するための提案ですか?

答えて

2

一般的に、答えはタスク内の埋め込みをどのように使用するかによって異なります。

<s></s>のトークンの使用は、埋め込み層の後に続くLSTMまたは他のリカレントニューラルネットワークによって決定されると考えられます。単語の埋め込み自体を訓練する場合は、これらのトークンを削除することをお勧めします。これらのトークンは値を追加しないためです。トークンの開始と終了はLSTMで問題になりますが、必ずしもそうではありませんが、単語の埋め込みは任意ですが、小さいベクトルはすべて正常なベクトルから等しく離れているため、小さな乱数は問題ありません。

訓練済みのGloVeベクターを使いたくない場合は、埋め込みレイヤーをフリーズすることをお勧めします。例えば、テンソルフローでは、埋め込みルックアップの直後にtf.stop_gradient opでこれを行うことができます。この方法では、ネットワークは<s>と他の言葉との間の関係を学習しませんが、それは全く問題ありません。既存の関係は変更されません。

関連する問題