关于敏感信息检测技术的理论知识

在之前的文章中,探索了不同的检测敏感信息的方法,并通过Demo进行了学习,对算法、模型等一些概念有一些初步认知,这片文章想更加完整的学习涉及的概念,以及知识框架。

信息识别

“敏感信息检测”本质上是一种信息识别技术,信息识别技术的技术演进路线:

规则 → 传统 ML → 深度学习(BERT/NER) → 语义分析(Embedding) → 推理式判断(LLM)

基于规则(pattern-based)

  • 正则表达式
  • 固定长度/固定格式
  • 词典/黑名单

优点:精准、快、成本低
缺点:只能识别格式固定的信息;对语义类几乎无效

比如:身份证、手机号、邮箱、多数证件号都能靠规则锁死。

基于传统机器学习(Classical ML-based)

传统机器学习是:靠人工特征 + 统计模型判断,不理解深层语义。需要人先总结规律经验后、喂给模型,模型依靠统计和概率输出答案。----基本上被深度学习(进化后的传统机器学习)替代。

“如果连续两个字都在姓名词典里 → 很像人名”
“如果是 11 位数字 → 更像手机号”

基于深度学习(DL-based,BERT/NER)

让机器自己阅读大量文本,自主学会语言规律(语义、结构、上下文)。不像传统 ML,需要人工设计特征,深度学习会自己从海量数据中“自动学习特征”。

BiLSTM-CR模型F(经典 NER)

流程:字符序列 → embedding → BiLSTM → CRF → 标签序列

优点:效果强于传统 ML
缺点:

  • 上下文理解有限
  • 对长文本吃力

Transformer / BERT NER(工业标准)

这是今天用得最多的敏感信息识别模型。

流程:Input → Tokenizer → BERT Encoder → Token Classification Head → 输出 BIO 标签

BERT 能理解语义上下文,例如:
“手机号:一共 11 位数字,是联系人的号码”
→ BERT 可以理解“手机号”的含义不仅来自数字结构,还来自周围语义。

工程可用的模型:

  • bert-base-chinese
  • HFL-roberta-wwm-ext
  • macbert
  • neZha
  • DeBERTa-v3-base
  • HuggingFace 现成的 token-classification pipeline

框架:

  • PyTorch(主流)
  • TensorFlow
  • HuggingFace Transformers(最推荐)

基于语义(Embedding/LLM-based)

Embedding向量语义识别

核心思想:把文本转换成向量 → 在向量空间里相似就表示语义相似。

比如“联系方式”和“手机号”向量距离很近而“发票号”则距离远。

技术包括:

  • Sentence-BERT
  • SimCSE
  • LLM Embedding(OpenAI embedding)
  • RAG(检索增强理解)

常用向量模型:

  • OpenAI text-embedding-3-large
  • bge-large-zh(国产最强)
  • SimCSE
  • SBERT
  • GTE-large (Alibaba Qwen Embeddings)

LLM 大模型推理

利用大模型的“理解、推理、上下文能力”直接判断,不用训练拿来就能用。

常见模型:

  • Qwen2.5-72B
  • GPT-4o/4.1
  • Llama-3-70B
  • DeepSeek-R1(推理强)
  • Claude

4类技术能覆盖的敏感信息范围(工程视角)

敏感数据类型 规则 ML 深度学习 NER Embedding LLM
身份证号 ✔️ ✔️ ✔️ ✔️ ✔️
手机号 ✔️ ✔️ ✔️ ✔️ ✔️
银行卡号 ✔️ ✔️ ✔️ ✔️ ✔️
姓名 ✔️ ✔️ ✔️ ✔️
地址 ✔️ ✔️ ✔️ ✔️
公司、组织名 ✔️ ✔️ ✔️ ✔️
设备号/UID ✔️ ✔️ ✔️(很强)
行为轨迹 ✔️ ✔️ ✔️(强)
上下文敏感识别 一般 非常强

知识地图

A. 信息的“特征方式”
├── 规则特征(pattern)
├── 统计特征(ML)
├── 语义特征(Embedding)
└── 生成式理解(LLM)

B. 模型与算法基础
├── Transformer(结构)
├── Embedding(向量空间)
├── NER/分类(下游任务)
└── 向量检索(ANN)

C. 工具/框架
├── PyTorch(深度学习实现框架)
├── Hugging Face(模型生态)
├── vector DB(Milvus/FAISS)
└── 各类 Embedding 模型/LLM

D. 解决方案与工程化
├── 混合检测(规则 + Embedding + NER)
├── 召回-排序-验证流水线
├── 模型评估
└── 部署与合规

