潜在语义分析(LSA)

潜在语义分析(Latent Semantic Analysis,LSA)是一种无监督学习方法,主要用于分本的话题分析,其特点是通过矩阵分解发现文本与单词之间的基于话题的语义关系。

1、单词向量空间

文本信息处理的一个核心问题是对文本的语义内容进行表示,并进行文本之间的语义相似度计算。最简单的方法是利用向量空间模型(Vector Space Model,VSM)。向量空间模型的基本想法是,给定一个文本,用一个向量表示该文本的“语义”,向量的每一维对应一个单词,其数值为该单词在该文本中出现的频数或权值。这里的基本假设是文本中所有单词的出现情况表示了文本的语义内容。向量空间的度量,如内积或标准化内积表示文本之间的“语义相似度”。

严格定义如下:给出一个含有n个文本的集合D=\{d_1,d_2,\dots,d_n\}以及在所有文本中出现的m个单词的集合W=\{w_1,w_2,\dots,w_m\}。将单词在文本中出现的数据用一个单词-文本矩阵表示,记作X

X=\begin{bmatrix} x_{11} & x_{12} & \dots & x_{1n}\\ x_{21} & x_{22} & \dots & x_{2n}\\ \dots & \dots & \dots & \dots\\ x_{m1} & x_{m2} & \dots & x_{mn}\\ \end{bmatrix} \qquad

x_{ij}表示单词w_i在文本d_j中出现的频数或权值。这是一个稀疏矩阵。

权值常用单词频率-逆文本频率(term frequency-inverse document frequency,TF-IDF)表示,其定义是:

TFIDF_{ij}=\frac{ tf_{ij}}{tf_{.j}}\log\frac{df}{df_i}

其中tf_{ij}是单词w_i出现在文本d_j中的频数,tf_{.j}是文本d_j中出现的所有单词的频数之和,df_i是含有单词w_i的文本数,df是文本集合D的全部文本数。

这个概念的解释我在读吴军先生的《数学之美》时见过,至今记忆犹新。举例来说,很多单词在所有文本中出现频率都很高(比如I,is,are,and)但它们并不能代表文本的语义,因为这些单词在所有文本中都出现,因此它们并不能代表文本的特点。这就是不能直接使用单词频率的原因。为了度量一个单词能多大程度地反映文本的特点,可以使用逆文本频率,即一个单词在整个文本集合中出现的文本越少,这个单词越能表示其所在文本的特点,重要度越高。这就是逆文本频率的含义。综合逆文本频率(度量单词多大程度反映文本特点)以及单词频率(度量单词对文本的重要性)就得到了TF-IDF

两个单词向量的内积或标准化内积(余弦)表示对应文本之间的语义相似度,文本d_id_j之间的相似度为:

\frac{x_i\cdot x_j}{||x_i||\ ||x_j||}

VSM的优点是模型简单,计算效率高,因此单词向量通常是稀疏的,两个向量的内积计算只需要在同不为零的维度上进行即可。但VSM也有一定局限性,那就是有时内积相似度未必能准确表达两个文本的语义相似度,因为单词具有一词多义性(polysemy)和多词一义性(synonymy),所以基于单词向量的相似度计算存在不精确的问题。

2、话题向量空间

所谓话题(topic),并没有严格定义,就是指文本讨论的内容和主题。一个文本一般含有若干话题。

单词-文本矩阵定义同上,记为X=[x_1\quad x_2\quad \dots\quad x_n]

另外我们定义单词-话题矩阵,记作T

T= \begin{bmatrix} t_{11} & t_{12} & \dots & t_{1k}\\ t_{21} & t_{22} & \dots & t_{2k}\\ \dots & \dots & \dots & \dots\\ t_{m1} & t_{m2} & \dots & t_{mk}\\ \end{bmatrix} \qquad

矩阵T也可以写作T=[t_1\quad t_2\dots\quad t_k]k为所有文本的话题数)。

