因为最近一个实验室项目即将开始,关于给中国移动公司做一个智能客服对话系统,所以这段时间我开始搜集相关的最新论文开始阅读,今天给大家带来的是<<Diverse Beam Search--Decoding Diverse Solutions from Neural Sequence Models>>
Neural Sequence Model(RNN、LSTM)常用来处理有时序性的数据。目前在decode的过程中经常会使用beam search算法,这个算法类似于贪心算法,在每个时刻输出后会保留概率前k大的序列,其它的舍弃掉。举个例子,在t-1时刻我们经过筛选已经有了k个序列,那么在t时刻,我们的输出会有k×n个序列(其中n是单词库的总数)。然后我们选取其中概率前k大的序列,其余的全部舍弃掉。不断重复这样的做法,直到输出结束。但是beam search有个最大的问题是其输出的k个句子之间差异性很小(这样就相当于耗费巨大时间输出的结果基本相似),这样造成了计算的浪费,并且不能体现实际语言的多样性(比如在image captioning中,针对一张图片应该会有好多种描述方式的,而不仅仅局限于一种两种)。而这篇论文提出了diverse beam search算法,相当于对beam search算法的改进。经过实验证明,这种算法会使得输出多样性和准确性都大幅提高,而且DBS算法有很广阔的应用领域,包括image captioning、machine translation、conversation、visual question generation等。
在decode过程中,假设我们的单词表共有N个单词,