知识图谱实战(BILSTM+CRF)【第五章】

一、BiLSTM+CRF模型介绍

  • BILSTM是双向的LSTM,本身是做信息捕获的,需要在上面加一层线性层进行输出标签的概率分布
  • 只用BILSTM可以做NER任务,可以用发射分数最高的作为标签,但是效果可能不是最佳的,因为他只考虑词的局部最高概率,不会考虑考虑整个语义.
  • CRF模型负责生成转移分数,我们训练CRF也是为了获取转移分数矩阵
  • Decoding Process 通过相加发射分数和转移分数,获取最佳的路径.
  • CRF输出的是转移分数矩阵

二、线性链条件随机场

线性链:输入序列x和输出标签序列y都是线性序列

条件随机:给定x的条件下,输出y的条件概率分布,需要满足马尔可夫性质

场:用图结构来描述概率依赖关系

马尔科夫性质:生成的标签只和前一个标签和后一个标签有关系,与其他标签或者序列无关。

线性链条件随机场图示:

三、发射分数和转移分数

3.1发射分数

发射分数由BILSTM+线性层产生,主要用于生成标签权重。

执行流程:

用户输入序列进来,首先进行向量化,然后经过BILSTM的隐藏状态处理,因为BILSTM是双向的LSTM,所以得到的维度要乘以2,最后经过一个线性层把维度转换为标签数即可。

3.2转移分数

转移分数越高,转移的概率越大

转移矩阵是线性CRF生成的

转移分数矩阵:

转移矩阵是可以学习的矩阵,可以通过训练得到准确的结果

四、CRF最优序列计算方式

发射分数根据标签的位置选择:

比如B-Person位置是(0,1),那么他的发射分数是E00

转移分数则是根据标签的上下文来选择:

比如B-Person的下一个是I-Person,那么就在第二个矩阵中选择0.93.

五、Viterbi解码

CRF输出的是转移分数矩阵,需要使用viterbi解码的方式获取最终的最优路径

  • 原始结算最短路径的方法:分别计算每条路径的长度,然后比较大小

Viterbi算法解决最短路径的

先计算第一列所有的节点和第二列B1的和,然后得到一个最小的,只保留这一条,然后B3

计算的方法类似

然后计算

最后选出最短的即可

相关推荐
伊玛目的门徒1 天前
用 npm 安装 Claude Code CLI 并对接 DeepSeek API 经验分享
人工智能·npm·大模型·ai编程·deepseek·claude code
xiaoduo AI1 天前
智能客服机器人能实时监控会话风险规避服务纠纷吗?能规范服务话术守住门店口碑吗?
大数据·人工智能·机器人
逻辑君1 天前
认知神经科学研究报告【20260033】
人工智能·机器学习
l1t1 天前
DeepSeek总结的Delta 成长记:写入、Unity Catalog 和时间旅行
数据库·人工智能·unity
飞Link1 天前
从 Promptbreeder 到 EvoPrompt:深度解析进化 AI (eAI) 的提示词自动优化策略
大数据·人工智能
code_pgf1 天前
llama.cpp 最新架构详解
人工智能·架构·llama
BB8=_=NiMotion1 天前
一体式步进伺服电机在自动取药机器人中的应用
人工智能·物联网·自动取药机器人
AI前沿资讯1 天前
AI角色一键生成工具推荐:V2Fun 打通3D动画智能化创作全流程
人工智能·3d
飞Link1 天前
从单模型到 Agentic AI:2026 年企业级 AI 基础设施的架构重构指南
人工智能·重构·架构