当前位置: 首页 > article >正文

NLP模型大对比:Transformer(Bert) > RNN > n-gram

结论

Transformer(Bert)这类用注意力的 大于 RNN 大于 传统的n-gram

n-gram VS BERT

我们可以用一个 图书馆查询 的类比来解释它们的差异:


一、核心差异对比

维度n-gram 模型BERT(带注意力)
工作方式固定窗口的"近视观察员"全局关联的"侦探"
依赖距离只能看前N-1个词(如3-gram只看前2词)可关注任意距离的上下文
语义理解机械统计共现频率理解词语间的深层关系
典型场景"牛奶要配_" → "饼干"(高频搭配)"牛奶要配_" → "燕麦"(健康概念关联)

二、具体差异拆解

1. 观察范围限制
  • n-gram 像用 望远镜片段观察
    例:处理句子 "虽然价格贵但质量真的好"

    • 3-gram只能看到局部组合:
      ["价格_贵_但", "贵_但_质量", "但_质量_真"]

    • 无法关联首尾的 "价格" 和 "质量" 的对比关系

  • BERT 像用 全景扫描仪
    通过自注意力机制,让每个词都能关注到句子中所有其他词:

    # "质量"对"价格"的注意力权重可能高达0.7
    # "但"对"虽然"的注意力权重可能达0.6
2. 语义关联能力
  • n-gram 的局限性案例
    输入: "苹果股价大涨,因为新品很甜"

    • 3-gram会错误关联:"新品_很_甜" → 可能预测"西瓜"(高频搭配)

    • 无法发现 "苹果" 在此处指公司而非水果

  • BERT 的解决方案
    通过上下文注意力权重识别语义:

    "苹果" ← 关注到 "股价" (权重0.8) → 判定为企业  
    "甜"   ← 关注到 "新品" (权重0.3) + "股价" (权重0.6) → 判定为比喻用法
3. 处理新词能力
  • n-gram 的困境
    遇到新词 "元宇宙"

    • 所有包含 "元宇宙" 的n-gram都成为低频组合

    • 导致预测结果不可靠

  • BERT 的优势
    通过词向量和注意力机制:

    • 即使没出现过 "元宇宙",也能根据词根 "元"+"宇宙"_ 推测其语义

    • 类似处理过 "元数据" 和 "宇宙探索" 的经验

n-gram VS RNN

n-gram 和 RNN 在自然语言处理中是两种截然不同的建模思路,我们可以通过 图书馆管理 的类比来理解它们的核心差异:


一、核心机制对比

维度n-gram 模型RNN 模型
记忆方式固定长度的纸质笔记可延展的电子备忘录
依赖距离只能记住前N-1步(如3-gram记2步)理论上可记忆无限步(实际约50-100步)
计算特征基于统计频次的查表操作基于隐藏状态的动态计算
典型表现"昨天买的_奶茶"→"珍珠"(高频搭配)"昨天买的_奶茶"→"已经变质"(因果推理)

二、工作原理拆解

1. 信息传递方式
  • n-gram 像 接力赛跑
    每个预测只依赖前一棒选手(前N-1个词):

    输入:"我想喝一杯热的"
    3-gram预测流程:
    想喝→杯 → 喝杯→热 → 杯热→的 → 热的→[END]
  • RNN 像 滚雪球
    通过隐藏状态积累历史信息:

    hidden_state = update("我", init_state)
    hidden_state = update("想", hidden_state)
    hidden_state = update("喝", hidden_state)
    # 当处理到"热"时,隐藏状态已包含"我/想/喝"的信息

 

3. 处理长距离依赖
  • n-gram 的局限案例
    句子:"虽然这款手机价格比同类产品高2000元,但它的_"

    • 5-gram只能看到"产品高2000元但它的"

    • 无法关联开头的"虽然"与结尾的预测

  • RNN 的优势体现
    通过隐藏状态传递,即使相距20个词:

    h_("虽然") → h_("价格") → ... → h_("它的") 
    仍保留着转折关系的语义特征

三、性能对比实验

以 诗歌生成 任务为例:

输入: "春风又绿江南岸"
模型续写结果得分
3-gram"明月何时照我还"(高频组合)合格但缺乏新意
RNN"细雨轻拂柳叶弯"(创新性关联)更具文学性
人类"万物复苏生机盎"标准答案

关键差异

  • n-gram依赖"江南岸"与"明月"的常见搭配

  • RNN捕捉到"春风"与"细雨"的意境关联


http://www.kler.cn/a/523808.html

相关文章:

  • python:斐索实验(Fizeau experiment)
  • pytorch线性回归模型预测房价例子
  • Solon Cloud Gateway 开发:Route 的过滤器与定制
  • 剑指 Offer II 008. 和大于等于 target 的最短子数组
  • ESP32-S3模组上跑通esp32-camera(36)
  • 如何跨互联网adb连接到远程手机-蓝牙电话集中维护
  • Linux 常用命令——系统设置篇(保姆级说明)
  • 2024.12.28测试 总结
  • Redisson分布式限流的使用及原理
  • mybatis(104/134)
  • Ubuntu x64下交叉编译ffmpeg、sdl2到目标架构为aarch64架构的系统(生成ffmpeg、ffprobe、ffplay)
  • Lustre Core 语法 - 算术表达式
  • 使用 C/C++ 调用 libcurl 调试消息
  • Qt Ribbon使用实例
  • SSRF漏洞学习总结
  • 【JS逆向】前端加密对抗基础
  • Java定时任务实现方案(四)——Spring Task
  • 卡特兰数学习
  • MFC开发,给对话框添加垂直滚动条并解决鼠标滚动响应的问题
  • vue中的el是指什么
  • 广域网PPP协议
  • Java学习教程,从入门到精通,JDBC插入记录语法及案例(104)
  • LeetCode - #195 Swift 实现打印文件中的第十行
  • 【Pandas】pandas Series cov
  • 使用 Docker + Nginx + Certbot 实现自动化管理 SSL 证书
  • 【VUE】Vue2中Vue.extend方法