概率图模型 —— 串连 NB、LR、MEM、HMM、CRF

article/2025/9/2 16:14:37

概率图模型(PGM),作为机器学习的重要分支,能串连起很多传统模型,比如 NB、LR、MEM、HMM、CRF、DBN 等。本篇文章,从串连多个模型的角度,来谈谈 PGM,顺便把这些模型回顾下。


1 Why PGM

从两方面谈谈学习和使用 PGM 的必要性吧。

1.1 关系型数据

关系型数据具备下述两个特性:

  • 细粒度数据本身,提供了部分特征,可以用于细粒度数据的分类
  • 细粒度数据之间,存在的概率依赖关系,可以辅助(甚至是关键要素)细粒度数据的分类

例如:

  • NLP 中的 POS、NER 任务,针对细粒度数据——字符——直接分类显然不合理,考虑字符间的依赖关系,通常将细粒度数据组合为粗粒度数据——语句,然后用模型来捕捉细粒度数据之间的依赖关系
  • 图像处理中的边缘检测任务,为利用细粒度数据——像素——之间的相邻信息,通常基于粗粒度数据——图像——进行建模
  • 网页分类任务中,除了网页内文本可以提供特征外,网页间的超链接关系也可以提供分类表现

现在,处理关系型数据,大家可能都习惯了使用自动化的 DL 模型,诸如 CNN 利用划窗累积的方式 model 数据间的关系。

而,PGM 提供了一种不是那么自动化的,处理关系型数据的强大框架。

1.2 概率模型

很多大牛推崇机器学习的概率论视角,比如 Murphy 那本 MLAPP、Uber 的 Zoubin Ghahramani 等。当然,概率模型和非概率模型之间的界限并不是泾渭分明的,例如,SVM、KNN、Ensemble 类模型都属于非概率模型,NB、HMM 属于概率模型,但决策树、LR、MEM、CRF 既可以看做非概率模型也可以看做概率模型。

PGM 用图结构来可视化数据间的概率分布关系,提供了一种更直观精致的解释方式。

通常认为 DL 是 PGM 的一种实现方式,由于后者具备完善的理论基础,两者的结合也是目前研究的一个方向,早期的成果包括 DBN、DBM 等,其中主流方式就是利用 DL 做感知,PGM 做推断。

可见,深入浅出的了解下 PGM 还是很有必要的。

2 What is PGM

2.1 概率图模型

对于多元随机变量,在不做任何条件独立性假设情况下,其概率分布表示所需的参数是多元维度的指数级,往往难以接受。一种有效的方法就是引入变量之间的条件独立性假设。

PGM提供了一种直观的描述随机变量之间的条件独立性关系的视角,并且可以将多元随机变量的联合概率分布,分解为一些简单条件概率模型的组合,即 local func 的乘积形式,每个 local func 仅依赖于少量随机变量。
当然,这是对于一个非全连接图而言。

PGM,在形式上是由图结构组成的。图的每个节点 node 都关联了一个随机变量,图的边 edge 则用于编码这些随机变量之间的关系。

图上随机变量的依赖关系可以是单向的也可以是双向的,从而可以将 PGM 分类为有向无环图模型(即贝叶斯网络),无向图模型(即马尔科夫网络)

具体介绍之前,引入几个基本概念:

  • X X X 为输入变量集合, Y Y Y 为输出变量集合, V = X ∪ Y V=X \cup Y V=XY 为所有随机变量集合,共 K K K 个, V k ∈ V V_k \in V VkV 为其中一个随机变量, v v v V V V 的一个取值, v k v_k vk V k V_k Vk 的一个取值
  • 图表示为 G = ( V , E ) G=(V,E) G=(V,E) ,其中, E E E 为边的集合,边在有向图中表示两个变量之间的因果关系
  • 有向图中, π ( V k ) \pi(V_k) π(Vk) 为变量 V k V_k Vk 在图中所有的父节点构成的变量集合
  • 无向图中, C C C 表示图中的一个最大团, V C V_C VC 表示其对应的随机变量集合,其一个取值为 v C ∈ V C v_C \in V_C vCVC

