智能重播贴纸



哈Ha!今天,我们重新启动了ICQ新信使的关键功能基于人工智能技术:智能回复快速标签和文本提示系统,用于应答传入消息,为输入的短语提供标签建议,语音消息识别等。

在本文中,我将讨论其中之一-智能回复。此功能将节省用户时间,因为他们只需要从提供的标签上单击所需的标签即可。同时,该功能将普及使用各种贴纸并增加交流的情感性。

资料准备


借助机器学习和神经网络解决了NLP领域的任务。培训是根据公开聊天中特别准备的数据进行的。使用了两对:对话的片段和一个用户响应对话者的最后消息发送的标签。为了更好地考虑上下文,对话的一部分由粘在一起的最后一个对话者的消息以及来自他们之前的用户消息组成。您可以试验消息的数量,例如Google ML Kit使用10条消息的上下文[1]

我要处理的问题之一是,从最受欢迎的贴纸开始,贴纸的使用频率急剧下降。此外,贴纸总数超过一百万。下图显示了4000种最受欢迎​​的贴纸的使用频率递减。因此,为了减少训练集的不均匀分布,选择了4000个流行的贴纸并去除了一些最常用的贴纸。


使用频率降序排列的4000个最受欢迎的贴纸。

对于文本,规范化是通过删除数字,重复字母,单个字符,标点符号(问号和感叹号除外,这对含义很重要),将字母减小为小写。通常,具体细节使得在聊天室中,用户对语法的理解不佳。

选型


为了进行预测,使用Siamese DSSM模型,类似于Mail.ru中的智能回复模型([2]中描述了类似的体系结构),但有一定差异。暹罗模型在推理效率方面的优势,因为对应于贴纸的部分是预先计算的。为了回答字母,原始模型使用一袋n克单词表示文本,这对于书写是有道理的:文本可能很大,我们需要掌握一般细节并给出一些标准的简短答案。就聊天和贴图而言,文字简短,此处的单个单词更为重要。因此,决定使用单个单词嵌入作为功能,并为其添加一个LSTM层。在短文本情况下使用LSTM层的类似想法被使用,例如,用于Google Allo Messenger (3)和对应于DeepMoji短消息[4]的笑脸预测模型中的文本响应。下图示意性地显示了该模型。


体系结构模型。

在图中,初始层是传入的标记化单词(左)和贴纸(右)的嵌入。对于单词的标记化,使用了一个词典,其中包含10万个最受欢迎的单词。为了区分来自不同用户的消息,使用了特殊的专用令牌。培训是端到端的。计算完单词序列的嵌入后,我们进入LSTM层,然后通过切线激活将其状态转移到完全连接的层。结果,在输出的左侧编码器中,我们获得了代表文本的矢量,而在右侧,则获得了与贴纸相对应的矢量。向量的标量积决定了文本和标签如何组合在一起。嵌入的尺寸,LSTM内部状态的向量和输出向量均等于300。

训练的目标函数如下所示:



其中K是批处理的大小,

S(x i,y i是文本-标签对

S(x i,y j)的正例的结果矢量的标量积。-向量的标量积,用于文本贴纸对的否定示例。由于原始正确对的随机混合,产生了文本-标记对的负示例。因为对于流行的通用标签来说,很可能在再次混合时被证明是正确的一对,因此在再培训阶段,批次中使用了额外的控制,因此对于带有一个标签的正负对没有相似的文字。在实验过程中,如果使用负数示例小于K,则效果更好。考虑到数据的噪音,大批量培训效果更好。模型的复杂性和注意层的添加并未显着提高准确性,而是说与数据及其质量相关的局限性。

由于选择了使用单个单词的词典而不是字符n-gram的方法,因此该模型在错别字方面的灵活性丧失了。通过对fastText嵌入的训练进行了实验,该训练直接在网络中进行训练,从而减少了错误的影响。在这种情况下,培训会变得更糟,并且添加关注层显然有所帮助。在权衡质量指标和其他因素之后,决定停留在一个更简单的模型上。在这种情况下,如果单词不在词典中,可以通过使用拼写检查器解决拼写错误的问题。在正常模式下,不使用拼写检查器,因为某些带有错误的单词是非正式聊天的功能。

得到答案


模型在推理阶段如何工作?

我们预先计算由正确的编码器计算出的标签向量。在请求处理阶段,仅左编码器用于获取传入文本的矢量。接下来,您需要按文本和标签向量的标量积的降序获得标签列表。可以直接将所有标签向量相乘来完成此操作,也可以将最近的邻居搜索算法用于该指标。例如,在[2]中,建议对最大内部产品搜索(MIPS)使用分层量化。我们应用了HNSW搜索算法,与穷举搜索相比,它提供了显着的加速。

使答案多样化


下一阶段是提议的贴纸的多样化,因为高端贴纸通常都可以相同。

短语“ Hello”的三个建议标签:没有多元化,有多元化。

已经测试了多种多样化的选择。最简单的方法是考虑分数限制,选择最上面的N个贴纸,然后选择最上面的贴纸,并选择彼此之间具有最大距离的其他两个贴纸,同时限制到最上面的贴纸的距离允许的差异。这种方法可以结合使用通过情感着色(正,负,中性)对贴纸进行手动标记的结果,并从前N个具有不同颜色(如果有)的贴纸中进行选择。

另一种选择是通过标签的嵌入对标签进行聚类,然后在输出结果时,从群集中选择不超过一个标签。对于群集,使用了UMAP + HDBSCAN捆绑软件。UMAP是一种新的有效降维算法,它已经超过了已经证明的t-SNE。将降维应用于两个,然后使用HDBSCAN聚类算法。确定了约100个集群。这项任务并未完全自动解决,使用各种设置可以实现最多70%的标签聚类,但是随后需要人工修订和验证。因此,我们选择了上述较简单的选项,因为它们的效果很好。


嵌入上的聚类贴纸。

结果


结果,我们得到了一个简单有效的智能重播标签,该标签显示出非常好的回答质量。根据对1000个不同短语(从简单到相对复杂)的测试,受访者称,最上面的标签完全适合超过75%的情况。在对100个更简单和更流行的短语进行的测试中,结果更加令人印象深刻:最上面的标签被称为完全适合93%的情况。

答案模型提供的贴纸示例。

缺点是什么?

由于训练数据集中的不平衡,某些单词会产生不必要的巨大影响。例如,在某些情况下,“爱”一词通常会导致提出各种“浪漫”的标签,因为训练数据在此方向上存在偏差。引入频率词和贴纸的附加权重以及短语的增加并不能完全解决问题,但可以部分改善这种情况。

我们并不固步自封,提高模型质量的过程仍在继续,我们进行了一些实验来修改用于准备和使用数据的体系结构和机制。

文献


  1. Google updates ML Kit with Smart Reply API for third-party Android and iOS apps. 9to5google.com/2019/04/05/ml-kit-smart-reply
  2. Matthew Henderson, Rami Al-Rfou, Brian Strope, Yun-Hsuan Sung, Laszlo Lukacs, Ruiqi Guo, Sanjiv Kumar, Balint Miklos, and Ray Kurzweil. Efficient Natural Language Response Suggestion for Smart Reply. arXiv:1705.00652v1, 2017.
  3. Pranav Khaitan. Chat Smarter with Allo. ai.googleblog.com/2016/05/chat-smarter-with-allo.html
  4. Bjarke Felbo, Alan Mislove, Anders Søgaard, Iyad Rahwan, Sune Lehmann. Using millions of emoji occurrences to learn any-domain representations for detecting sentiment, emotion and sarcasm. arXiv:1708.00524v2, 2017.

All Articles