其中t_{il}表示单词w_i在话题t_l的权值,i=1,2,\dots,m,权值越大,该单词在该话题中重要度越高。这k个话题向量t_1,t_2\dots,t_k张成一个话题向量空间,维数为k

接下来我们定义话题-文本矩阵

Y= \begin{bmatrix} y_{11} & y_{12} & \dots & y_{1n}\\ y_{21} & y_{22} & \dots & y_{2n}\\ \dots & \dots & \dots & \dots\\ y_{k1} & y_{k2} & \dots & y_{kn}\\ \end{bmatrix} \qquad

矩阵Y也可以写作T=[y_1\quad t_2\dots\quad y_n]

其中y_{lj}表示话题t_l在文本d_j的权值,l=1,2,\dots,k,权值越大,该话题在该文本中重要度越高。

这样一来,在单词向量空间的文本向量x_j可以通过它在话题空间中的向量y_j近似表示,具体地由k个话题向量以y_j为系数的线性组合近似表示:

x_j\approx y_{1j}t_1+y_{2j}t_2+\dots+y_{kj}t_k,\quad j=1,2,\dots,n

x_j表示单词在文本d_j的权值,y_{lj}表示话题t_l在文本d_j的权值,t_l表示单词在话题t_l的权值。即:

X\approx TY

这就是潜在语义分析。

进行潜在语义分析,需要同时决定两部分内容——单词-话题矩阵T和话题-文本矩阵Y,使两者乘积是原始矩阵数据的近似。这一结果完全从单词-文本矩阵X中获得。

3、潜在语义分析算法

潜在语义分析的思路是对单词-文本X矩阵进行奇异值分解,将其左矩阵作为单词-话题矩阵T,将其对角矩阵和右矩阵的乘积作为话题-文本矩阵Y

具体来说,潜在语义分析根据固定的话题个数k对单词-文本矩阵X进行截断奇异值分解:

X\approx U_k \Sigma_k V_k^T

U_km\times k矩阵,它的列由X的前k个互相正交的左奇异向量组成,\Sigma_kk阶对角阵,对角元素为前k个最大奇异值,V_kn\times k矩阵,它的列由X的前k个互相正交的右奇异向量组成。

从而U_k为单词-话题矩阵T(话题空间),\Sigma_k V_k^T为话题-文本矩阵Y(文本在话题空间的表示)。

4、非负矩阵分解算法

若一个矩阵所有元素非负,则称该矩阵为非负矩阵,若矩阵X非负,记为X\geq 0

给定非负矩阵X\geq 0,找到两个非负矩阵W\geq 0H\geq 0

X\approx WH

称为矩阵X的非负矩阵分解。

假设非负矩阵X是一个m\times n矩阵,非负矩阵WH分别为m\times k矩阵和k\times n矩阵。假设k<\min(m,n),即WH小于原矩阵X,所以非负矩阵分解是对原数据的压缩。

非负矩阵分解可形式化为最优化问题来求解。首先定义损失函数。

第一种是平方损失,两非负矩阵AB的平方损失函数为:

||A-B||^2=\sum_{i,j}(a_{ij}-b_{ij})^2

第二种是散度,两非负矩阵AB的散度损失函数为:

D(A||B)=\sum_{i,j}(a_{ij}\log\frac{a_{ij}}{b_{ij}}-a_{ij}+b_{ij})

接着定义最优化问题:

\begin{alignat*}{2} \min_{W,H} \quad & ||X-WH||^2\\ \mbox{s.t.}\quad &W,H\geq 0\\ \end{alignat*}

或者:

\begin{alignat*}{2} \min_{W,H} \quad & D(X||WH)\\ \mbox{s.t.}\quad &W,H\geq 0\\ \end{alignat*}

使用梯度下降法求解得到的W,H可分别作为话题矩阵和文本表示矩阵。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容