腾讯专注关键词的深度语义匹配模型 | 您所在的位置:网站首页 › 浴缸的关键词是什么 › 腾讯专注关键词的深度语义匹配模型 |
点击上方DLNLP,选择星标,每天给你送干货! 来自:CS的陋室 近期在做一些有关FAQ的工作,即问答型对话,比较常见的就是客服场景,用户问一个问题,机器人能库里面找到最接近的答案并且返回给用户,即Q-A的模式,或者是找到库里面最接近的问题再把其答案返回给用户,即Q-Q-A的模式,由于直接算相似度会比较简单,因此后者经常被当做首选。 本期谈到的文章来源:keyword-attentive deep semantic matching。 背景先来聊聊我专门谈这篇文章的背景,我们来看问答类场景的case: 浴缸的尺寸是什么样的 你好,春节还送快递吗 核桃有什么口味 我新买的switch,怎么屏幕最近突然变蓝色了 可以看到其实很多问题都有一个特点,那就是关键词: 浴缸的尺寸是什么样的-浴缸、尺寸 你好,春节还送快递吗-春节、快递 你们的核桃有什么口味-核桃、口味 我新买的switch,怎么屏幕最近突然变蓝色了-switch、屏幕、蓝色 另外,还想谈的是,做语义匹配表面上是为了完成一个分类任务,实际上其实是一个表征任务,我们需要构建的语义空间不仅仅是为了用超平面去切割语义分块,还有一个深层次的任务,我这里想解释为“排除异己”,我希望把和自己通语义的全部划分到一个尽可能接近的簇,而与我不同的则是离我尽可能远,这是一个比分类还要难很多的问题,我这里用今天要讲的论文作show case: 哪些因素会影响中国的GDP。 哪些因素会影响美国的GDP。 中国房价的影响因素。 说说中国GDP的影响因素。 可以看到,我们是希望1和4离得近可能进,还有一个任务是要把2和3拉的和1和4远,这个所谓的“表征”任务,或者说度量学习其实才是语义匹配的一个更高级的任务。 而我们发现,我们找到这些关键词,其实就可以很容易找到匹配的问题,与其他的词汇关系不大,因此,一方面我们要识别好关键词,另一方面我们用好这些关键词,相信效果会有非常明显的提升。 今天想谈的文章来自于腾讯的论文:keyword-attentive deep semantic matching。该论文主要讲述的是如何识别和应用关键词,来提升匹配的效果。 思路前面提到,要用关键词来做语义匹配计算,那需要在原来的语义匹配方案基础上再多做两件事情——识别关键词和应用关键词。 识别关键词识别关键词的方法,有点奇妙,虽然问题从传统搜索时代就已经有的讨论,其实没有像其他领域蹦出什么可以被称为统治级别的方案,当然也有attention能一定程度充当这个功能的原因吧,在这篇文章中提到的,关键词抽取同样不是什么高端的玩法。 文章提出的是一种基于领域(domain)的关键词抽取方法,文章是用了超过1kw的数据,来划分领域对各个领域的词频进行统计来完成关键词抽取。整个思路是这样的: 在此之前,然后使用PMI(point wise mutual information)来进行新词发现,PMI主要用于衡量两个字/词的紧密度,当紧密度达到一定的程度,就可以认为这两个词足够接近。 然后开始做关键词抽取,这个关键词某种程度上说还是有不小的启发的,由于关键词和领域有很大关系,但是我们又不得不面对开放域的问题,因此可以通过领域维度把关键词抽取给做起来,这个指标作者成为 。 这里的 表示的是不属于这个领域的词的重要性,另外作者这里用df而非tf的原因是词汇的文档频率比词汇本身的频率要更重要,这点和我之前做的经验一致,说白了就是出现该词汇的文章越多这个词越不重要,例如中文的“的”就很高频,所以他不重要。而idf的相减实质上要体现的是这个领域内这个词的重要性,即这个词更有领域的特殊性。 应用关键词如果说识别关键词的方法不够塞牙缝,那大可作为前菜,主菜当属应用关键词这块了,作者把前面提到的关键词信息诸如到模型里面。 整体模型架构是这样的: 常见的两层transformer,然后开始分两块,左边正常走不过只去CLS的向量,右边则是走了一个完整地keyword attention layer,即这一块只关注关键词,这些关键词表示为,这些词才过transformer,然后输出的矩阵通过平均池化归结为向量 ,这个两个变量都是一定程度借两者的关系丑的关键词来做分析的结果,而为了更加深入的对比两者关系,作者又造出了新的向量: 说实话这个 的含义我不太确定,文章说的是一个连接符,直接concat吗,但是左右两个其实就是一对相反数,两个拼接个人感觉用处没想象中大额,欢迎大佬解读。 最后的匹配层吸取了直接transformer、keyword attention layer的两个输出以及 给concat起来,然后就是全连接降维预测了。 构造负样本这里小标题是负采样,但我更想叫构造负样本,文章说的方法其实我们很多时候都已经用到了,就是用搜索的方式先找一批文本层面相似的,然后用阈值卡得到一批负样本,文章别出心裁的使用关键字重叠率来作为判断的指标: 另外还有一个方法就是通过一些槽位的替换来达到特定的效果。 实验有关实验,不太想聊实验结果,而是这个数据的准备的确给了我不小的启发。 训练的正负样本的构建,负样本使用的是本文的方法,而正样本则来源于ES查询TOP5的人为复核样本。 测试集则是人工复核产生的。 小结我读的语义相似度文章不多,这篇来自一位前辈的推荐,这篇文章的确很击中我目前在思考的QA匹配的一个点——关键词问题,尤其是问答型的文本语义匹配,诚然我已经能明确认识到关键词的相似为整个句子的相似带来关键作用,一般关键词准了整个句子含义也就差不多了,这篇文章给出了一种简单的方式来实现了这个想法,思路非常值得借鉴,文章没有源码,我只能自己探索,找到最适合我面临的问题的方式。 另外,语义相似度对文本质量要求很高,hard case对一个好模型的产生起到了至关重要的作用,文章中提到的样本生成和筛选都是很有借鉴意义的,这里也可以mark一下。 说个正事哈 由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为: (1)点击页面最上方“深度学习自然语言处理”,进入公众号主页。 (2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。 感谢支持,比心。 投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。 方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。 记得备注呦 推荐两个专辑给大家: 专辑 | 李宏毅人类语言处理2020笔记 专辑 | NLP论文解读 专辑 | 情感分析 整理不易,还望给个在看! |
CopyRight 2018-2019 实验室设备网 版权所有 |