就像人类的智能一样,如果不考虑多个智能维度,单凭一个智商分数是无法轻易衡量NLP流水线的能力的。
衡量机器人系统能力的一种常见方法是:根据系统行为的复杂性和所需的人类监督成都这两个维度来衡量。但是对自然语言处理流水线而言,其目标是建立一个完全自动化的自然语言处理系统,会消除所有的人工监督(一旦模型被训练和部署)。因此,一对更好的IQ维度应该能捕捉到自然语言流水线复杂的广度和深度。
像Alexa或Allo这样的消费产品聊天机器人或者虚拟助手,通常设计为具有极其广泛的知识和功能。然而,用于响应请求的逻辑往往比较浅显,通常由一组触发短语组成的,这些短语都使用单个if-then决策分支来生成相同的回复。Alexa的行为类似于一个单层的、扁平的(if...elif...elif...)语句树。
另一方面,谷歌翻译流水线依赖于一个由特征提取器、决策树和知识图谱组成的深层树结构,其中知识图谱连接着世界知识。有时,这些特征提取器、决策树和知识图谱被显式地编程到系统中。另一种快速超越这种手工编码流水线的方法是基于深度学习的数据驱动方法。深度神经网络的特征提取器是自动学习而不是硬编码的,但它们通常需要更多的训练数据才能达到与精心设计的算法相同的性能。
聊天机器人需要所有的NLP工具才能很好的工作:
1、特征提取(通常产生一个向量空间模型);
2、通过信息提取回答事实型问题;
3、通过语义搜索从自然语言文本或对话的历史记录中学习;
4、通过自然语言生成来构成有意义的新语句。
机器学习给我们一种方式,让机器表现得就像我们花了一辈子时间用数以百计的复杂正则表达式或算法在它身上一样。只需要提供用户语句以及期望聊天机器人模拟的回复的示例,我们就可以教会机器对正则表达式中定义的模式进行回复。而由机器学习产生的语言"模型",而有限状态机好得多,它们对拼写和录入错误不那么敏感。
此外,基于机器学习的NLP流水线更容易用编程实现,我们不需要预测语言符号的每一种可能用法,而只需要给训练流水线提供匹配和不匹配的短语样本。只需要在训练过程中给它们贴上标签,聊天机器人就知道哪些是正样本,哪些是负样本,它就会学会对正负样本进行区分,甚至还有一些机器学习方法,几乎不需要"标记"数据。