24.9.25学习笔记

发布于:2024-10-12 ⋅ 阅读:(6) ⋅ 点赞:(0)

BLEU(Bilingual Evaluation Understudy)分数是一种评估机器翻译质量的方法,特别是它如何接近人类翻译的程度。它由IBM在2002年提出,最初是为了机器翻译系统的评估而设计的,但后来也被广泛应用于其他自然语言处理任务,如文本摘要、对话系统等,作为衡量生成文本与参考文本相似度的指标。

BLEU分数主要基于两个主要概念:

  1. N-gram精确度:BLEU分数通过比较机器生成的文本(候选文本)与一个或多个参考文本(通常是人类翻译的文本)之间的n-gram匹配程度来计算。n-gram是文本中的连续n个项目的序列,可以是字母、单词或短语。BLEU分数计算候选文本和参考文本之间不同长度n-gram的匹配程度。

  2. 短句惩罚:为了防止机器生成的文本因为太短而获得高分,BLEU分数还引入了一个短句惩罚因子。如果候选文本比参考文本短,那么分数会受到影响。


束搜索(Beam Search)是一种在序列生成任务中常用的搜索算法,特别是在自然语言处理(NLP)领域,如机器翻译、文本生成等任务中。束搜索通过维护一个候选序列集合(称为“束”),并在每一步扩展这些候选序列,从而找到最有可能的输出序列。

基本思想

在传统的贪心搜索(Greedy Search)中,每次只选择当前步得分最高的单词作为下一个单词。虽然这种方法简单高效,但可能会错过全局最优解,因为局部最优并不总是全局最优。

束搜索通过维护多个候选序列来克服这一问题。具体来说,束搜索在每一步都会保留前 k 个(束宽)得分最高的候选序列,然后在下一步继续扩展这些候选序列。这样可以增加找到全局最优解的机会。

步骤详解

  1. 初始化

    • 从起始标记(如 <SOS>)开始,生成初始的候选序列集合。
    • 通常,初始集合只有一个元素,即 [<SOS>]
  2. 扩展候选序列

    • 对于每个候选序列,生成所有可能的下一个单词。
    • 计算每个新生成的候选序列的得分(通常使用概率或对数概率)。
  3. 选择前 k 个候选序列(k就是束宽)

    • 从所有扩展的候选序列中选择得分最高的前 k 个序列,形成新的候选序列集合。
    • 这一步是束搜索的核心,通过保留多个候选序列来探索不同的路径。
  4. 终止条件

    • 当某个候选序列以结束标记(如 <EOS>)结尾时,将其从候选序列集合中移出,并记录下来。
    • 当所有候选序列都以结束标记结尾,或者达到最大序列长度时,搜索终止。
  5. 返回结果

    • 从所有记录的候选序列中选择得分最高的一个作为最终结果。

示例

假设我们有一个简单的例子,目标是从一个给定的输入序列生成一个输出序列。我们使用束搜索来生成最有可能的输出序列。

参数设置
  • 束宽beam_width): 2
  • 最大序列长度max_length): 5
初始化
  • 初始候选序列集合: [<SOS>]
第一步
  • 扩展 [<SOS>],生成所有可能的下一个单词:
    • [<SOS>, A] (得分: 0.7)
    • [<SOS>, B] (得分: 0.3)
  • 选择前 2 个得分最高的候选序列:
    • [<SOS>, A]
    • [<SOS>, B]
第二步
  • 扩展 [<SOS>, A] 和 [<SOS>, B],生成所有可能的下一个单词:
    • [<SOS>, A, C] (得分: 0.7 * 0.8 = 0.56)
    • [<SOS>, A, D] (得分: 0.7 * 0.2 = 0.14)
    • [<SOS>, B, E] (得分: 0.3 * 0.9 = 0.27)
    • [<SOS>, B, F] (得分: 0.3 * 0.1 = 0.03)
  • 选择前 2 个得分最高的候选序列:
    • [<SOS>, A, C]
    • [<SOS>, B, E]
第三步
  • 扩展 [<SOS>, A, C] 和 [<SOS>, B, E],生成所有可能的下一个单词:
    • [<SOS>, A, C, G] (得分: 0.56 * 0.6 = 0.336)
    • [<SOS>, A, C, H] (得分: 0.56 * 0.4 = 0.224)
    • [<SOS>, B, E, I] (得分: 0.27 * 0.7 = 0.189)
    • [<SOS>, B, E, J] (得分: 0.27 * 0.3 = 0.081)
  • 选择前 2 个得分最高的候选序列:
    • [<SOS>, A, C, G]
    • [<SOS>, A, C, H]
终止条件
  • 假设 [<SOS>, A, C, G] 以结束标记 <EOS> 结尾,记录该序列。
  • 继续扩展 [<SOS>, A, C, H],直到达到最大序列长度或所有候选序列都以结束标记结尾。

优点和缺点

优点
  • 提高搜索质量:通过保留多个候选序列,增加了找到全局最优解的机会。
  • 灵活性:可以通过调整束宽来平衡搜索质量和计算复杂度。
缺点
  • 计算复杂度高:随着束宽的增加,计算量会显著增加。
  • 内存消耗大:需要存储多个候选序列及其得分。

实际应用

在实际应用中,束搜索广泛应用于各种序列生成任务,如机器翻译、语音识别、文本摘要等。通过合理设置束宽,可以在搜索质量和计算效率之间找到平衡。