【数学之美系列十八 】矩阵运算和文本处理中的分类问题

转载 2007年10月05日 04:20:00
2007年1月1日 下午 03:10:00
发表者:Google 研究员,吴军

我在大学学习线性代数时,实在想不出它除了告诉我们如何解线性方程外,还能有什么别的用途。关于矩阵的许多概念,比如特征值等等,更是脱离日常生活。后来 在数值分析中又学了很多矩阵的近似算法,还是看不到可以应用的地方。当时选这些课,完全是为了混学分的学位。我想,很多同学都多多少少有过类似的经历。直 到后来长期做自然语言处理的研究,我才发现数学家们提出那些矩阵的概念和算法,是有实际应用的意义的。

在自然语言处理中,最常见的两类的分类问题分别是,将文本按主题归类(比如将所有介绍亚运会的新闻归到体育类)和将词汇表中的字词按意思归类(比如将各种 体育运动的名称个归成一类)。这两种分类问题都可用通过矩阵运算来圆满地、同时解决。为了说明如何用矩阵这个工具类解决这两个问题的,让我们先来来回顾一 下我们在余弦定理和新闻分类中介绍的方法。

分类的关键是计算相关性。我们首先对两个文本计算出它们的内容词,或者说实词的向量,然后求这两个向量的夹角。当这两个向量夹角为零时,新闻就相关;当它 们垂直或者说正交时,新闻则无关。当然,夹角的余弦等同于向量的内积。从理论上讲,这种算法非常好。但是计算时间特别长。通常,我们要处理的文章的数量都 很大,至少在百万篇以上,二次回标有非常长,比如说有五十万个词(包括人名地名产品名称等等)。如果想通过对一百万篇文章两篇两篇地成对比较,来找出所有 共同主题的文章,就要比较五千亿对文章。现在的计算机一秒钟最多可以比较一千对文章,完成这一百万篇文章相关性比较就需要十五年时间。注意,要真正完成文 章的分类还要反复重复上述计算。

在文本分类中,另一种办法是利用矩阵运算中的奇异值分解(Singular Value Decomposition,简称 SVD)。现在让我们来看看 奇异值分解是怎么回事。首先,我们可以用一个大矩阵A来描述这一百万篇文章和五十万词的关联性。这个矩阵中,每一行对应一篇文章,每一列对应一个词。

在上面的图中,M=1,000,000,N=500,000。第 i 行,第 j 列的元素,是字典中第 j 个词在第 i 篇文章中出现的加权词频(比如,TF/IDF)。读者可能已经注意到了,这个矩阵非常大,有一百万乘以五十万,即五千亿个元素。

奇异值分解就是把上面这样一个大矩阵,分解成三个小矩阵相乘,如下图所示。比如把上面的例子中的矩阵分解成一个一百万乘以一百的矩阵X,一个一百乘以一百 的矩阵B,和一个一百乘以五十万的矩阵Y。这三个矩阵的元素总数加起来也不过1.5亿,仅仅是原来的三千分之一。相应的存储量和计算量都会小三个数量级以 上。

三个矩阵有非常清楚的物理含义。第一个矩阵X中的每一行表示意思相关的一类词,其中的每个非零元素表示这类词中每个词的重要性(或者说相关性),数值越大 越相关。最后一个矩阵Y中的每一列表示同一主题一类文章,其中每个元素表示这类文章中每篇文章的相关性。中间的矩阵则表示类词和文章雷之间的相关性。因 此,我们只要对关联矩阵A进行一次奇异值分解,w 我们就可以同时完成了近义词分类和文章的分类。(同时得到每类文章和每类词的相关性)。

现在剩下的唯一问题,就是如何用计算机进行奇异值分解。这时,线性代数中的许多概念,比如矩阵的特征值等等,以及数值分析的各种算法就统统用上了。在很长 时间内,奇异值分解都无法并行处理。(虽然 Google 早就有了MapReduce 等并行计算的工具,但是由于奇异值分解很难拆成不相关子运算,即 使在 Google 内部以前也无法利用并行计算的优势来分解矩阵。)最近,Google 中国的张智威博士和几个中国的工程师及实习生已经实现了奇异值 分解的并行算法,我认为这是 Google 中国对世界的一个贡献。

