[背景音乐] 翻译: RyukaSuu |审阅: 19waa Coursera Global Translator Community 刚刚讲了用内积计算距离的一种思路 但是我们还有另一种利用内积的度量方法 我们取待查询文章 xq 和另一篇文章 xi 我们取待查询文章 xq 和另一篇文章 xi 把两个向量的对应元素相乘 把两个向量的对应元素相乘 然后相加,和即为相似度 这就是 xi和 xq的内积 即两向量对应维度上元素值的乘积之和 可以把它理解成是在测量两篇文章有多少重叠的词汇 以及重叠词汇的权重有多大 嗯,这个例子中,两篇关于足球的文章相似度是13 嗯,这个例子中,两篇关于足球的文章相似度是13 但是如果我们比较这篇讲足球的文章和另一篇世界新闻的话 重叠可能就很小了 在这个例子里,两篇文章没有词汇重叠 即相似度是0 在上一张幻灯片里我们提到的相似度算法 即把对应特征值的乘积相加 它非常接近另一种常用的相似度度量,余弦相似度 它非常接近另一种常用的相似度度量,余弦相似度 但算余弦相似度时,需要再除以下面这两项 为清楚起见我把它写下来 如式子所示 这两项分别把原向量归一化 我们把 xi 和 xq 的各个元素平方再求和 我们把 xi 和 xq 的各个元素平方再求和 这等价于求模运算 所以这个和这个等价 这些竖线代表向量求模 这些竖线代表向量求模 接下来我们把它改写成向量xi 除以它的模 接下来我们把它改写成向量xi 除以它的模 以及 xq的转置除以 xq的模 前两张幻灯片里我们直接把向量点积作为相似度 前两张幻灯片里我们直接把向量点积作为相似度 现在我们把原向量归一化 这是一个非常非常关键的点 我们会据此展开讨论 恩,你可以证明这几步等价于计算两向量的夹角 而夹角不受原向量长度的影响 向量归一化后的内积等于其夹角的余弦 向量归一化后的内积等于其夹角的余弦 这源于内积的定义 我们根据 a的转置乘以 b 等于 a的模乘以 b的模乘以 a, b夹角的余弦 a的模乘以 b的模乘以 a, b夹角的余弦 如果我们用两个点表示两篇文章 假设词汇表里只有两个词,单词 1 和单词 2 假设这个向量统计了文章一里的词汇数 这个向量统计了文章二里的词汇数 余弦相似度求的是,两向量夹角的余弦值,与原向量长度无关 余弦相似度求的是,两向量夹角的余弦值,与原向量长度无关 关于余弦相似度,我想强调几点 一是,它并不像欧氏距离那样是某种距离的度量 因为三角不等式对它不成立 但是用于计算稀疏向量,它依然十分有效 因为你只需要考虑非零元素 因为你只需要考虑非零元素 为了确保大家都能理解归一化 现在我通过这个例子详细说明 这个向量可以是标准的词数统计向量,也可能是TF-IDF向量 对它做归一化时 我们用它除以它的平方和的平方根 算完这一步后 文档的归一化表示就像下面这样 接下来我们就余弦相似度多谈几点 首先是它的值域 我们假设有两篇非常非常相近的文章 它们之间的夹角 theta 很小 那么 theta的余弦约等于,多少,1 那么 theta的余弦约等于,多少,1 离得越近相似度越高 现在我们回想一下余弦的意义 我们先画一个单位圆 这个看着太不像圆了 重画一遍 嗯,这个可能也不圆,但是暂且想象它是半径为1的圆 任取一个角theta 这条线段长度是 theta的正弦 这条线段长度是 theta的余弦 随着我们沿圆周移动 当夹角为 0 时,我们知道 theta的余弦是1 当夹角达到90度,即线段竖直时,我们看到余弦值开始下降 也许我应该换种颜色,比用手比划看得更清楚 让我们来看一看 当我们取夹角为 0 时,余弦值为1 当我们取夹角为 pi/2 也就是 90度时 我们可以看到沿x轴的距离减少到了0 当我们移动到 pi, 也就是 180度时 可以看到 theta 的余弦是 -1 好的,我们刚刚温习了一下余弦 我们回到这张图,这个角应该约为90度 它超出了一点, 但我们知道它的余弦值大约是0 而对这个角 它的余弦约为 -1 好了,总结一下,余弦相似度取值范围在 -1 和 1 之间 但是如果只考虑特征值全为非负的情况 比如用TF-IDF向量表示一个文档 向量不可能出现在这个位置 我们只会在第一象限 所以夹角范围是0到90度 余弦相似度范围是0到1 这是我们关注的重点 在这个范围内 我们把距离定义为 1 减去相似度 请记住,根据距离度量的严格定义,这不是真正的距离 但是我们可以用它来衡量两篇文章间的差异 [背景音乐] 翻译: RyukaSuu |审阅: 19waa Coursera Global Translator Community