[DL]关于NLG的一个调研
整体框架
刘知远认为的中文NLP发展技术趋势:
对话管理体系:
从整体上看,NLP可以分为两大块,分别是NLU和NLG。目前主要的研究和落地集中在NLU这块,而我司除了NLU,NLG也占了相当一部分业务。NLU是从NL中进行信息压缩,目标是得到关键信息;NLG是进行信息扩张,目标是扩张到NL的水平,实际上目前还差很远。这种关系在上图对话管理系统中体现的比较明显。从另外一个角度来看,目前相对成功的应用是从复杂输入到简单输出的任务,这里的输入和输出仅仅是从表层来讲的,比如一些NLU任务,一些CV任务,例如分类,回归等;有一些复杂输入到复杂输出的任务,不严格的说,例如图片风格转换等;难度最大的是简单输入到复杂输出的任务,例如各种生成任务;
NLP的知识体系
语言学单词解释: Phonology【音系学,声音】,Morphology【词态学,构词法】,Syntax【句法学,语句结构】,Semantics【语义句法学,理解】,Pragmatics【语用学】
围绕这幅图,左侧分支比较具体,一般文献中讨论更多的是从lexical(词法),syntactic(句法)到semantic(语义)。另外一种角度是认为NLP主要分为五类技术,具体包括分类(如,情感分类等),匹配(如搜索,问答,基于检索的单轮对话等),翻译(基于生成的单轮对话等),结构预测(NER, POS tagging)和序列决策过程(多轮对话等)。
NLG的体系
一个具体的例子如下,不完全契合,但是基本一致。
阿里的“莎士比亚”系统(搜索事业部-北京)和上述流程契合。
方法
基于模板,基于NN,基于强化学习
评价指标
一个具体的评估场景如下,
Intrinsic Methods主要包括以下两类:
最重要的评测方法(人工):流畅度,可读性,信息量,正确性,冗余度
次要的评测方法(非人工,基于语料):基于n-gram的BLUE和ROUGE(文本长度敏感,该类指标用于更短的文本可能导致更低的分数),基于字符距离的Edit Distance等,基于内容Coverage比率的Jarcard距离等
一个更具体的列表如下,同时给出了指标来源:
Extrinsic Methods用于评估NLG的生成内容对于目标实现的有效性,NLG的标准体系中含有目标输入。这种评估虽然满足科学性,不过站在一个工程师角度,不具备可行性(个人观点)。
其他生成相关的评价要点,Yoav Goldberg对GAN for NLG的评价
总结:NLG的评估之所以比较难,还是要回到算法的定义本身来看。从算法的输入角度来看,输入是可变的;从输出角度来看,存在多个可能的输出。难但是不一定不能做,只不过在现行的评估体系下,似乎找不到可以借鉴的地方。现有的各种机器评估指标之间存在不一致;同时机器评估指标和人类评估结果存在不一致。所以,目前对NLG的建议是:能用多少指标就用多少指标吧。
参考实现
《Natural Language Processing with TensorFlow》这本书是2018年5月份正式发布,目前没有中文版。这本书中的Demo Code是围绕NLG展开的。
应用案例
3.用于面试的对话机器人
5.相声生成器:捧哏和逗哏
7.古诗,古词,对联,文章,笑话等生成,为啥没有歇后语呢?
8.解说系统。例如足球解说,天气预报解说,游戏解说,车辆解说(我司合作项目懂车帝)等
9.新闻自动生成系统
参考资料
这是一个NLP领域的各种资料的大杂烩。
2.《A Bit of Progress in Language Modeling》
几乎写了关于N-gram的所有相关的内容,附加一个参考资料
5.《Survey of the State of the Art in Natural Language Generation: Core tasks, applications and evaluation》
截止2018年2月的一个survey。
这篇文章可以配合阿里的”莎士比亚”系统一块思考。