2.2 有向图模型(贝叶斯网络)

有向图中,依赖关系仅存在于父子节点之间,概率分布可分解为:
p ( v ) = ∏ k = 1 K p ( v k ∣ π ( v k ) ) p(v)=\prod_{k=1}^{K}{p(v_k \mid \pi(v_k))} p(v)=k=1Kp(vkπ(vk))

无向图模型(马尔科夫网络)

定义:如果联合概率分布 P ( V ) P(V) P(V) 满足成对、局部或全局马尔可夫性,就称此联合概率分布为概率无向图模型或马尔可夫随机场(网络)。

无向图中,依赖关系通常基于全连通子图来分割,利用 H-C 定理给出概率分解形式为:
p ( v ) = 1 Z ∏ C ψ C ( v C ) p(v)= \frac{1}{Z} \prod_C{\psi_C(v_C)} p(v)=Z1CψC(vC)
其中,partition func Z = ∑ v ∏ C ψ C ( v C ) Z=\sum_v{\prod_C{\psi_C(v_C)}} Z=vCψC(vC) 为归一化因子,保证概率和为1,potential func ψ C \psi_C ψC 为定义在最大团 C C C 上的严格正函数。

  • potential func 通常定义为 ψ C ( v C ∣ ω C ) = e x p ( ω C f C ( v C ) ) = e x p ∑ i ω i C f i C ( v C ) \psi_C(v_C \mid \omega_C)=exp(\omega_C f_C(v_C))=exp{\sum_i{\omega_{iC}} f_{iC}(v_C)} ψC(vCωC)=exp(ωCfC(vC))=expiωiCfiC(vC),其中, f C ( v C ) f_C(v_C) fC(vC) 为定义在 V C V_C VC 上的特征向量, ω C \omega_C ωC 为对应的权重向量, f i C f_{iC} fiC 为特征函数
  • partition func 的计算复杂度是指数级的,大部分算法都是采用的近似计算

利用特征向量,无向图也可以表示为:
p ( v ) = 1 Z e x p ( ∑ C ω C f C ( v C ) ) p(v)= \frac{1}{Z} exp(\sum_C {\omega_Cf_C(v_C)}) p(v)=Z1exp(CωCfC(vC))

2.3 联系

  • 无向图可以表示有向图无法表示的一些依赖关系,比如循环依赖
  • 有向图可以表示无向图无法表示的一些关系,比如因果关系
  • 前面说的 local func,在有向图中为可解释的 p ( v k ∣ π ( v k ) ) p(v_k \mid \pi(v_k)) p(vkπ(vk)),在无向图中为没有直接解释的 ψ C ( v C ) \psi_C(v_C) ψC(vC)
  • 有向图通常用来建模生成模型,无向图通常用来建模判别模型,前者 p ( v ) p(v) p(v) 即为 p ( x , y ) p(x,y) p(x,y),后者通常为 p ( y ∣ x ) p(y \mid x) p(yx)

2.4 因子图模型

factor graph,是一个双向图,表示为 G = ( V , F , E ) G=(V,F,E) G=(V,F,E),其中, ψ C ∈ F \psi_C \in F ψCF 表示因子节点,如果变量节点 V k ∈ V V_k \in V VkV ψ C \psi_C ψC 的参数,则存在边 E i ∈ E E_i \in E EiE 连接两者。

通常,无向图和有向图都可以更精确的表示为因子图模型。 具体后面会举例。

3. Examples

3.1 NB

NB 作为生成模型,先学习联合概率模型,然后利用贝叶斯公式进行分类:
p ( Y ∣ X ) = p ( X , Y ) p ( X ) = p ( Y ) p ( X ∣ Y ) ∑ Y p ( Y ) p ( X ∣ Y ) p(Y \mid X)=\frac{p(X,Y)}{p(X)}=\frac{p(Y)p(X|Y)}{\sum_Y{p(Y)p(X|Y)}} p(YX)=p(X)p(X,Y)=Yp(Y)p(XY)p(Y)p(XY)

