PyTorch|BERT_Pytorch下游任务-萌新向

Google - BERT Tips:本人也是初学者,如有错误,还请不吝赐教
之前一直认为方法论和思维方式才是最重要的,实际的解决方案会随着时间的改变快速更迭,所以一直没有记录的习惯,…
Before BERT PyTorch|BERT_Pytorch下游任务-萌新向
文章图片

很多机器学习领域的任务,或显式或隐式地可以分为两个阶段
- 将问题数据映射到一个潜藏信息的低维空间里,即将原问题里的元素 X 映射为 hx
- 再将 hx 映射到(分类到)(回归到)数据标签y上
在神经网络中这两步骤的界限显得不那么明显,但从迁移学习Transfor Learning、知识蒸馏Knowledge Distillation、微调Fine Fune、提Feature的预训练网络和最后一层分类器Softmax中都可以体会出其中一二
本文主要讲的就是这第一部分:不同于计算机视觉(Computer Vision)里的图像,在计算机里有天然的像素表示。文本(或者更广义上来说的,符号)在计算机里要经过非直观的编码表示,直接丧失了其原有的含义。
【PyTorch|BERT_Pytorch下游任务-萌新向】如果所有的符号(中文、英文、…)总数是一个确定的数 H 那么简单地进行 One-hot编码 就会形成 H 维度的向量表示。
Word Embedding 的思想就是想让 文本 用更好的更低维的向量 来表示他们各自所代表的语义。
Word Embedding 发展的大致阶段:
- Bag of Word 词袋模型 (TF-IDF、BM25)
- Word 2 Vec (Skip Gram、CBOW、Glove)
- BERT (ELMo、GPT、XLNet、…)
关于 BERT 的介绍 :

Paper:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
Paper:Attention is all you need
本文不讲 BERT 网络结构的具体细节,如果想要了解需要先去了解:
  • Attention (思想:天涯若比邻)(提高了RNN、LSTM的并行度)
    • Self Attention
    • Mutil Attention
概念:
  • Bert = Contextualized Word Embedding
  • Transformer = Seq2Seq model with Self-attention
  • BERT = Unsupervise train 的 transformer
总之,BERT的输入是一个文本序列,而输出是对应每个输入都有一个向量,而下游任务就可以通过这个输出向量来做。
关于英文文本分类任务的介绍:
Code:BERT: 英文语法正确性判断任务
关于中文文本分类任务的介绍:
Code:BERT: 中文好评差评语义分类任务
After BERT ACL2020 Best PaperBeyond Accuracy: Behavioral Testing of NLP Models with CHECKLIST出来后,对过往的NLP的模型又暴露出了很多问题,BERT也没能幸免(CHECKLIST还发现了Bert存在种族歧视、性别歧视、性取向歧视…在做情感分析时,对于提到特定群体的句子,Bert会直接给出negative的标签),NLP道阻且长。
Reference:
台湾大学 李宏毅教授 课程
介绍BERT的好博客

    推荐阅读