需要一下长短期记忆(遗忘门、输入门、输出门)、条件随机场CRF、BILSTM+CRF、以及ATT-BILSTM的算法公式讲解,不需要代码,只需要把公式参数功能讲解清楚即可(在知识图谱实体关系抽取中的应用)
该回答引用ChatGPT
1、长短期记忆(LSTM)
LSTM 是一种常用的循环神经网络,它的核心思想是使用遗忘门、输入门和输出门来控制信息的流动,从而更好地处理序列数据。
(1)遗忘门
LSTM 中的遗忘门控制了前一时刻的记忆状态 $c_{t-1}$ 中的哪些信息需要保留下来,哪些信息需要遗忘。遗忘门的公式为:
$$f_t=\sigma(W_f \cdot [h_{t-1},x_t] + b_f)$$
其中 $W_f$ 和 $b_f$ 是遗忘门的权重和偏置,$h_{t-1}$ 是前一时刻的隐藏状态,$x_t$ 是当前时刻的输入。$\sigma$ 是 Sigmoid 函数,可以将其输出值压缩到 0 到 1 之间,表示保留的比例。
(2)输入门
LSTM 中的输入门控制了哪些新信息需要被加入到记忆状态 $c_{t-1}$ 中。输入门的公式为:
$$i_t=\sigma(W_i \cdot [h_{t-1},x_t] + b_i)$$
$$\tilde{c_t}=tanh(W_c \cdot [h_{t-1},x_t] + b_c)$$
其中 $W_i$、$W_c$、$b_i$ 和 $b_c$ 是输入门和记忆状态的权重和偏置。$tanh$ 函数用于生成一个新的候选记忆状态 $\tilde{c_t}$,其取值范围为 -1 到 1 之间。
(3)更新记忆状态
根据遗忘门和输入门的输出,可以更新记忆状态 $c_t$,其公式为:
$$c_t=f_t\odot c_{t-1} + i_t\odot \tilde{c_t}$$
其中 $\odot$ 表示对应元素相乘。
(4)输出门
LSTM 中的输出门控制了哪些信息需要被输出到下一层或最终的输出。输出门的公式为:
$$o_t=\sigma(W_o \cdot [h_{t-1},x_t] + b_o)$$
$$h_t=o_t\odot tanh(c_t)$$
其中 $W_o$ 和 $b_o$ 是输出门的权重和偏置。
2、条件随机场(CRF)
是一种基于图模型的判别式概率模型,用于序列标注、分割和结构化预测等任务。它在自然语言处理、计算机视觉、生物信息学等领域被广泛应用。
以下是条件随机场的算法公式及其含义:
假设有一个输入序列 $\boldsymbol{x}=(x_1, x_2, \dots, x_n)$ 和相应的输出序列 $\boldsymbol{y}=(y_1, y_2, \dots, y_n)$,其中 $n$ 是序列的长度。条件随机场的目标是求解在给定输入序列 $\boldsymbol{x}$ 的情况下,输出序列 $\boldsymbol{y}$ 的最优标注序列。
1、状态特征函数(State Feature Function)
状态特征函数是一种二元函数,它表示在某个位置 $i$ 上,输出标签为 $y_i$ 时,输入序列 $\boldsymbol{x}$ 中的某些属性或特征发生的概率。它通常表示为:
$$f_k(y_i, x_i)$$
其中,$k$ 是特征函数的编号,$y_i$ 是输出标签,$x_i$ 是输入特征。
2、转移特征函数(Transition Feature Function)
转移特征函数是一种二元函数,它表示从位置 $i$ 的标签为 $y_i$ 转移到位置 $i+1$ 的标签为 $y_{i+1}$ 时,输入序列 $\boldsymbol{x}$ 中的某些属性或特征发生的概率。它通常表示为:
$$g_k(y_i, y_{i+1}, \boldsymbol{x})$$
其中,$k$ 是特征函数的编号,$y_i$ 和 $y_{i+1}$ 是输出标签,$\boldsymbol{x}$ 是输入序列。
3、状态序列分数(Score of State Sequence)
状态序列分数表示给定输入序列 $\boldsymbol{x}$ 和输出标签序列 $\boldsymbol{y}$ 的联合概率分数,即:
$$s(\boldsymbol{x}, \boldsymbol{y})=\sum_{i=1}^{n}\sum_{k} \lambda_k f_k(y_i, x_i)+\sum_{i=1}^{n-1}\sum_{k} \mu_k g_k(y_i, y_{i+1}, \boldsymbol{x})$$
其中,$\lambda_k$ 和 $\mu_k$ 是特征函数的权值或参数。
3、BILSTM+CRF
BILSTM+CRF 是序列标注中常用的模型,它结合了 LSTM 和 CRF,用于标注序列中每个单元的标签。
(1)BILSTM
BILSTM 中的双向 LSTMs 与 LSTM 相似,只是它们分别在正向和反向两个方向上运行,并在每个时间步骤上输出一个隐藏状态向量。BILSTM 的公式为:
$$h_t^f=LSTM(x_t,h_{t-1}^f)$$
$$h_t^b=LSTM(x_t,h_{t+1}^b)$$
其中 $h_t^f$ 是正向 LSTM 在时刻 $t$ 的隐藏状态,$h_t^b$ 是反向 LSTM 在时刻 $t$ 的隐藏状态。$x_t$ 是输入序列在时刻 $t$ 的值。
(2)CRF
在 BILSTM 的输出基础上,CRF 用于解码序列中每个单元的标签。CRF 的公式已经在上面介绍过了。
4、ATT-BILSTM
ATT-BILSTM(Attention-based Bidirectional Long Short-Term Memory)是一种神经网络模型,常用于序列标注任务,如命名实体识别、词性标注等。它结合了BiLSTM和注意力机制,能够有效地捕捉输入序列中的上下文信息和重要特征,提高模型的性能。
下面是ATT-BILSTM的算法流程:
1、输入层
ATT-BILSTM的输入是一个序列 $\boldsymbol{x}=(x_1, x_2, \dots, x_n)$,其中 $n$ 是序列的长度。每个 $x_i$ 是一个词语或特征向量。
2、词嵌入层
为了将每个词语表示成固定长度的向量,ATT-BILSTM通常使用词嵌入(word embedding)技术,将每个 $x_i$ 转化为 $d$ 维的词向量 $\boldsymbol{e}_i$,其中 $d$ 是词向量的维度。
3、双向LSTM层
双向LSTM(Bidirectional Long Short-Term Memory)层由一个前向LSTM和一个后向LSTM组成,分别对输入序列进行正向和反向的处理,获得两个隐藏状态序列 $\overrightarrow{\boldsymbol{h}}=(\overrightarrow{\boldsymbol{h}}_1, \overrightarrow{\boldsymbol{h}}_2, \dots, \overrightarrow{\boldsymbol{h}}_n)$ 和 $\overleftarrow{\boldsymbol{h}}=(\overleftarrow{\boldsymbol{h}}_1, \overleftarrow{\boldsymbol{h}}_2, \dots, \overleftarrow{\boldsymbol{h}}_n)$,其中 $\overrightarrow{\boldsymbol{h}}_i$ 和 $\overleftarrow{\boldsymbol{h}}_i$ 分别表示第 $i$ 个位置的正向和反向隐藏状态。
4、注意力层
注意力层使用注意力机制,将输入序列中的重要信息和上下文信息加权聚合,得到一个加权向量表示。在ATT-BILSTM中,注意力层通常使用双向LSTM的隐藏状态序列作为输入,计算一个加权向量 $\boldsymbol{c}$,表示对于序列中每个位置,输入序列的不同部分对于当前位置的贡献。注意力层的计算公式如下:
$$\boldsymbol{c}=\sum_{i=1}^{n} \alpha_i \boldsymbol{h}_i$$
$$\alpha_i=\frac{\exp(e_i)}{\sum_{j=1}^{n} \exp(e_j)}$$
其中,$e_i$ 是第 $i$ 个位置的能量值,表示该位置对于当前时刻的重要性,计算公式如下:
$$e_i=\boldsymbol{v}^T \tanh(\boldsymbol{W}_1 \overrightarrow{\boldsymbol{h}}_i + \boldsymbol{W}_2 \overleftarrow{\boldsymbol{h}}_i)$$