其中,联合概率分布形式为 p ( x , y ) = p ( y ) ∏ i p ( x i ∣ y ) p(x,y)=p(y)\prod_i{p(x_i \mid y)} p(x,y)=p(y)ip(xiy),可以对应到有向图模型,如下图左图所示。

同时,如果定义一个因子 ψ ( y ) = p ( y ) \psi(y)=p(y) ψ(y)=p(y),针对每个特征 x i x_i xi 定义一个因子 ψ k ( y , x i ) = p ( x i ∣ y ) \psi_k(y,x_i)=p(x_i \mid y) ψk(y,xi)=p(xiy),就可以表示为因子图模型了,如下图右图所示。

在这里插入图片描述

3.2 LR

LR 作为判别模型,不必去学联合概率分布。LR 可以理解为每个 class 的对数概率,即 l o g p ( y ∣ x ) log{p(y|x)} logp(yx),是特征向量 x x x 的线性函数,也可以理解为条件概率分布的形式为参数化的逻辑斯蒂分布的概率模型,形式都为:
p ( y ∣ x ) = 1 Z ( x ) e x p ( ∑ i ω y i x i ) p(y \mid x) = \frac{1}{Z(x)}{exp(\sum_i{\omega_{{y}i}x_i})} p(yx)=Z(x)1exp(iωyixi)

