加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

向量空间模型(VSM)的余弦定理公式(用余弦定理来表示向量之间的相似度)

(2012-02-16 21:45:28)
标签:

杂谈

分类: 研究生学习

相信很多学习向量空间模型(Vector Space Model)的人都会被其中的余弦定理公式所迷惑..

http://images.cnblogs.com/cnblogs_com/live41/cosTheta.png

 

因为一看到余弦定理,肯定会先想起初中时的那条最简单的公式cosA=a/c(邻边比斜边),见下图:

http://images.cnblogs.com/cnblogs_com/live41/triangle.jpg

但是,初中那条公式是只适用于直角三角形的,而在非直角三角形中,余弦定理的公式是:

cosA=(c2 + b2 - a2)/2bc

不过这条公式也和向量空间模型中的余弦定理公式不沾边,迷惑..

 

引用吴军老师的数学之美系列的余弦定理和新闻的分类里面的一段:

-------------------引用开始分界线------------------------

假定三角形的三条边为 a, b 和 c,对应的三个角为 A, B 和 C,那么角 A 的余弦

http://images.cnblogs.com/cnblogs_com/live41/cosA_1.png

如果我们将三角形的两边 b 和 c 看成是两个向量,那么上述公式等价于

http://images.cnblogs.com/cnblogs_com/live41/cosA_2.png

其中分母表示两个向量 b 和 c 的长度,分子表示两个向量的内积

举一个具体的例子,假如新闻 X 和新闻 Y 对应向量分别是x1,x2,...,x64000 和y1,y2,...,y64000,

那么它们夹角的余弦等于

http://images.cnblogs.com/cnblogs_com/live41/cosTheta_2.jpg 

-------------------引用完毕分界线------------------------

 

高中那条公式又怎么会等价于向量那条公式呢?

原来它从高中的平面几何跳跃到大学的线性代数的向量计算..

关于线性代数中的向量和向量空间,可以参考下面两个页面:

Egwald Mathematics: Linear Algebra

Linear Algebra: Direction Cosines

 

在线性代数的向量计算的余弦定理中,

* 分子是两个向量的点积(wiki),点积的定理和计算公式:

The dot product of two vectors a = [a1, a2, … , an] and b = [b1, b2, … , bn] is defined as:

http://images.cnblogs.com/cnblogs_com/live41/dotProduct.png

 

点积(dot product),又叫内积,数量积..(Clotho注: product常见的是产品的意思,但在数学上是乘积的意思.)

 

* 分母是两个向量的长度相乘.这里的向量长度的计算公式也比较难理解.

假设是二维向量或者三维向量,可以抽象地理解为在直角坐标轴中的有向线段,如图:

http://images.cnblogs.com/cnblogs_com/live41/vector_2d_0.png

d2 = x2 + y2   ->   d = sprt(x2 + y2)

 

http://images.cnblogs.com/cnblogs_com/live41/vector_3d_0.png

d2 = x2 + y2 + z2   ->   d = sprt(x2 + y2 + z2)

 

三维以上的维度很难用图来表示,但是再多维度的向量,也仍然可以用这条公式来计算:

dn2 = x12 + x22 + .. + xn2   ->   dn = sprt(x12 + x22 + .. + xn2)

 

在文本相似度计算中,向量中的维度x1,x2..xn其实就是词项(term)的权重,一般就是词项的tf-idf值.

而这条看上去很抽象的公式,其实就是为了计算两篇文章的相似度.

http://images.cnblogs.com/cnblogs_com/live41/cosTheta.png

 

文本相似度计算的处理流程是:

1.对所有文章进行分词

2.分词的同时计算各个词的tf值

3.所有文章分词完毕后计算idf值

4.生成每篇文章对应的n维向量(n是切分出来的词数,向量的项就是各个词的tf-idf值)

5.对文章的向量两篇两篇代入余弦定理公式计算,得出的cos值就是它们之间的相似度了

 

当两条新闻向量夹角的余弦等于一时,这两条新闻完全重复(用这个办法可以删除重复的网页);当夹角的余弦接近于一时,两条新闻相似,从而可以归成一类;夹角的余弦越小,两条新闻越不相关。

http://www.google.com.hk/ggblog/img/_ZIq6aT_S-eg/S5Y_gT4ME0I/AAAAAAAAMak/LlqvEu1wTIQ/s1600/news-798354.jpg

 

 

余弦定理是常见的相似度衡量方法之一,见博文机器学习中的相似性度量 (多种几何距离定义)

7. 夹角余弦(Cosine)

       有没有搞错,又不是学几何,怎么扯到夹角余弦了?各位看官稍安勿躁。几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。

(1)在二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式:

http://pic002.cnblogs.com/images/2011/63234/2011030823283429.png

(2) 两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夹角余弦

       类似的,对于两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n),可以使用类似于夹角余弦的概念来衡量它们间的相似程度。

http://pic002.cnblogs.com/images/2011/63234/2011030823293892.png

  即:

http://pic002.cnblogs.com/images/2011/63234/2011030823294588.png

       夹角余弦取值范围为[-1,1]。夹角余弦越大表示两个向量的夹角越小,夹角余弦越小表示两向量的夹角越大。当两个向量的方向重合时夹角余弦取最大值1,当两个向量的方向完全相反夹角余弦取最小值-1。

 

例如 在TF-IDF上的应用,见博文tf-idf

 在向量空间模型里的应用

  TF-IDF权重计算方法经常会和余弦相似度(cosine similarity)一同使用於向量空间模型中,用以判断两份文件之间的相似性。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有