在生成预测时我们遇到的另一个挑战比较有趣,那就是控制信息的长度。有时候,所有可能的回复长度都不合适——如果模型预测的信息太短,可能对于读者来说就没有用;而如果我们预测的信息太长,可能就不适合手机屏幕的显示大小。我们的办法是,让beam搜索更偏向于跟进能够通向更高反应用途的路径,而不是倾向于选择最有可能的回复。这样,我们可以高效生成长度适合的回复预测,对用户来说会非常有用。
个人定制
这项智能聊天建议最棒的地方在于,随着时间,软件会为用户进行个人定制,这样你的个人风格会在聊天对话中体现出来。例如,假设当别人和你说“你好吗?”(“How are you?”)的时候,你通常的回复方式是“蛮好。”而不是“不错。”(英文中某个用户可能更习惯回复“Fine.”而不是“I am good.”),软件就会了解到你的偏好,在未来的回复建议中就会考虑到这一点。要实现这一点,就要在神经网络中加入用户的个人”风格“,将这个神经网络用于预测回复中下一个词语是什么,这样回复建议就会根据你的个性和偏好进行定制化。用户的风格是在一系列数字中获取的,我们称之为用户嵌入。这些嵌入可以作为常规模型训练的一部分,但是这种方法需要等上很多天训练才能结束,而且如果用户超过了几百万人,这种方法就有可能搞不定。为了解决这个问题,Alon Shafrir打造了一项基于L-BFGS的技术,让Allo能够快速、大量地生成用户嵌入。现在,Allo的用户只需要很短的一段时间,就能获得个人定制化的回复建议。
不只会说英语
我们之前说到的这个神经网络模型是不针对某种语言的,因此我们可以对每一种语言分别建立预测模型。Sujith Ravi为了确保每一种语言的回复可以从我们对其他语言的语音理解中获益,他提出了一种基于图表的机器学习技术,可以将不同语言的可能回复联系起来。Dana Movshovits-Attias和Peter Young将这项技术应用在一个图表中,对收到信息的回复,可以与其他有相似词汇嵌入和语法关系的回复联系起来。基于谷歌翻译团队开发的机器翻译模型,这个图表还能将不同语言中具有相似语义的回复联系起来。
利用这个图表,我们使用了半监督学习(点击链接,可以通过这篇Sujith Ravi发表在第19届人工智能与数据国际大会(AISTATS)的论文中了解更多关于半监督学习的信息)来了解回复的语义含义,判断哪一个可能的回复组群是最有用的。每一个可能的回复语义中都有多个可能的变种,现在我们可以让LSTM对每个变种进行打分,让个人化常规来为用户在聊天情景中选择最好的回复。这还能帮助实现多元化,因为我们现在可以从不同的语义组群中选择最终的回复库。
一个打招呼的信息图表可能会是这个样子的。左:法语,中:英语,右:中文。图片来源:Google Research Blog。
不止于智能回复
我非常期待Allo中的谷歌个人助理,你可以与它聊天,获得谷歌搜索上可以了解到的任何信息。它可以直接通过对话理解你的句子,帮助你完成日常任务。举个例子,你和朋友聊天的时候,谷歌助理可以在Allow应用内帮你发现有什么好吃的餐厅并预定座位。正是因为我们在谷歌进行了最尖端的自然语言理解研究,我们才能实现这项功能。更多细节信息将在未来发布。这些智能功能将于今年夏天晚些时候出现在Allo的安卓和IOS应用中。