在自然语言处理中将会有多处用到点积,点积也被称为内积,这是因为两个向量(每个向量中的元素个数)或矩阵(第一个矩阵的行数和第二个矩阵的列数)的“内部”维度必须一样,这种情况下才能相乘。这个关系数据库表的内连接操作很相似。
点击也被称为标积,因为其输出结果是个单独的标量值。这使其有别于叉积这个概念,后者的输出结果是一个向量。显然,这些名称体现了标识符的形状,在正式数学符号当中,标积用“”表示,叉积用“x”表示。将参与标积计算的两个向量的所有对应元素相乘然后将这些乘积相加就可以得到最后的标量结果。
下面的代码给出了一段Python代码,我们可以按照Python的一贯用法运行这段代码,帮助掌握点积的概念:
import numpy as np
v1=np.array([1,2,3])
v2=np.array([2,3,4])
print(v1.dot(v2))
#numpy数组的乘积是一种十分高效的“向量式”运算
print((v1*v2).sum())
print(sum([x1*x2 for x1,x2 in zip(v1,v2)]))