一种神经网络对话系统中的低频词压缩方法
发布时间:2021-09-02 10:01
近年来,基于深度神经网络的生成式对话系统受到了来自学术界和工业界的广泛关注。生成式对话系统通常被建模为序列到序列任务,即将用户的问话当做源序列,回答用户的回复做为目标序列。Encoder-Decoder是当前用于实现生成式对话的主流框架,由两部分组成,Encoder负责理解用户的问话文本,Decoder负责生成一个新的文本回复用户。目前大部分基于Encoder-Decoder框架的生成式对话系统采用词级别模型,即将对话中的文本表示为词向量序列,通过维护一个包含词向量的词表来理解或产生一个对应的词。受限于当前计算机硬件发展的限制,词表通常只能被设计为有限容量,词表之外的词将会变成未登录词。由于词表中不包含未登录词的词向量,因此未登录词不能被Encoder理解,也不能被Decoder生成,最终影响对话系统的整体性能,降低对话系统的生成质量。为了解决生成式对话中的未登录词问题,并改善基于Encoder-Decoder的对话系统的性能,本文提出了基于低频词压缩表示的生成式对话模型HL-EncDec。HL-EncDec将未登录词归类为低频词,并利用语言中字符数目恒定且总量少的特性,将低频词压缩到...
【文章来源】:北京大学北京市 211工程院校 985工程院校 教育部直属院校
【文章页数】:59 页
【学位级别】:硕士
【部分图文】:
Encoder-Decoder生成式对话系统示意图
频数累计 1.06 亿,其中横坐标代表的是排位在对应取值的词,纵坐标代表的是该词的使用频数,并且为了便于观察,该值已经以 2 为底取了对数。可以发现排位靠前的小部分词是被频繁使用的常用词,而排位靠后的绝大部分词是很少被使用的稀疏词。考虑到这一点,在 Encoder-Decoder 中词表的构成方式常采用贪心策略,使词表尽可能覆盖到实际对话,即根据设定的词表容量| |,将选择频度最高的前| |个词加入到词表中,剩余的词做为未登录词处理。这种基于贪心策略的词表构成方法可以获得近似最大的词覆盖率,其中词覆盖率DataCoverage的计算方式如下:DataCoverage# ##(4.1)其中# 代表整个语料中所有词使用频数总和,而# 代表排位在| |以外所有词的频数总和。词覆盖率越大,代表这个词表能够覆盖语料中词的完整度越高。图4.2 展示了本文所使用的预料的词覆盖率和词表大小的关系。图 4.2 包含的词表规格为:[5000,10000,20000,40000,80000,160000], 计算得到的覆图 4.1 词频分布
代表这个词表能够覆盖语料中词的完整度越高。图4.2 展示了本文所使用的预料的词覆盖率和词表大小的关系。图 4.2 包含的词表规格为:[5000,10000,20000,40000,80000,160000], 计算得到的覆盖率分别为:[0.85,0.90,0.94,0.97,0.98,0.99]。由此可见,选择排位靠前的前| |的词加入词表,可以取得非常高的覆盖率。虽然整个语料中包含 70 多万词,但仅前 10000 个词就可以获得高达 90%的覆盖率。但从另一个角度去观察,会发现随着词表规格的不断增加,词表覆盖率增长的收益却在下降。词表规格从 5000 翻倍提升到 10000 时,词表覆盖率增长了 5%,从 10000 翻倍到 20000,词表覆盖率增长了 4%
本文编号:3378810
【文章来源】:北京大学北京市 211工程院校 985工程院校 教育部直属院校
【文章页数】:59 页
【学位级别】:硕士
【部分图文】:
Encoder-Decoder生成式对话系统示意图
频数累计 1.06 亿,其中横坐标代表的是排位在对应取值的词,纵坐标代表的是该词的使用频数,并且为了便于观察,该值已经以 2 为底取了对数。可以发现排位靠前的小部分词是被频繁使用的常用词,而排位靠后的绝大部分词是很少被使用的稀疏词。考虑到这一点,在 Encoder-Decoder 中词表的构成方式常采用贪心策略,使词表尽可能覆盖到实际对话,即根据设定的词表容量| |,将选择频度最高的前| |个词加入到词表中,剩余的词做为未登录词处理。这种基于贪心策略的词表构成方法可以获得近似最大的词覆盖率,其中词覆盖率DataCoverage的计算方式如下:DataCoverage# ##(4.1)其中# 代表整个语料中所有词使用频数总和,而# 代表排位在| |以外所有词的频数总和。词覆盖率越大,代表这个词表能够覆盖语料中词的完整度越高。图4.2 展示了本文所使用的预料的词覆盖率和词表大小的关系。图 4.2 包含的词表规格为:[5000,10000,20000,40000,80000,160000], 计算得到的覆图 4.1 词频分布
代表这个词表能够覆盖语料中词的完整度越高。图4.2 展示了本文所使用的预料的词覆盖率和词表大小的关系。图 4.2 包含的词表规格为:[5000,10000,20000,40000,80000,160000], 计算得到的覆盖率分别为:[0.85,0.90,0.94,0.97,0.98,0.99]。由此可见,选择排位靠前的前| |的词加入词表,可以取得非常高的覆盖率。虽然整个语料中包含 70 多万词,但仅前 10000 个词就可以获得高达 90%的覆盖率。但从另一个角度去观察,会发现随着词表规格的不断增加,词表覆盖率增长的收益却在下降。词表规格从 5000 翻倍提升到 10000 时,词表覆盖率增长了 5%,从 10000 翻倍到 20000,词表覆盖率增长了 4%
本文编号:3378810
本文链接:https://www.wllwen.com/kejilunwen/zidonghuakongzhilunwen/3378810.html