NLP基础知识点:CIDEr算法

Posted 梆子井欢喜坨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NLP基础知识点:CIDEr算法相关的知识,希望对你有一定的参考价值。

CIDEr的主要应用场景为Image Caption
参考论文:[1] Vedantam R , Zitnick C L , Parikh D . CIDEr: Consensus-based Image Description Evaluation[J]. IEEE, 2015.

目的是评估对图像 I i I_i Ii,一个候选句(candidate sentence) c i c_i ci和一组和一组图像描述 S i = { s i 1 , . . . , s i m } S_i = \\{s_{i1},...,s_{im}\\} Si={si1,...,sim}的一致性有多好。

直觉上,一致性度量将编码候选句子中的n-grams在参考句子中出现的频率。
同样,参考句中不存在的n-grams也不应该出现在候选句中。
最后,通常出现在数据集中所有图像上的n-grams应该被赋予较低的权重,因为它们的信息可能较少。

  • h k ( s i j ) h_k(s_{ij}) hk(sij): n-gram ω k \\omega_k ωk出现在参考句 s i j s_{ij} sij中的次数
  • h k ( c i ) h_k(c_{i}) hk(ci): n-gram ω k \\omega_k ωk出现在候选句 c i c_i ci中的次数

为每个n-gram ω k \\omega_k ωk计算TF-IDF权重
Ω is the vocabulary of all n-grams
I is the set of all images in the dataset.
与参考集相对应的公式如下:
在这里插入图片描述
这个公式中,
TF部分是归一化的 ω k \\omega_k ωk的词频
IDF部分的分子为图像的总数量,分母为其参考句中含有 ω k \\omega_k ωk的图像的数量。

同理,应该可以计算一个 g k ( c i ) g_k(c_i) gk(ci),假设只有一个候选句
它的公式可能为:(这里原论文没有给出计算公式,只是猜测)
g k ( c i ) = T F ( k ) ∗ I D F ( k ) g_k(c_i)= TF(k) * IDF(k) gk(ci)=TF(k)IDF(k)

T F ( k ) = h k ( c i ) ∑ w ∈ Ω h l ( c i ) TF(k) = \\frac{h_k(c_i)}{\\sum_{w\\in\\varOmega} h_l(c_i)} TF(k)=wΩhl(ci)hk(ci)

I D F ( k ) = l o g ( ∣ I ∣ ∑ I p ∈ I m i n ( 1 , h k ( c p ) ) ) IDF(k) = log(\\frac{|I|}{\\sum_{I_p\\in I}min(1, h_k(c_{p}))}) IDF(k)=log(IpImin(1,hk(cp))I)

计算一个平均余弦相似度 C I D E r n ( c i , S i ) CIDEr_n(c_i, S_i) CIDErn(ci,Si)(参考句有 m m m句)
g n ( c i ) g^n(c_i) gn(ci)是一个由所有的 g k ( c i ) g_k(c_i) gk(ci)组成的向量(所有长度为n的n-grams), g n ( s i j ) g^n(s_{ij}) gn(sij)同理
在这里插入图片描述
进行一个不同n-grams的加权求和,从经验来看,取 w n = 1 / N w_n= 1/N wn=1/N效果最佳
原论文中使用N = 4.
在这里插入图片描述
改进:CIDEr-D
(后续有空做整理)

以上是关于NLP基础知识点:CIDEr算法的主要内容,如果未能解决你的问题,请参考以下文章

自动聊天机器人项目班 [一门课搞定聊天机器人]

自动聊天机器人项目班 [一门课搞定聊天机器人]

北京NLP算法岗位

自然语言处理(NLP) - 数学基础 - 排列组合

NLP基础知识点:METEOR

NLP | NLP基础之中文分词