NLP

1. Tokenization(文本切词)

把文本切成词/子词(token)。英文按空格切;中文要用分词工具。现代 LLM 用 BPE(Byte Pair Encoding) 子词分解。

⚠ 重要:
所有 embedding、BERT、LLM 的输入都是 token,而不是句子。

2. 传统词向量(Word Embedding)

早期 NLP 只能做到:

  • Word2Vec(CBOW / Skip-gram)
  • GloVe

它们的特点:

  • 每个词 ≈ 一个固定向量
  • 不同上下文中的“苹果”向量都是一样的
    (不能区分苹果=水果 vs 苹果=手机)

👉 局限明显,因此被 BERT 时代取代。

3、传统特征工程

如:

  • TF-IDF
  • One-hot
  • 正则表达式

这些对敏感信息检测仍然有用(特别是规则层)。

深度学习 NLP 层(BERT 时代 / 中间层)

1、Transformer(核心基础架构)

所有现代 NLP 模型底层都是 Transformer。它的关键组件:

  • Self Attention(自注意力)
  • Multi-head Attention
  • Feed Forward Network

让模型能捕获长距离语义(如身份证号前后词的关系)。

2、BERT(Bidirectional Encoder Representations)

BERT = transformer encoder 的预训练语言模型,解决:“传统词向量不能理解上下文语义”的问题。

特点:

  • 双向理解上下文
  • token embedding 是动态语义向量
  • 句子 → 一组 contextual embeddings

BERT 的常见任务:

  • 分类
  • NER(命名实体识别),用于深度学习
  • 相似度判断(很经典的模型:Sentence-BERT),用于语义分析
  • 文本匹配

你可以把 BERT 理解为:“现代 NLP 的基础语义引擎”——很重要的模型。

3、NER(命名实体识别)

NER 是一个具体任务类型:“识别文本中的实体类型(人名、地址、手机号、身份证号)”

NER 模型常见结构:

  • BiLSTM-CRF(旧时代)
  • BERT-CRF(现代主流)
  • Prompt + 大模型(最新趋势)

NER输出结构:

北京 是 LOC
小米 是 ORG
135****1234 是 PHONE
NER 就是结构化抽取敏感信息的一种方式。

LLM 层(高级语义层)

LLM(大模型)扩展了 BERT 时代的能力,具备:

  • 生成能力(GPT)
  • 更强的理解能力
  • 工具调用能力(Agent)
  • 大规模知识学习

1、Embedding(语义向量)

LLM embedding = “句级语义向量”,每句话被映射为 768~4096 维的向量。

例子:

“身份证号码是什么”
→ [0.12, 0.34, -0.21, ... ]
“ID card number”
→ [0.11, 0.33, -0.19, ... ]

向量越接近 → 语义越相近。

Embedding 的关键特点:

  • 不依赖词表,每句话都可以编码
  • 对语义相似的句子非常敏感
  • 可用于语义搜索/敏感信息识别/问答匹配

常见 embedding 模型:

  • BERT / SBERT
  • text-embedding-3-large
  • bge-large-zh
  • Qwen2-embedding
  • GTE-large

2、向量匹配(相似度计算)

常用相似度算法:

  • Cosine similarity(最常用)
  • Dot product
  • L2 距离

例如:
用户数据字段名 “user_id_no” 和“身份证号” 向量相似度:

0.88 → 很可能是身份证号字段
0.42 → 值得怀疑
0.10 → 无关

这是 embedding 在敏感信息检测中的核心用途。

深度学习中的BERT VS Emdeding中的BERT

深度学习里的 BERT(BERT = 深度语义理解模型)——用BERT做任务;
语义识别(embedding)中的 BERT(BERT = 编码器),——用BERT的输出做向量匹配。

不是模型不同,是使用方式不同。

对比点 深度学习里的 BERT embedding里的 BERT
用途 开发具体任务(NER、分类) 生成语义向量
是否需要训练 需要训练(fine-tune) 不需要训练(可直接使用)
输入 句子/词 句子/词
输出 分类结果、标注、概率 语义向量(768~4096维)
常见框架 BERT-base/large,RoBERTa SBERT、bge、GTE
典型应用 NER、分类、文本匹配 语义检索、RAG、向量搜索
优点 任务精度高,可调 零样本匹配强,无需训练
缺点 需要标注和训练 相似度有时不如fine-tune得好
posted @ 2025-12-09 17:52  Momoko-X  阅读(4)  评论(0)    收藏  举报