1. BERT的前世今生:为什么我们需要双向预训练语言模型?
2018年10月,谷歌AI团队发布的一篇论文《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》彻底改变了自然语言处理(NLP)领域的发展轨迹。作为一名长期从事NLP项目落地的工程师,我至今记得第一次接触BERT时的震撼——它解决了我多年来在文本分类、问答系统等项目中遇到的诸多痛点。
1.1 传统NLP的三大致命伤
在BERT出现之前,我们主要使用Word2Vec、GloVe等词嵌入模型配合RNN/LSTM架构来处理文本任务。这些方法存在三个根本性缺陷:
-
上下文盲区:传统词嵌入为每个单词分配固定向量,无法区分"苹果手机"和"吃苹果"中的"苹果"有何不同。我在电商评论情感分析项目中就深受其害——"这个苹果真甜"和"这个苹果真贵"中的"苹果"被处理成完全相同的向量,导致模型准确率难以突破。
-
单向信息流:RNN/LSTM只能从左到右或从右到左单向处理文本。在做智能客服系统时,这种单向性使得模型无法同时利用问题前后的关键信息,回答质量经常让用户哭笑不得。
-
数据饥渴症:每个新任务都需要从头训练模型。记得2017年做一个医疗领域的实体识别项目,仅标注数据就花了团队三个月时间,而模型效果依然不尽如人意。
1.2 BERT的破局之道
BERT的创新性体现在三个维度:
-
双向编码机制:通过Transformer Encoder的自注意力机制,每个词可以"看到"句子中的所有其他词。在我参与的金融合同解析系统中,这种特性让模型能准确理解"甲方有权终止合同,除非乙方在30日内履行义务"这类复杂条款。
-
预训练-微调范式:先在无标注大数据上预训练通用语言理解能力,再通过少量标注数据微调适配具体任务。我们使用BERT微调的文本分类模型,仅用1/10的标注数据就超过了之前模型的准确率。
-
动态词向量:同一个词在不同上下文中有不同向量表示。在社交媒体舆情监测项目中,BERT成功区分了"涨价"在"股票涨价"(正面)和"油价涨价"(负面)中的不同情感倾向。
技术细节:BERT-base模型包含12层Tra
