我正在尝试使用神经网络对两个短文本对进行排序(例如,stackexchange标题和正文)。按照深度学习食谱的例子,网络基本上看起来像这样:
因此,我们有两个输入(title和body),嵌入它们,然后计算嵌入之间的余弦相似度。模型的输入是title,body,输出是sim。
现在,我想要与给定标题最接近的匹配正文。我想知道是否有一种更有效的方法来做到这一点,而不涉及迭代每一个可能的对(标题,正文)并计算相应的相似度?因为对于非常大的数据集,这是不可行的。
任何帮助都是非常感谢的!
发布于 2019-02-21 00:07:49
迭代每个可能的数据对确实效率不是很高。相反,您可以使用模型来提取标题和文本正文的所有嵌入内容,并将它们保存在数据库中(或简单地保存为.npy文件)。因此,您不使用模型来输出相似度得分,而是使用模型来输出嵌入(来自嵌入层)。
在推理时,您可以使用库进行高效的相似性搜索,比如faiss。给定一个标题,您只需查找其嵌入,并在所有正文嵌入的整个嵌入空间中进行搜索,以查看哪些正文嵌入得分最高。我自己也使用过这种方法,能够在短短100毫秒内搜索到1M个向量。
https://stackoverflow.com/questions/54790504
复制相似问题