Bi-LSTM+CRF

pytorch: https://pytorch.org/tutorials/
Bi-LSTM+CRF: https://pytorch.org/tutorials/beginner/nlp/advanced_tutorial.html

Bi-LSTM结构(序列标注)如下,CRF层用来学习一个最优路径,Bi-LSTM layer的输出维度是tag size,这就相当于是每个词w_{i}映射到tag的发射概率,
假设:
Bi-LSTM的输出矩阵为P,其中P_{i,j}代表词w_{i}映射到tag_{j}的非归一化概率。
转移矩阵 AA_{i,j} 代表tag_{i}转移到tag_{j}的转移概率。
输入序列X对应的输出tag序列为y,定义得分为:
S(X,y) = \sum_{i=0}^{n} A_{y_{i},y_{i+1}} + \sum_{0}^{n}P_{i,y_{i}}
对于输入X,有多种输出序列y,对这些结果,使用softmax归一化。
p(y|X) = \frac{e^{S(X,y)}}{\sum_{\hat{y}\in{Y_{x}}} e^{S(X,\hat{y})}}
其中Y_{x}表示所有可能情况的序列
优化对数似然函数
log(p(y|X)) = S(X,y) - log({\sum_{\hat{y}\in{Y_{x}}} e^{S(X,\hat{y})}})

image.png

ref:
https://zhuanlan.zhihu.com/p/27338210

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容