BERT:Googleの5分最強のNLPモデル入門

BERT(変圧器からの双方向エンコーダ表現)

10月11日、GoogleのAI言語は、論文を発表しました

BERT:用ディープ双方向変圧器の事前研修
言語理解

次のような自然言語推論(MNLI)を推論(SQUAD v1.1のを)答えるQ&A質問を含むレコードを、壊れた11のNLPタスク、上のBERTモデル提案のパフォーマンス

GLUE :General Language Understanding Evaluation
MNLI :Multi-Genre Natural Language Inference
SQuAD v1.1 :The Standford Question Answering Dataset
QQP : Quora Question Pairs 
QNLI : Question Natural Language Inference
SST-2 :The Stanford Sentiment Treebank
CoLA :The Corpus of Linguistic Acceptability 
STS-B :The Semantic Textual Similarity Benchmark
MRPC :Microsoft Research Paraphrase Corpus
RTE :Recognizing Textual Entailment 
WNLI :Winograd NLI
SWAG :The Situations With Adversarial Generations

それ以上のデータセット(SQUAD)を答えるリーダーボードBERTスタンフォード質問を見てみましょう:
https://rajpurkar.github.io/SQuAD-explorer/

 
 

BERTが行うために使用することができますか?

これらのタスクのインフラストラクチャは、言語モデル、すなわちとしてBERTは、システム、評判分析、スパムフィルタリング、固有表現認識、文書クラスタリングと他のタスクに答えるために使用することができます

BERTは、オープンソースのコードを持っています
https://github.com/google-research/bert
私たちは、それらを微調整私たちの目標とタスクに適用することができ、トレーニングBERTの微調整が迅速かつ簡単です。

例えば、NERの問題では、BERTの言語モデルは、100の以上の言語を事前に訓練してきた、これはトップ100言語のリストです:
https://github.com/google-research/bert/blob/master/multilingual.md

100の言語として、NERデータがあれば限り、あなたはすぐにNERを訓練することができます。


概説BERTの原則

技術革新は、それが言語モデルのための双方向トランスBERTになるということです、
左から右へ、または左から右、右から左へのトレーニングを一緒に以前のモデルは、テキストの入力配列です。
実験結果があることを示す言語の文脈を理解するための双方向の語学研修モデルが一方向モデルよりも深いだろう、
この技術の出現は双方向言語ではありません前に用紙は、仮面LM(MLM)と呼ばれる新しい技術が導入されましたモデルのトレーニング。

BERTは、変圧器のエンコーダの一部を使用します。
変圧器が注意のメカニズムでは、テキストの単語間の関係の文脈を学ぶことができます。
トランスプロトタイプは、入力エンコーダとしてテキストを受信する責任二つの独立した機構を含む、デコーダは、タスクの結果を予測する責任があります。
BERTの目標は、唯一のエンコーダメカニズムを必要とするので、言語モデルを生成することです。

テキスト全体のシーケンスを読み込むための使い捨てのトランスエンコーダ、右の代わりに、左または連続して読み取るために、左から右に
、この機能は、モデルは単語学習の両方に基づいて行うことができる可能、それは双方向の機能と同等です。

トランス図は、エンコーダの一部である、入力シーケンスはトークンである、ニューラルネットワークへの入力次に、最初にそれらを埋め込むベクトルと呼ばれる、出力ベクトルは同じインデックスを持つトークンを対応する各ベクトル内のH配列のサイズです。

 
 

ラニHorev

当我们在训练语言模型时,有一个挑战就是要定义一个预测目标,很多模型在一个序列中预测下一个单词,
“The child came home from ___”
双向的方法在这样的任务中是有限制的,为了克服这个问题,BERT 使用两个策略:

1. Masked LM (MLM)

在将单词序列输入给 BERT 之前,每个序列中有 15% 的单词被 [MASK] token 替换。 然后模型尝试基于序列中其他未被 mask 的单词的上下文来预测被掩盖的原单词。

这样就需要:

  1. 在 encoder 的输出上添加一个分类层
  2. 用嵌入矩阵乘以输出向量,将其转换为词汇的维度
  3. 用 softmax 计算词汇表中每个单词的概率

BERT 的损失函数只考虑了 mask 的预测值,忽略了没有掩蔽的字的预测。这样的话,模型要比单向模型收敛得慢,不过结果的情境意识增加了。

 
 

图片 by Rani Horev

2. Next Sentence Prediction (NSP)

在 BERT 的训练过程中,模型接收成对的句子作为输入,并且预测其中第二个句子是否在原始文档中也是后续句子。
在训练期间,50% 的输入对在原始文档中是前后关系,另外 50% 中是从语料库中随机组成的,并且是与第一句断开的。

为了帮助模型区分开训练中的两个句子,输入在进入模型之前要按以下方式进行处理:

  1. 在第一个句子的开头插入 [CLS] 标记,在每个句子的末尾插入 [SEP] 标记。
  2. 将表示句子 A 或句子 B 的一个句子 embedding 添加到每个 token 上。
  3. 给每个 token 添加一个位置 embedding,来表示它在序列中的位置。

为了预测第二个句子是否是第一个句子的后续句子,用下面几个步骤来预测:

  1. 整个输入序列输入给 Transformer 模型
  2. 用一个简单的分类层将 [CLS] 标记的输出变换为 2×1 形状的向量
  3. 用 softmax 计算 IsNextSequence 的概率

在训练 BERT 模型时,Masked LM 和 Next Sentence Prediction 是一起训练的,目标就是要最小化两种策略的组合损失函数。

 
 

如何使用 BERT?

BERT 可以用于各种NLP任务,只需在核心模型中添加一个层,例如:

  1. 在分类任务中,例如情感分析等,只需要在 Transformer 的输出之上加一个分类层
  2. 在问答任务(例如SQUAD v1.1)中,问答系统需要接收有关文本序列的 question,并且需要在序列中标记 answer。 可以使用 BERT 学习两个标记 answer 开始和结尾的向量来训练Q&A模型。
  3. 在命名实体识别(NER)中,系统需要接收文本序列,标记文本中的各种类型的实体(人员,组织,日期等)。 可以用 BERT 将每个 token 的输出向量送到预测 NER 标签的分类层。

在 fine-tuning 中,大多数超参数可以保持与 BERT 相同,在论文中还给出了需要调整的超参数的具体指导(第3.5节)。

 
 

学习资料:
https://arxiv.org/pdf/1810.04805.pdf
https://www.lyrn.ai/2018/11/07/explained-bert-state-of-the-art-language-model-for-nlp/
https://medium.com/syncedreview/best-nlp-model-ever-google-bert-sets-new-standards-in-11-language-tasks-4a2a189bc155


推奨される読書の歴史技術のブログのリンク集
http://www.jianshu.com/p/28f02bb59fe5は、
あなたが欲しいものを見つけることができるかもしれません:
[しきい値質問] [TensorFlow] [深研究] [強化学習] [ニューラルネットワーク] [機械学習] [自然言語処理] [ボット]



著者:カタツムリの停止しません
します。https://www.jianshu.com/p/d110d0c13063リンク
出典:ジェーン・ブック
著者によって予約ジェーン帳の著作権を、いかなる形で再現され、承認を得るために、作者に連絡して、ソースを明記してください。

おすすめ

転載: www.cnblogs.com/jfdwd/p/11205994.html