引入特征函数 f y ′ i ( y , x ) = 1 ( y ′ = y ) x i f_{y'i}(y,x)=1(y'=y)x_i fyi(y,x)=1(y=y)xi,可以将所有 class 的权重向量合并为一个向量。用 f k f_k fk 来表示 f y ′ i f_{y'i} fyi, 相应权重表示为 ω k \omega_k ωk,可以将 LR 模型重新写作:
p ( y ∣ x ) = 1 Z ( x ) e x p ( ∑ k ω k f k ( y , x ) ) p(y \mid x) = \frac{1}{Z(x)}{exp(\sum_k{\omega_k f_k(y,x)})} p(yx)=Z(x)1exp(kωkfk(y,x))

可以看出,LR 相当于“以 ( y , x i ) (y,x_i) (y,xi)为最大团”的无向图,结构图如下:

在这里插入图片描述

可以看出,NB 和 LR 是由相似的图拓扑分别衍生的生成模型和判别模型

3.3 MEM

最大熵模型算是 LR 的通用形式,定义 f i ( x , y ) f_i(x,y) fi(x,y) 为特征函数,形式为
p ( y ∣ x ) = 1 Z ( x ) e x p ( ∑ i ω i f i ( x , y ) ) p(y \mid x) = \frac{1}{Z(x)}{exp(\sum_i{\omega_i f_i(x,y)})} p(yx)=Z(x)1exp(iωifi(x,y))

当变量 y y y 二项分布,且特征函数仅有两个 f 1 ( x , y ) = x f_1(x,y)=x f1(x,y)=x f x ( x , y ) = x y f_x(x,y)=xy fx(x,y)=xy时,MEM 等价于 LR。

当然还有一个扩展维度是,LR 的变量 y y y 扩展为多项式分布,但特征函数不变,则成了 softmax 回归。

3.4 HMM

HMM 作为生成模型,模型 λ = ( π , A , B ) \lambda=(\pi,A,B) λ=(π,A,B) 的联合概率可以写作:
p ( x , y ) = ∏ t = 1 T p ( y t ∣ y t − 1 ) p ( x t ∣ y t ) p(x,y)=\prod_{t=1}^T {p(y_t \mid y_{t-1}) p(x_t \mid y_t)} p(x,y)=t=1Tp(ytyt1)p(xtyt)

很容易看出来,HMM 即满足“输出(状态)满足齐次马尔科夫性假设,输入(观测)满足独立性假设”的有向图模型。图拓扑如下:

在这里插入图片描述

3.5 MEMM

3.6 CRF

CRF 作为判别模型,其条件概率形式同 MEM,但 y y y 为随机向量,形式为:
p ( y ∣ x ) = 1 Z ( x ) e x p ( ∑ C ω C f C ( x , y C ) ) p(y \mid x) = \frac{1}{Z(x)}{exp(\sum_C{\omega_C f_C(x,y_C)})} p(yx)=Z(x)1exp(CωCfC(x,yC))

可见,CRF 中最大团的概念只针对 y y y 不包含 x x x,对应 CRF 的定义 “条件概率满足马尔科夫随机场”。

常用的还是线性链 CRF,形式为:
p ( y ∣ x , ω ) = 1 Z e x p ( ∑ m ∑ t = 1 T ω 1 m f 1 m ( x , y t ) + ∑ n ∑ t = 1 T − 1 ω 2 n f 2 n ( x , y t , y t + 1 ) ) p(y \mid x, \omega) = \frac{1}{Z} exp(\sum_m\sum_{t=1}^T \omega_{1m} f_{1m}(x,y_t) + \sum_n\sum_{t=1}^{T-1} \omega_{2n} f_{2n}(x,y_t,y_{t+1})) p(yx,ω)=Z1exp(mt=1Tω1mf1m(x,yt)+nt=1T1ω2nf2n(x,yt,yt+1))

= 1 Z e x p ( ∑ t = 1 T ω 1 f 1 ( x , y t ) + ∑ t = 1 T − 1 ω 2 f 2 ( x , y t , y t + 1 ) ) = \frac{1}{Z} exp(\sum_{t=1}^T {\omega_1f_1(x,y_t)} + \sum_{t=1}^{T-1} {\omega_2f_2(x,y_t,y_{t+1})}) =Z1exp(t=1Tω1f1(x,yt)+t=1T1ω2f2(x,yt,yt+1))

= 1 Z e x p ( ω 1 f 1 ( x , y ) + ω 2 f 2 ( x , y ) ) = \frac{1}{Z} exp({\omega_1 f_1(x,y) + \omega_2 f_2(x,y)}) =Z1exp(ω1f1(x,y)+ω2f2(x,y))

= 1 Z e x p ( ω f ( x , y ) ) = \frac{1}{Z} exp(\omega f(x,y)) =Z1exp(ωf(x,y))

= 1 Z e x p ( ∑ k = 1 K ω k f k ( x , y ) ) = \frac{1}{Z} exp({\sum_{k=1}^K \omega_k f_k(x,y)}) =Z1exp(k=1Kωkfk(x,y))

其中, f 1 f_1 f1 为状态特征向量, f 2 f_2 f2 为转移特征向量, f f f 为全局特征向量, f k f_k fk k k k类特征值在 T T T个位置的和。

3.7 对比

下图展示了前面介绍到的几个经典模型的对比,可以从多个角度来理解,一个是纵向的“生成模型-判别模型”角度,一个是横向的推广过程。
其中,白色为 Y,或称状态 I,灰色为 X,或称观测 O。

在这里插入图片描述

生成模型-判别模型

判别模型不去 model 对分类没用的 p ( x ) p(x) p(x),这是因为 model p ( x ) p(x) p(x) 需要考虑很多高度依赖的特征;例如 HMM 处理 NER 时由于 HMM 仅依赖于词的实体这一个特征,而在训练数据中可能很多人名从未出现过,可见 entity-word 特征包含信息量有限。
而判别模型的主要优点就是可以便于包含丰富的重叠的各种特征。

当然,生成模型也有优点:

  • 能自然的处理潜变量、部分标注数据、无标注数据,如 HMM 中的无监督学习方式——BW 算法
  • 当数据集比较小时,生成模型比判别模型可能表现更好,可能是由于 p ( x ) p(x) p(x) 对条件概率的平滑作用

类似于NB 和 LR 构成了“生成模型-判别模型”对,HMM 和 CRF 也构成了“生成模型-判别模型”对,即上图的纵向对比。

HMM v.s. CRF

(1)HMM

  • 模型 p ( X , Y ) p(X,Y) p(X,Y) - λ \lambda λ ,状态 Y Y Y - I I I,观测 X X X - O O O
  • 评估,给定 λ \lambda λ O O O,计算 p ( O ∣ λ ) p(O | \lambda) p(Oλ),前向后向算法
  • 有监督学习,给定 O O O I I I,计算 p ( O , I ∣ λ ) p(O,I | \lambda) p(O,Iλ) 最大的 λ \lambda λ,MLE
  • 无监督学习,给定 O O O,计算 p ( O ∣ λ ) p(O|\lambda) p(Oλ) 最大的 λ \lambda λ,B-W算法
  • 预测,给定 λ \lambda λ O O O,计算 p ( I ∣ O , λ ) p(I|O,\lambda) p(IO,λ) 最大的 I I I,Viterbi算法

(2)CRF

  • 模型 p ( Y ∣ X ) p(Y|X) p(YX) - λ \lambda λ,状态 Y Y Y - I I I,观测 X X X - O O O
  • 评估,给定 λ \lambda λ I I I O O O,计算 p ( i t ∣ O , λ ) p(i_t|O,\lambda) p(itO,λ) p ( i t − 1 , i t ∣ O , λ ) p(i_{t-1},i_t|O,\lambda) p(it1,itO,λ),前向后向算法
  • 有监督学习,给定 O O O I I I,计算 p ( O , I ∣ λ ) p(O,I | \lambda) p(O,Iλ) 最大的 λ \lambda λ,MLE
  • 预测,给定 λ \lambda λ O O O,计算 p ( I ∣ O , λ ) p(I|O,\lambda) p(IO,λ) 最大的 I I I,Viterbi算法

4、其他

当然,上面只是介绍了 PGM 的一部分,其所蕴含的内容还有很多,体系如下,有空再聊吧。

在这里插入图片描述

CRF 应用

这里额外补充一下 CRF 在序列标注问题上的应用。以 POS 为例:

(1)特征构造

  • s1(yi,x,i)=1 ,如果 yi=ADVERB 且 xi 以“-ly”结尾;否则为 0 。
  • s2(yi,x,i)=1,如果 i=1 、yi=VERB 且 x 以“?”结尾;否则为 0 。
  • t3(yi−1,yi,x,i)=1,如果 yi−1=ADJECTIVE 且 yi=NOUN;否则为 0 。
  • t4(yi−1,yi,x,i)=1,如果 yi−1=PREPOSITION 且 yi=PREPOSITION;否则为 0 。

可见,CRF 相对 HMM 能 model 到全局 x 信息,且模型参数没有 HMM 中的限制。

(2)CRF++

训练数据、测试数据

下例中tokenizer为标签,pos做额外转移信息:

He        PRP  B-NP
reckons   VBZ  B-VP
the       DT   B-NP
current   JJ   I-NP
account   NN   I-NP
deficit   NN   I-NP
will      MD   B-VP
narrow    VB   I-VP
to        TO   B-PP
only      RB   B-NP
#         #    I-NP
1.8       CD   I-NP
billion   CD   I-NP
in        IN   B-PP
September NNP  B-NP
.         .    OHe        PRP  B-NP
reckons   VBZ  B-VP
..
特征模板
Input: Data
He        PRP  B-NP
reckons   VBZ  B-VP
the       DT   B-NP << CURRENT TOKEN
current   JJ   I-NP 
account   NN   I-NPtemplate 	expanded feature
%x[0,0] 	the
%x[0,1] 	DT
%x[-1,0] 	reckons
%x[-2,1] 	PRP
%x[0,0]/%x[0,1] 	the/DT
ABC%x[0,1]123 	ABCDT123

可见,可以利用%x[0,t]中的t控制采用状态特征还是转移特征。

以这样的标准宏将想要的特征写到特征模板文件中,CRF++将自动去提取特征。

(3)biLSTM-CNN-CRF

将”词向量“与”词的基于字符的CNN表征“拼接后,接入biLSTM,隐状态拼接后,当做观测 X 输入CRF,利用 CRF 预测 状态。

5、references

[1] Charles Sutton, An Introduction to Conditional Random Fields.
[2] 邱锡鹏, 神经网络与深度学习.
[3] https://www.cnblogs.com/Determined22/p/6750327.html
[4] https://www.cnblogs.com/Determined22/p/6915730.html


http://chatgpt.dhexx.cn/article/YCgHlDQq.shtml

相关文章

基于GBDT+LR模型的深度学习推荐算法

GBDTLR算法最早是由Facebook在2014年提出的一个推荐算法&#xff0c;该算法分两部分构成&#xff0c;第一部分是GBDT&#xff0c;另一部分是LR.下面先介绍GBDT算法&#xff0c;然后介绍如何将GBDT和LR算法融合 1.1 GBDT算法 GBDT的全称是 Gradient Boosting Decision Tree&am…

Logistic逻辑回归模型(LR)基础

逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上&#xff0c;套用了一个逻辑函数&#xff0c;但也就由于这个逻辑函数&#xff0c;使得逻辑回归模型成为了机器学习领域一颗耀眼的明星&#xff0c;更是计算广告学的核心。本文主要详述逻辑回归模型的基础&#x…

模型压缩一-知识蒸馏

一、知识蒸馏简介 知识蒸馏是模型压缩方法中的一个大类&#xff0c;是一种基于“教师-学生网络&#xff08;teacher-student-network&#xff09;思想”的训练方法&#xff0c; 其主要思想是拟合教师模型&#xff08;teacher-model&#xff09;的泛化性等&#xff08;如输出概率…

推荐系统之GBDT+LR

前言 前面讲过的FM与FFM模型虽然增强了模型的交叉能力&#xff0c;但是不管怎样都只能做二阶的交叉&#xff0c;如果想要继续加大特征交叉的维度&#xff0c;那就会出大计算爆炸的情况。所以Facebook提出了梯度提升树&#xff08;GBDT&#xff09;逻辑回归&#xff08;LR&…

使用Keras进行单模型多标签分类

原文&#xff1a;https://www.pyimagesearch.com/2018/05/07/multi-label-classification-with-keras/ 作者&#xff1a;Adrian Rosebrock 时间&#xff1a;2018年5月7日 源码&#xff1a;https://pan.baidu.com/s/1x7waggprAHQDjalkA-ctvg &#xff08;wa61&#xff09; 译者&…

LR模型常见问题小议

&#xfeff;&#xfeff; LR模型常见问题小议 标签&#xff1a; LR机器学习 2016-01-10 23:33 671人阅读 评论(0) 收藏 举报 本文章已收录于&#xff1a; 分类&#xff1a; 机器学习&#xff08;10&#xff09; 作者同类文章 X 版权声明&#xff1a;本文为博主原创文章&…

信用评分卡(A卡) 基于LR模型的数据处理及建模过程

数据来自&#xff1a;魔镜杯风控算法大赛&#xff08;拍拍贷&#xff09;。有关数据的具体描述可以看比赛页面。 0. 数据集的关键字段及描述&#xff1a; Master&#xff1a;每一行代表一个样本&#xff08;一笔成功成交借款&#xff09;&#xff0c;每个样本包含200多个各类…

机器分类---LR分类+模型评估

文章目录 数据集ROC曲线与AUC理论知识曲线理解实例计算 代码 更详细的数据集介绍&#xff08;有图形分析&#xff0c;应该比较好理解&#xff09; https://blog.csdn.net/weixin_42567027/article/details/107416002 数据集 数据集有三个类别&#xff0c;每个类别有50个样本。…

python机器学习算法(赵志勇)学习笔记( Logistic Regression,LR模型)

Logistic Regression(逻辑回归) 分类算法是典型的监督学习,分类算法通过对训练样本的学习,得到从样本特征到样本的标签之间的映射关系,也被称为假设函数,之后可利用该假设函数对新数据进行分类。 通过训练数据中的正负样本,学习样本特征到样本标签之间的假设函数,Log…

推荐系统实战中LR模型训练(二)

背景&#xff1a; 上一篇推荐系统实战中LR模型训练&#xff08;一&#xff09; 中完成了LR模型训练的代码部分。本文中将详细讲解数据准备部分&#xff0c;即将文本数据数值化为稀疏矩阵的形式。 文本数据&#xff1a; 稀疏矩阵&#xff1a; 实现过程&#xff1a; 文本数据格…

机器学习 | LR逻辑回归模型

逻辑回归(Logistic Regression,简称LR)名为“回归”却是用来分类工作、在线性数据上表现优异的分类器。 视频教程:第07讲:逻辑回归是线性分类器的佼佼者 LR是数据挖掘领域常用的一种分类模型,常用于解决二分类问题,例如垃圾邮件判定、经济预测、疾病诊断(通过年龄、性…

推荐系统实战中LR模型训练(一)

背景&#xff1a; 在“批量导入数据到Redis” 中已经介绍了将得到的itema item1:score1,item2:score2…批量导入到Redis数据库中。本文的工作是运用机器学习LR技术&#xff0c;抽取相应的特征&#xff0c;进行点击率的估计。 点击率&#xff08;Click-Through-Rate, CTR&#…

Prometheus TSDB存储原理

Python微信订餐小程序课程视频 https://blog.csdn.net/m0_56069948/article/details/122285951 Python实战量化交易理财系统 https://blog.csdn.net/m0_56069948/article/details/122285941 Prometheus 包含一个存储在本地磁盘的时间序列数据库&#xff0c;同时也支持与远程…

数据库必知必会:TiDB(8)TiDB 数据库 SQL 执行流程

数据库必知必会&#xff1a;TiDB&#xff08;8&#xff09;TiDB 数据库 SQL 执行流程 数据库 SQL 执行流程DML语句读流程概述SQL的Parse与CompileSQL的Execute DML语句写流程概述执行 DDL语句流程概要执行 知识点回顾 数据库 SQL 执行流程 在TiDB中三个重要组件&#xff1a; …

时不我待,TSDB崛起正当时

近期有小伙伴问Jesse&#xff0c;为什么你们要在现在这个时点做TSDB&#xff0c;这是个好时点吗&#xff1f;我认为这是个挺好的问题&#xff0c;因为再强的个人也比不上一个团队&#xff0c;再牛的团队也需要顺势而为。我们其实一直在深度思考“Why Now”的问题&#xff0c;因…

时间序列数据库TSDB排名

DB-Engines 中时序列数据库排名 我们先来看一下DB-Engines中关于时序列数据库的排名&#xff0c;这是当前&#xff08;2016年2月的&#xff09;排名情况&#xff1a; 下面&#xff0c;我们就按照这个排名的顺序&#xff0c;简单介绍一下这些时序列数据库中的一些。下面要介绍的…

TiDB Server

目录 TiDB Server架构 Online DDL GC 缓存管理 热点小表缓存 例题 TiDB Server架构 Protocol Layer&#xff1a;负责处理客户端的连接 Parse&#xff0c;Compile&#xff1a;负责SQL语句的解析与编译&#xff0c;并生成执行计划 Executor&#xff0c;DistSQL&#xff0…

Prometheus TSDB

TSDB 概述&#xff1a; Head: 数据库的内存部分 Block: 磁盘上持久块&#xff0c;是不变的 WAL: 预写日志系统 M-map: 磁盘及内存映射 粉红色框是传入的样品&#xff0c;样品先进入Head中存留一会&#xff0c;然后到磁盘、内存映射中&#xff08;蓝色框&#xff09;。然后当内…

TiDB体系结构之TiDB Server

TiDB体系结构之TiDB Server TiDB ServerTiDB Server主要组成模块SQL语句的解析和编译行数据与KV的转化SQL读写相关模块在线DDL相关模块TiDB的垃圾回收TiDB Server的缓存 TiDB Server TiDB Server的主要作用如下&#xff1a; 处理客户端连接SQL语句的解析和编译关系型数据与KV…

TSDB助力风电监控

各位小伙伴大家好&#xff0c;本期Jesse想再来跟大家聊聊TSDB的应用场景&#xff0c;在此也感谢尹晨所著的《时序数据库在风电监控系统中的应用》一文&#xff0c;其为我们探究TSDB在风电系统中的应用提供了重要的帮助。 本文仅代表个人观点&#xff0c;如有偏颇之处&#xff…