词向量做句子相似度已经落伍?深度解析词移距离(WMD)为何能成为语义匹配新宠!
在自然语言处理NLP领域如何度量两个句子的语义相似度是一个基础且重要的问题。无论是智能客服、搜索引擎还是文本去重、问答系统都离不开快速准确的相似度计算。尤其是在工业界实时场景中比如语音助手需要在毫秒级响应用户请求我们往往没有时间跑一个庞大的BERT模型这时基于静态词向量的方法就显示出不可替代的价值。但是简单的词向量平均真的够用吗有没有更精准的“词向量级”匹配方法今天我们就来深入聊聊这个话题并重点介绍一种被学术界和工业界广泛认可的方案——词移距离Word Movers Distance, WMD。一、基础篇从词袋到词向量平均1. 词向量平均法最直观的思路是将句子中所有词的词向量求平均得到整个句子的向量表示然后通过余弦距离或欧氏距离计算相似度。假设句子 SS 由 nn 个词组成第 ii 个词的词向量为 EMBiEMBi那么句子向量为S1n∑i1nEMBiSn1i1∑nEMBi这种方法的优点显而易见词向量如 Word2Vec、FastText、GloVe在大规模语料上预训练后已经蕴含了丰富的语义信息无需任何训练计算极快适合实时场景对短文本效果尚可。但缺点也同样突出忽略词的重要性所有词一视同仁停用词也会参与平均稀释了关键词的作用。丢失语序信息词序变化会导致语义完全改变例如“我爱你” vs “你爱我”但平均后却可能相似。长文本语义漂移句子越长平均向量越趋向于“中心点”难以体现具体主题。2. 改进TF-IDF 加权平均为了给重要词更高权重我们可以引入 TF-IDF。句子 SS 的向量变为S1n∑i1n(EMBi×tfidfi)Sn1i1∑n(EMBi×tfidfi)这样关键词如“总统”、“演讲”的贡献被放大停用词被削弱。该方法在短文本上表现更好但依然没有解决语序丢失和长文本漂移的问题。既然直接构造句子向量会丢失细节那有没有办法不经过句子向量直接度量两个句子中词与词之间的匹配代价呢这就引出了我们今天的主角——词移距离。二、进阶篇词移距离WMD——像运输货物一样匹配语义1. 核心思想推土机距离EMD的语义版本词移距离的思想源于图像检索中的推土机距离Earth Movers Distance, EMD它原本是用来衡量两个概率分布之间距离的度量。形象地说我们可以把两个文档看作两堆“土”词的权重EMD 计算的就是把一堆土变成另一堆土所需的最小工作量。将这个概念迁移到 NLP 中WMD 将两个句子中的每个词视为“工厂”或“仓库”词的权重如归一化词频就是工厂的货物量或仓库的容量而两个词之间的语义距离通常用词向量的余弦距离就是运输单位货物的“成本”。WMD 的目标是找到一种最优的“运输方案”使得将所有词权重从句子 A 转移到句子 B 的总成本最小这个最小成本就是两个句子的语义距离。2. 一个生动的例子假设有两个句子A: “Obama speaks to the media in Illinois”B: “The President greets the press in Chicago”我们先用 Word2Vec 将每个词映射到向量空间。直观上“Obama”和“President”应该很接近“speaks”和“greets”相似“media”和“press”相似“Illinois”和“Chicago”都是地点也有一定相似度。WMD 会自动寻找最优的“词对”匹配方式而不是简单地把所有词混在一起平均。在计算时我们首先将句子表示成归一化词袋nBOW向量即每个词的权重为其在句子中的词频或 TF-IDF并归一化使权重之和为 1。然后对于句子 A 中的每个词 ii 和句子 B 中的每个词 jj定义运输成本 c(i,j)∥EMBi−EMBj∥2c(i,j)∥EMBi−EMBj∥2或余弦距离。WMD 就是求解以下线性规划问题minT≥0∑i,jTij⋅c(i,j)T≥0mini,j∑Tij⋅c(i,j)满足约束∑jTij权重i(A),∑iTij权重j(B)j∑Tij权重i(A),i∑Tij权重j(B)其中 TijTij 表示从词 ii 运输到词 jj 的权重。这个问题的解就是最小运输成本即 WMD。3. 为什么 WMD 如此强大无超参数即插即用只需要预训练的词向量不需要任何训练或调参。可解释性强可以直观地看到哪些词对贡献了主要距离便于错误分析。语义保真度高它直接利用词向量空间中的几何关系比平均法更精细。对短文本尤其有效在句子级别WMD 能捕捉到词语的微妙替换效果往往优于简单平均。4. 现实中的挑战当然WMD 并非万能它也有明显的短板计算复杂度高求解最优运输问题的时间复杂度为 O(p3logp)O(p3logp)pp 为词表大小对于长文档或大词表计算开销极大。不过工业界常采用一些近似算法如 Relaxed WMD来加速。OOV 问题如果词不在预训练词向量中则无法参与计算需要特殊处理如使用子词信息。忽视上下文同一个词在不同上下文中语义可能完全不同比如“苹果”指水果还是公司但 WMD 使用的是静态词向量无法区分一词多义。否定词与复杂结构句子“I like it”和“I dont like it”语义相反但 WMD 可能因为词重叠度高而误判为相似。语序完全丢失WMD 将句子视为词的多重集不考虑词序因此无法处理因语序导致的语义反转。三、展望篇预训练语言模型与上下文感知WMD 的上述局限性促使研究者转向能够建模上下文语义的模型。以 BERT 为代表的预训练语言模型通过 Transformer 结构动态生成每个词的上下文相关向量从根本上解决了一词多义和语序问题。如今用 BERT 类模型计算句子相似度已经成为主流效果远超静态词向量方法。但为什么我们还要讨论 WMD因为在很多实际场景中效率与效果需要权衡。例如实时语音客服要求 10ms 内返回结果BERT 难以满足而 WMD 加上近似算法可以做到某些离线任务如文档聚类数据量极大用 BERT 计算成本太高WMD 依然是性价比不错的选择。此外WMD 的思想也被融合进神经模型中例如通过最优运输层来对齐两个句子的词表示从而提升模型的可解释性和鲁棒性。总结从词向量平均到 TF-IDF 加权再到词移距离WMD我们见证了句子相似度计算从粗糙到精细的演进。简单平均法快但粗糙适合短文本快速筛选。TF-IDF 加权平均提升了关键词的重要性但仍丢失词序和语义细节。词移距离WMD通过最优运输思想实现了词粒度的语义匹配精度更高且可解释但计算成本较高无法处理上下文歧义。在工业界我们需要根据场景灵活选择如果追求极致速度平均法或 TF-IDF 平均仍是首选如果需要较高精度且数据量可控WMD 是优秀的中等方案而对于语义复杂、对准确率要求极高的任务则应当投入 BERT 等预训练模型。技术没有银弹理解每种方法的原理与适用边界才能在实际项目中游刃有余。希望这篇文章能帮你厘清思路在下次遇到句子相似度问题时做出更明智的选择。文章参考书籍百面大模型链接: https://pan.baidu.com/s/10mycZxNYbh1w63onscj4qA?pwdiqni 提取码: iqni
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2414207.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!