Talla:利用会话语境改进NLP模型
2017年12月20日 由 荟荟 发表
615632
0
在Talla,我们构建的产品可以帮助人们发现和利用组织的内部知识。虽然我们已经为具有成功生产模型的企业实施了技术,但我们不断尝试不同数据和方法,这些数据和方法的结果较少。在我可以在下面看到的机器学习会议上的演讲中,我分享了当我们尝试使用聊天数据进行问题检测和匹配时发生的事情。
从理论上讲,学习如何解决人们问题的良好信息来源是他们内部聊天平台所产生的问题。在实践中,人们提出的问题高度依赖于环境,依赖于人们在更大的对话中所说的话。这使得难以将聊天数据中的问题用于机器学习目的。我们还有几种方法可以利用聊天数据和相关问题,特别是通过利用人们提出的问题附近的文本。
内部业务NLP的一个简单用例是进行搜索,或匹配问题和搜索查询,人们对先前询问的问题进行查询。这旨在消除人力资源和其他内部部门所服务的支持功能的冗余。
有许多方法可以获取文本并利用它来生成文本相似性的良好模型。我们希望能够确定任何两个陈述,单词或问题是否在更深层次上相关,而不是简单地确定这些术语是否匹配。例如,“打印机”这个词应该与“计算机”这个词更加相似,而不是“狗”这个词。有几种方法可以实现这一点,基于深度学习的方法Word2Vec和GloVe已经流行了在这一点上,虽然它们在许多方面与计算语言学家多年来一直使用的技术相当,但它们侧重于以不同方式表示“术语 - 上下文”矩阵。所有这些相似性度量的关键是找出哪些单词和短语一起出现,然后通过压缩它们找到一种在较小空间中表示这些相似性的方法。这样做的原因很简单,将一个单词表示为源文档中曾经出现的所有位置的列表是非常低效的。此外,事实证明,压缩表示单词共现的矩阵的过程可以通过减少虚假相关性来帮助改进您的相似性度量。
机器学习会议,2017年11月
虽然这些技术很常见并且免费提供,但是根据您的特定用例定制它们的使用仍然是有价值的。例如,您需要决定两个词“共同发生”的含义。在某个级别,您可能想要查看同一句子中出现的单词。另一方面,只有通过检查段落级别才能发现重要的关系。以人们在聊天中提出的问题作为我们感兴趣的文本,我们希望能够匹配具有相似背景的单词。这样,当有人询问有关打印机的问题时,我们会发现在打印机出现的类似问题中出现的单词,并希望找到更好的解决方案。
这很重要,因为在大多数大型文本集中,“打印机”一词将更加类似于各种其他类型的计算硬件(平均而言)。理想情况下,像“打印机”这样的词语类似于“司机”甚至“果酱”这样的词,因为我们的目标是帮助人们找到其他人过去经历过的相关问题。
我们通过扩展我们的上下文窗口来处理这种情况,因此它不仅仅局限于每个单独问题中的单词,而是分析由对话定义的组内的单词,直接导致每个问题。在实际提出问题之前,人们经常更新其他人关于他们的情况发生了什么:“这就是发生的事情。我试过这个。现在该怎么办?“我们捕获了前面所有的文本并使用它来制作我们的单词相似度模型。
这实际上只是冰山一角,这是一个简单的例子,说明如何利用会话上下文来改进NLP模型。在世界各地的硬盘上收集的所有聊天数据都有很大的潜力。随着人们在理解人们如何互动方面取得更多进展(至少足以应用现代ML技术),我们可以从我们一直在收集的会话数据中获得更多价值,并且更接近您永远不需要的世界两次回答同样的问题。
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com