Beam Search生成的句子基本都一样,是不是有方法扩展生成句子的多样性?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Beam Search生成的句子基本都一样,是不是有方法扩展生成句子的多样性?相关的知识,希望对你有一定的参考价值。

是的,使用Beam Search进行生成时,由于其先选取前几个最优解,因此输出的句子可能会出现类似的或相同的情况。为了使生成结果更多样化,可以引入一些技术。

1. 集束搜索宽度(beam width)的调整:增大集束搜索的宽度可以增加生成结果,增强输出多样性。但同时也增加了计算量的成本,因此需要平衡计算成本和多样性要求。

2. 采样策略:使用随机采样策略会进一步增加结果的多样性。在每个步骤中,使用概率分布随机选取一个单词作为下一个候选。这样,所得到的句子可能会有重复的词或矛盾的片段,但也可以得到更加细致和多样的生成结果。

3. 温度控制:在采样过程中,通过缩放生成分布的熵或扰动温度因子来调节采样策略。这可以在依靠最概然的解的同时,增加多样性。温度越高,生成结果越多样化。

4. 多模型集成:使用不同的模型或模型的不同参数集,可以在输出结果上产生更多变化,增加生成结果的多样性。

这些方法可以单独或组合使用,以得到更加丰富的生成结果。
参考技术A 是的,有几种方法可以扩展Beam Search生成的句子的多样性。以下是一些建议:

1. 调整beam width:增加 beam width 可以使得Beam Search保留更多可能性的翻译结果,从而提高生成句子的多样性。

2. 加入随机因素:引入随机性的方法比如在选择下一个单词时,对每个候选词进行加权随机选择,而不是只选择最有可能的那个,这样可以避免生成相似的句子。

3. 重新排序和筛选:在生成的所有翻译结果中,将相似或重复的结果删除,并按照某些标准(例如语法、流畅度、可读性等)重新排序,也可以增加句子的多样性。

4. 使用基于注意力机制的模型: 基于注意力机制的模型可以关注输入句子的不同部分,从而生成与输入的多种相应的翻译结果。

需要注意的是,这些方法并非互相排斥,可以根据具体情况进行组合使用。

Apache Beam 批量到 BigQuery,中间文件,它们是不是仅以 JSON 格式生成

【中文标题】Apache Beam 批量到 BigQuery,中间文件,它们是不是仅以 JSON 格式生成【英文标题】:Apache Beam to BigQuery in batch, intermediary files, are they only generated in JSONApache Beam 批量到 BigQuery,中间文件,它们是否仅以 JSON 格式生成 【发布时间】:2017-09-08 16:05:36 【问题描述】:

我正在读取 CSV 文件,在通过云 Dataflow 中的梁 (2.1.0) 将它们写入 BigQuery 之前对其进行转换。 GCS 中为 Bq 加载作业生成的中间文件是 JSON 文件。有没有办法在 CSV 而不是 JSON 中生成它们,这将消耗更少的空间和 IO。如果有办法改变为什么默认是 JSON 而不是 CSV 最好的问候,

【问题讨论】:

【参考方案1】:

CSV 不支持架构中的嵌套或重复数据,这就是 Beam 不将其用于 BigQuery 导入的原因。 JSON 和 Avro 格式支持它,将实现更改为使用 Avro 可能是个好主意(我们已经使用 Avro 从 BigQuery 导出数据)。随时通过https://issues.apache.org/jira/browse/BEAM 提交 JIRA。

【讨论】:

感谢@jkff 的反馈。我按照你的建议创建了 BEAM-2879,希望我在创建它时没有违反任何规则:) @jkff 我目前正在努力将数据从 BigQueryIO.read(...).fromQuery 导出到 Avro 文件。你有提示吗,怎么做?

以上是关于Beam Search生成的句子基本都一样,是不是有方法扩展生成句子的多样性?的主要内容,如果未能解决你的问题,请参考以下文章

Beam Search(集束搜索/束搜索/定向搜索)

集束搜索beam search和贪心搜索greedy search

使用beam&tf变换创建通用句子编码器嵌入时出错

关于 Image Caption 中测试时用到的 beam search算法

beam search啥意思

Beam_search集束搜索