web-dev-qa-db-ja.com

Google BERTを使用して2つのテキストドキュメント間の類似度を計算することは可能ですか?

2つのテキストドキュメント間の類似度を計算するためにGoogle BERTを使用することは可能ですか?私が理解しているように、BERTの入力は限られたサイズの文であると想定されています。一部の作品では、BERTを使用して次のような文の類似度を計算しています。

https://github.com/AndriyMulyar/semantic-text-similarity

https://github.com/beekbin/bert-cosine-sim

BERTの実装は、入力として文章ではなく大きなドキュメント(数千語のドキュメント)に使用するために行われましたか?

5
goodboy

BERTは、1つの文が別の文に続くかどうかを判断するように訓練されていません。これは GLUEタスク の1つであり、無数にあります。すべてのGLUEタスク(およびスーパーグルー)は、ALBERTによって公園からノックアウトされています。

BERT(およびそのことについてはアルバート)は、自然言語理解における最先端の技術です。 Doc2Vecは近づきません。 BERTはバッグオブワード方式ではありません。これは、トランスフォーマー上に構築された双方向の注意ベースのエンコーダーであり、Googleブレインペーパー Attention is You All Need の化身です。 Transformerモデルの 視覚的な内訳 も参照してください。

これは、RNNやLSTM、tf-idfなどを使用しない、自然言語の基本的に新しい見方です。単語やドキュメントをベクターに変換することはもうありません。 GloVes:LSTMを使用した単語表現 のグローバルベクトルが古い。 Doc2Vecは古いです。

BERTは非常に強力です。たとえば、チューリングテストに簡単に合格できます。を見てみましょう

ちょうど出てきた superGLUE を見てください。一番下までスクロールして、これらのタスクの正気度を確認してください。それがNLPが存在する場所です。

さて、tf-idfは最新式であるという考えを省略したので、ドキュメントを取得してそれらの類似性を確認しますか?私は2層のDatabricksでALBERTを使用します。

  1. https://pypi.org/project/bert-extractive-summarizer/ (テキストの重要なドキュメントの方法-要約まで文書化します。

  2. 別のステップで、各要約を取得し、ページ3からSTS-Bタスクを実行します [〜#〜]接着剤[〜#〜]

ここで、私たちは絶対に最先端のEdgeテクノロジーについて話しています(Albertはこの数か月で登場しました)。あなたはこれを乗り越えるには非常に熟練している必要がありますが、それは可能です、そして私はあなたを信じています!!

1
birdmw

Y A。各部分を個別に実行するだけです。要約すると、ほとんど何もする必要はありません。要約するためにpypiを見るだけで、いくつかのパッケージがあります。訓練する必要さえありません。今度は文と文の類似性について、損失を取得するためのかなり複雑な方法がありますが、それはGLUE Webサイトで詳しく説明されています。これは、課題の一部と見なされます(測定基準を満たす)。その距離(sts)を決定することは簡単ではなく、彼らはそれを「一貫性」と呼んでいると思いますが、私にはわかりません。

0
birdmw