NLP任务中常用的损失函数

发布时间:2024年01月18日

损失函数类型

适用于:文本分类,情感分析,机器翻译,抽取式问答的有:
y , y ^ y,\hat{y} y,y^?分别表示真实和预测值

  • 二分类交叉熵损失
    L ( y , y ^ ) = ? ( y l o g y ^ + ( 1 ? y ) l o g ( 1 ? y ^ ) L(y,\hat{y})=-(ylog\hat{y} + (1-y)log(1-\hat{y}) L(y,y^?)=?(ylogy^?+(1?y)log(1?y^?)
  • 多分类交叉熵损失函数
    L ( y , y ^ ) = ? ∑ i = 1 m y i l o g y i ^ L(y,\hat{y})=-\sum_{i=1}^{m}y_{i}log\hat{y_{i}} L(y,y^?)=?i=1m?yi?logyi?^?

语言模型(LM):

  • 困惑度(Perplexity):
    P e r p l e x i t y = 2 ? 1 N ∑ i = 1 N l o g 2 P ( x i ) Perplexity=2^{-\frac{1}{N}\sum_{i=1}^{N}log_{2}P(x_{i})} Perplexity=2?N1?i=1N?log2?P(xi?)

问答系统(生成式问答),生成式任务(如文本生成)
给定输入序列 x = { x i } i = 1 M x=\{x_{i}\}_{i=1}^{M} x={xi?}i=1M?,文本生成模型生成一个目标序列文本 y = { y i } i = 1 N y=\{y_{i}\}_{i=1}^{N} y={yi?}i=1N?

  • 对数似然损失函数:
    L N L L = ? ∑ t = 1 N l o g p θ ( y t ∣ x , y < t ) L_{NLL}=-\sum_{t=1}^{N}logp_{\theta}(y_{t}\vert x,y_{<t}) LNLL?=?t=1N?logpθ?(yt?x,y<t?)
    在训练过程中,预测下一个token是利用真实的先前序列 y < t ∈ y y_{<t}\in y y<t?y,而在推理过程中,预测下一个token是利用模型预测的先前序列 y < t y_{<t} y<t?

语义相似度:

  • 余弦相似度:
    L ( a , b ) = 1 ? a ? b ∥ a ∥ ? ∥ b ∥ L(a,b)=1-\frac{a\cdot b}{\Vert a\Vert \cdot \Vert b\Vert } L(a,b)=1?a?ba?b?
    常见的向量空间模型下的相似度计算方法,将文本表示为向量,通过计算它们的余弦值来衡量相似度。
  • 皮尔逊相关系数
    P ( a , b ) = c o v ( a , b ) σ a ? σ b P(a,b)=\frac{cov(a,b)}{\sigma_{a}\cdot\sigma_{b}} P(a,b)=σa??σb?cov(a,b)?
    衡量两个变量之间线性相关性的指标,在语义相似度任务中可以用于评估两个文本向量之间的线性关系。
  • Jaccard相似度
    J ( a , b ) = ∣ a ∩ b ∣ ∣ a ∪ b ∣ J(a,b)=\frac{\vert a\cap b\vert}{\vert a\cup b\vert} J(a,b)=abab?
    用于衡量两个集合的相似度,对于文本来说,可以将文本中的词看作是集合中的元素。
  • 欧几里得距离
    D ( a , b ) = ∑ i = 1 n ( a i ? b i ) 2 D(a,b)=\sqrt{\sum_{i=1}^{n}(a_{i}-b_{i})^{2 }} D(a,b)=i=1n?(ai??bi?)2 ?
  • 曼哈顿距离
    D ( a , b ) = ∑ i = 1 n ∣ a i ? b i ∣ D(a,b)=\sum_{i=1}^{n}|a_{i}-b_{i}| D(a,b)=i=1n?ai??bi?
文章来源:https://blog.csdn.net/bulling/article/details/135656199
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。