通用句子编码嵌入数字非常相似

Universal sentence encoding embedding digits very similar

我有句子相似度的任务,我计算两个句子的余弦以确定它们的相似程度。似乎对于带有数字的句子,无论数字如何 "far" ,相似度都不会受到影响。例如:

a = generate_embedding('issue 845')

b = generate_embedding('issue 11')

cosine_sim(a,b) = 0.9307

有没有办法通过散列数字或任何其他 hack 来处理该问题?

如果您的句子嵌入是使用单个单词(或标记)的嵌入生成的,那么黑客可能如下所示:

为词嵌入添加维度。对于所有非数字标记,这些维度将设置为零,对于数字标记,这些维度将包含反映数值大小的值。因为余弦相似性使用角度,所以它会有点数学化,所以添加到嵌入的额外维度必须通过更大或更小的角度反映数值的大小

更简单(解决方法)的破解方法是使用正则表达式从句子中提取数值并计算它们的距离,然后将该信息与相似度得分相结合以获得新的相似度得分。