来源:http://googlechinablog.com/2007/01/blog-post.html
--  

SVD分解的应用——矩阵运算和文本处理中的分类问题

在自然语言处理中,最常见的两类的分 类问题分别是,将文本按主题归类(比如将所有介绍亚运会的新闻归到体育类)和将词汇表中的字词按意思归类(比如将各种体育运动的名称个归成一类)。这两种 分类问题都可用通过...
  • xiaoyu714543065
  • xiaoyu714543065
  • 2012年08月01日 10:05
  • 891

文本处理中的两个分类问题和矩阵运算SVD

部分内容摘自吴军老师著《数学之美》,本文章主要详细说明一下其中的矩阵运算奇异值分解SVD的意义。刚刚学完矩阵分析,里面有讲到奇异值分解,我觉得讲得还不错,理解起来很简单。矩阵书籍参考Carl D. M...
  • yc461515457
  • yc461515457
  • 2015年01月12日 21:22
  • 1023

数学之美系列完整版(最新全集列表)

数学之美系列完整版(最新全集列表)作者:吴军, Google 研究员 来源:Google黑板报 数学之美 一 统计语言模型 数学之美 二 谈谈中文分词 数学之美 三 隐含马尔可夫模型...
  • happylife1527
  • happylife1527
  • 2012年10月23日 09:15
  • 911

数学之美--深入理解矩阵

理解矩阵一: 转载自:http://blog.csdn.net/myan/article/details/647511 前不久chensh出于不可告人的目的,要充当老师,教别人线性代数。于是我被揪...
  • LCMliao
  • LCMliao
  • 2013年12月30日 10:50
  • 1540

数学之美 第3章 统计语言模型

数学之美 第3章 统计语言模型 回顾一下: 前面两章都是基础知识,告诉我们自然语言的起源基础,和一些发展过程遇到的问题,第二章告诉我们规则:理解自然语言(即分析语句和获取语义)这种处理方法不可能实...
  • lch614730
  • lch614730
  • 2014年03月18日 21:41
  • 1242

数学之美(系列十八) 之 矩阵运算和文本处理中的分类问题

数学之美 系列十八 - 矩阵运算和文本处理中的分类问题2007年1月1日 下午 03:10:00uT("time116763611149553424");发表者:Google 研究员,吴军 我在大学学...
  • pengpengfly
  • pengpengfly
  • 2008年09月27日 09:47
  • 472

[转载]数学之美 系列十八 - 矩阵运算和文本处理中的分类问题

2007年1月1日 下午 03:10:00  发表者:Google 研究员,吴军 我在大学学习线性代数时,实在想不出它除了告诉我们如何解线性方程外,还能有什么别的用途。关于矩阵的许多概念,比 如特征值...
  • thebesghost
  • thebesghost
  • 2007年01月06日 12:42
  • 960

数学之美系列十八:矩阵运算和文本处理中的分类问题

在文本分类中,另一种办法是利用矩阵运算中的奇异值分解(Singular Value Decomposition,简称 SVD) 。现在让我们来看看奇异值分解是怎么回事。首先,我们可以用一个大矩阵A来描...
  • u010555682
  • u010555682
  • 2014年07月07日 10:26
  • 362

数学之美系列9(转帖)

数学之美 系列九 -- 如何确定网页和查询的相关性2006年6月27日 上午 09:53:00发表者:吴军,Google 研究员 [我们已经谈过了如何自动下载网页、如何建立索引、如何衡量网页的质量(P...
  • luozhuang
  • luozhuang
  • 2007年06月11日 19:38
  • 858

数学之美 系列十八 矩阵运算和文本处理中的分类问题

我在大学学习线性代数时,实在想不出它除了告诉我们如何解线性方程外,还能有什么别的用途。关于矩阵的许多概念,比如特征值等等,更是脱离日常生活。后来在数值分析中又学了很多矩阵的近似算法,还是看不到可以应用...
  • xiaoliangbuaa
  • xiaoliangbuaa
  • 2007年01月05日 21:26
  • 682
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【数学之美系列十八 】矩阵运算和文本处理中的分类问题
举报原因:
原因补充:

(最多只允许输入30个字)