banner
NEWS LETTER

经典模型

Scroll down

Faster R-CNN

  • 输入:RGB 图像
  • 输出:
    • RPN 阶段:生成候选框
    • 检测阶段:每个框的类别概率 + 最终框坐标
  • 特点:
    • 属于两阶段目标检测
    • 精度较高,但速度相对较慢
    • 对超参数(anchor、阈值等)比较敏感

GloVe

1. 输入

大量纯文本语料(文章、句子、对话等)。

2. 输出

每个单词对应一个固定长度的数字向量(词向量),比如:

  • 国王 → [0.2, -0.5, 0.1, …, 0.3]
  • 女王 → [0.1, -0.4, 0.2, …, 0.4]

向量能直接表示语义:意思越近的词,向量越像。


3. 核心特点

  • 单词变成可计算的向量
  • 语义准确:支持 国王-男人+女人 ≈ 女王
  • 全局统计+局部上下文结合,效果稳定

4. 优点

✅ 语义效果好,比 Word2Vec 更稳定

✅ 现成预训练模型多,直接下载就能用

✅ 适合大多数 NLP 任务,通用性强

✅ 训练快、资源消耗适中

5. 缺点

❌ 无法处理一词多义(比如 “bank” 银行/河岸只有一个向量)

❌ 必须预先训练,不能动态更新新词

❌ 比简单词袋模型占用稍多资源


6. 什么时候用它最好?

优先选 GloVe 的场景:

  1. 文本分类、情感分析、语义相似度
  2. 需要现成高质量词向量,不想自己训练
  3. 追求稳定、通用、效果好的基础词表示
  4. 数据量不大,没法训大模型

不用 GloVe 的场景

  • 做最新大模型(BERT/LLaMA 等自带词向量,不用额外加)
  • 极度追求速度、资源极小(用简单词袋)
  • 必须处理强烈多义词

总结

  • 输入:文本
  • 输出:词向量
  • 优点:效果稳、通用、现成可用
  • 缺点:不支持多义词、静态不可变
  • 适合:绝大多数常规 NLP 项目做基础语义表示

Bi-GRU 模型

一、输入

Bi-GRU 本身的真实输入只有一个:

三维张量:(batch_size, seq_len, feature_dim)

  • batch_size:批次大小(一次喂多少条序列)
  • seq_len:序列长度(每条序列有多少时间步)
  • feature_dim每个时间步的原始特征维度
    • 这是数据本身决定的,不是超参数
    • 比如:
      • 传感器每步 10 个信号 → feature_dim = 10
      • 语音每帧 40 维 MFCC → feature_dim = 40
      • NLP 中如果已经是词向量 → feature_dim = 向量维度

二、输出

Bi-GRU 有两种标准输出,取决于你怎么用:

  1. 输出所有时间步(many-to-many)

    • 形状:(batch_size, seq_len, 2 * hidden_dim)
    • 含义:每个时间步都输出一个双向隐状态
    • 用途:序列标注(NER、分词、帧分类等)
  2. 只输出全局汇总(many-to-one)

    • 通常取:前向最后时刻 + 后向最后时刻 拼接
    • 形状:(batch_size, 2 * hidden_dim)
    • 含义:整条序列的整体语义/特征表示
    • 用途:文本分类、情感分析、序列级判断

三、模型特点

优点

  1. 双向上下文建模
    同时利用过去→未来未来→过去的信息,比单向 GRU 强。
  2. 比 Bi-LSTM 参数量小、速度更快
    GRU 只有更新门、重置门,结构更简单。
  3. 能处理变长序列
    天然适合文本、语音、时序等顺序数据。
  4. 一定程度缓解梯度消失
    适合中等长度序列依赖建模。
  5. 稳定、成熟、易训练
    作为 baseline 非常靠谱。

缺点

  1. 序列必须按时间步串行计算
    无法像 CNN/Transformer 那样并行,训练/推理速度较慢。
  2. 长序列能力有限
    距离较远的依赖关系捕捉能力明显弱于 Transformer。
  3. 无显式位置编码
    完全依赖顺序,对乱序不鲁棒。
  4. 对特别长距离依赖效果一般
    超过几百步后效果明显下降。

四、应用场景

✅ 适合用 Bi-GRU 的场景

  • 序列长度中等偏短(几十~几百步)
  • 需要上下文依赖,但不需要极强长距离建模
  • 希望模型轻量、稳定、好部署
  • 典型任务:
    • 短文本分类 / 情感分析
    • 命名实体识别(NER)
    • 意图识别、 Slot Filling
    • 短时序列预测(传感器、语音帧、行为识别)

❌ 不适合的场景

  • 序列特别长(上千/上万步)
  • 需要强长距离依赖(如长文档理解、摘要)
  • 追求极高并行速度(高并发线上服务)
  • 图像、纯图结构数据(更适合 CNN/GNN)

