向量之间相似度计算的若干方式
假定存在向量与向量
,计算两者之间的相似度。
一. 传统基于距离度量的相似度计算
①欧氏距离
import numpy
dist = numpy.sqrt(numpy.sum(numpy.square(Q - K)))
# or
dist = numpy.linalg.norm(Q- K)
②余弦距离
import numpy
from scipy.spatial.distance import pdist
dist = 1 - numpy.dot(Q,K)/(numpy.linalg.norm(Q)*numpy.linalg.norm(K))
# or
dist = pdist(numpy.vstack([Q,K]),'cosine')
二. 深度学习中的相似度计算
①点乘
②加权点乘
③拼接
表示拼接操作
④感知器
上述四种方式均可通过sigmoid或者softmax函数来实现相似度的归一化