最终极简总结(最严谨版本)

  • 输入(batch, seq_len, feature_dim),feature_dim 由数据决定
  • 输出:要么每步都输出,要么只输出整条序列的向量
  • 特点:双向、轻量、稳定,但长序列 & 并行弱
  • 适用:中等长度、需要上下文、轻量场景
  • 不适用:超长序列、强长依赖、高并发速度优先场景

BERT 模型

一、输入

BERT 的输入是一段/两段文本,内部会自动做三件事(你调用时一般不用自己处理):

  1. 分词(WordPiece)
  2. 加上特殊标记:
    • [CLS]:句首,用来做分类/句子级特征
    • [SEP]:句子分隔符(单句1个,句对2个)
  3. 三种嵌入相加:
    • 词嵌入(Token Embedding)
    • 分段嵌入(Segment Embedding,区分句A/句B)
    • 位置嵌入(Position Embedding)

你实际使用时

  • 直接丢中文/英文句子/短文进去就行
  • 常见上限:最大长度 512 token(≈300–400 汉字)

二、输出

常用有两类输出:

  1. [CLS] 对应的向量

    • 代表整段文本的语义向量
    • 用于:文本分类、情感分析、句子相似度、意图识别
  2. 每个 token 对应的向量

    • 用于:序列标注类任务
      • 命名实体识别(NER)
      • 分词、词性标注
      • 槽位填充

三、核心特点

优点

  1. 双向理解上下文
    • 比老式单向 RNN/LSTM/Word2Vec 语义强很多
  2. 通用强
    • 一个预训练模型,稍微微调就能做几乎所有 NLP 任务
  3. 中文效果好
    • 有官方中文版、RoBERTa-wwm、ERNIE 等优质中文版本
  4. 生态成熟
    • Hugging Face Transformers 一行调用
    • 大量开源微调好的模型

缺点

  1. 速度慢、耗资源
    • 层数多(base 12层,large 24层)
    • 不适合超高并发、低延迟场景(如实时对话、高QPS接口)
  2. 长文本能力弱
    • 原生最大只支持 512 token
    • 长文档(整篇文章/小说)直接用效果差
  3. 不能自然生成文本
    • BERT 是Encoder 结构,不是生成模型
    • 不能用来写文章、写诗、对话回复

四、应用场景

✅ 适合用 BERT 的场景

  • 文本分类(情感分析、垃圾邮件识别、意图分类)
  • 句子相似度 / 语义匹配(检索、问答匹配)
  • 实体识别、关键词抽取、槽位填充
  • 短文本理解(评论、标题、对话、短句)

一句话
短文本、需要深度语义理解、不是超高并发的任务 → 首选 BERT 系

❌ 不适合用 BERT 的场景

  1. 需要生成文本

    • 写文案、对话回复、续写、翻译
      → 用 GPT、T5、LLaMA 等Decoder/Encoder-Decoder模型
  2. 超高并发、极低延迟

    • 每秒几千上万请求
    • 要求几毫秒内返回
      → 用轻量模型:TextCNN、RNN、DistilBERT、TinyBERT
  3. 处理极长文本

    • 整篇论文、书籍、长文档
      → 用长文本模型:Longformer、BigBird 或分段处理
  4. 简单规则就能搞定

    • 纯关键词匹配、简单正则
      → 没必要上 BERT

极简使用建议

  • 分类/匹配/理解 → 用 BERT/RoBERTa 中文版本
  • 生成/续写/对话 → 绝对不要用 BERT
  • 追求速度 → 用 DistilBERT 等轻量化版本
  • 文本特别长 → 分段或换长文本模型
其他文章
目录导航 置顶
  1. 1. Faster R-CNN
  2. 2. GloVe
    1. 2.1. 1. 输入
    2. 2.2. 2. 输出
    3. 2.3. 3. 核心特点
    4. 2.4. 4. 优点
    5. 2.5. 5. 缺点
    6. 2.6. 6. 什么时候用它最好?
    7. 2.7. 总结
  3. 3. Bi-GRU 模型
    1. 3.1. 一、输入
    2. 3.2. 二、输出
    3. 3.3. 三、模型特点
    4. 3.4. 优点
    5. 3.5. 缺点
    6. 3.6. 四、应用场景
    7. 3.7. ✅ 适合用 Bi-GRU 的场景
    8. 3.8. ❌ 不适合的场景
    9. 3.9. 最终极简总结(最严谨版本)
  4. 4. BERT 模型
    1. 4.1. 一、输入
    2. 4.2. 二、输出
    3. 4.3. 三、核心特点
    4. 4.4. 优点
    5. 4.5. 缺点
    6. 4.6. 四、应用场景
    7. 4.7. ✅ 适合用 BERT 的场景
    8. 4.8. ❌ 不适合用 BERT 的场景
  5. 5. 极简使用建议
请输入关键词进行搜索