? 本文地址為:http://www.cnblogs.com/kemaswill/,作者聯系方式為kemaswill@163.com,轉載請注明出處。
1. 傳統向量空間模型的缺陷
? 向量空間模型是信息檢索中最常用的檢索方法,其檢索過程是,將文檔集D中的所有文檔和查詢都表示成以單詞為特征的向量,特征值為每個單詞的TF-IDF值,然后使用向量空間模型(亦即計算查詢q的向量和每個文檔di的向量之間的相似度)來衡量文檔和查詢之間的相似度,從而得到和給定查詢最相關的文檔。
? 向量空間模型簡單的基于單詞的出現與否以及TF-IDF等信息來進行檢索,但是“說了或者寫了哪些單詞”和“真正想表達的意思”之間有很大的區別,其中兩個重要的阻礙是單詞的多義性(polysems)和同義性(synonymys)。多義性指的是一個單詞可能有多個意思,比如Apple,既可以指水果蘋果,也可以指蘋果公司;而同義性指的是多個不同的詞可能表示同樣的意思,比如search和find。
? 同義詞和多義詞的存在使得單純基于單詞的檢索方法(比如向量空間模型等)的檢索精度受到很大影響。下面舉例說明:
? 假設用戶的查詢為Q="IDF in computer-based information look-up"
? 存在三篇文檔Doc 1,Doc 2,Doc 3,其向量表示如下:
| ? | Access | Document | Retrieval | Information | Theory | Database | Indexing | Computer | Relevance | Match |
| Doc 1 | ? ? 1 | ? ? ? 1 | ? ? ?1 | ? | ? | ? ? ?1 | ? ? 1 | ? | ? ? ? R | ? |
| Doc 2 | ? | ? | ? | ? ? ? 1 x | ? ?1 | ? | ? | ? ? 1 x | ? | ? M |
| Doc 3 | ? | ? | ? ? ?1 | ? ? ? 1 x | ? | ? | ? | ? ? 1 x | ? ? ? R | ? M |
? 其中Table(i,j)=1表示文檔i包含詞語j。Table(i,j)=x表示該詞語在查詢Q中出現。Relevance如果為R表示該文檔實際上和查詢Q相關,Match為M表示根據基于單詞的檢索方法判斷的文檔和查詢的相關性。
? 通過觀察查詢,我們知道用戶實際上需要的是和“信息檢索”相關的文檔,文檔1是和信息檢索相關的,但是因為不包含查詢Q中的詞語,所以沒有被檢索到。實際上該文檔包含的詞語“retrieval”和查詢Q中的“look-up”是同義詞,基于單詞的檢索方法無法識別同義詞,降低了檢索的性能。而文檔2雖然包含了查詢中的"information"和"computer"兩個詞語,但是實際上該篇文檔講的是“信息論”(Information Theory),但是基于單詞的檢索方法無法識別多義詞,所以把這篇實際不相關的文檔標記為Match。
? 總而言之,在基于單詞的檢索方法中,同義詞會降低檢索算法的召回率(Recall),而多義詞的存在會降低檢索系統的準確率(Precision)。
2. Latent Semantic Analysis (Latent Semantic Indexing)
? 我們希望找到一種模型,能夠捕獲到單詞之間的相關性。如果兩個單詞之間有很強的相關性,那么當一個單詞出現時,往往意味著另一個單詞也應該出現(同義詞);反之,如果查詢語句或者文檔中的某個單詞和其他單詞的相關性都不大,那么這個詞很可能表示的是另外一個意思(比如在討論互聯網的文章中,Apple更可能指的是Apple公司,而不是水果) ?。
? LSA(LSI)使用SVD來對單詞-文檔矩陣進行分解。SVD可以看作是從單詞-文檔矩陣中發現不相關的索引變量(因子),將原來的數據映射到語義空間內。在單詞-文檔矩陣中不相似的兩個文檔,可能在語義空間內比較相似。
? SVD,亦即奇異值分解,是對矩陣進行分解的一種方法,一個t*d維的矩陣(單詞-文檔矩陣)X,可以分解為T*S*D T ,其中T為t*m維矩陣,T中的每一列稱為左奇異向量(left singular bector),S為m*m維對角矩陣,每個值稱為奇異值(singular value),D為d*m維矩陣,D中的每一列稱為右奇異向量。在對單詞文檔矩陣X做SVD分解之后,我們只保存S中最大的K個奇異值,以及T和D中對應的K個奇異向量,K個奇異值構成新的對角矩陣S’,K個左奇異向量和右奇異向量構成新的矩陣T’和D’:X’=T’*S’*D’ T 形成了一個新的t*d矩陣。
? 假設索引的文檔的集合如下:
? Term-Document矩陣為:
1
[[
1
.
0
.
0
.
1
.
0
.
0
.
0
.
0
.
0
.]
2
[
1
.
0
.
1
.
0
.
0
.
0
.
0
.
0
.
0
.]
3
[
1
.
1
.
0
.
0
.
0
.
0
.
0
.
0
.
0
.]
4
[
0
.
1
.
1
.
0
.
1
.
0
.
0
.
0
.
0
.]
5
[
0
.
1
.
1
.
2
.
0
.
0
.
0
.
0
.
0
.]
6
[
0
.
1
.
0
.
0
.
1
.
0
.
0
.
0
.
0
.]
7
[
0
.
1
.
0
.
0
.
1
.
0
.
0
.
0
.
0
.]
8
[
0
.
0
.
1
.
1
.
0
.
0
.
0
.
0
.
0
.]
9
[
0
.
1
.
0
.
0
.
0
.
0
.
0
.
0
.
1
.]
10
[
0
.
0
.
0
.
0
.
0
.
1
.
1
.
1
.
0
.]
11
[
0
.
0
.
0
.
0
.
0
.
0
.
1
.
1
.
1
.]
12
[
0
.
0
.
0
.
0
.
0
.
0
.
0
.
1
.
1
.]]
對其進行分解后得到X=T*S*D T 。其中T為:
1
[-
0.22
-
0.11
0.29
-
0.41
-
0.11
-
0.34
-
0.52
0.06
0.41
]
2
[-
0.2
-
0.07
0.14
-
0.55
0.28
0.5
0.07
0.01
0.11
]
3
[-
0.24
0.04
-
0.16
-
0.59
-
0.11
-
0.25
0.3
-
0.06
-
0.49
]
4
[-
0.4
0.06
-
0.34
0.1
0.33
0.38
-
0
.
0
. -
0.01
]
5
[-
0.64
-
0.17
0.36
0.33
-
0.16
-
0.21
0.17
-
0.03
-
0.27
]
6
[-
0.27
0.11
-
0.43
0.07
0.08
-
0.17
-
0.28
0.02
0.05
]
7
[-
0.27
0.11
-
0.43
0.07
0.08
-
0.17
-
0.28
0.02
0.05
]
8
[-
0.3
-
0.14
0.33
0.19
0.11
0.27
-
0.03
0.02
0.17
]
9
[-
0.21
0.27
-
0.18
-
0.03
-
0.54
0.08
0.47
0.04
0.58
]
10
[-
0.01
0.49
0.23
0.02
0.59
-
0.39
0.29
-
0.25
0.23
]
11
[-
0.04
0.62
0.22
0
. -
0.07
0.11
-
0.16
0.68
-
0.23
]
12
[-
0.03
0.45
0.14
-
0.01
-
0.3
0.28
-
0.34
-
0.68
-
0.18
]
? D T 為
1
[-
0.2
-
0.61
-
0.46
-
0.54
-
0.28
-
0
. -
0.01
-
0.02
-
0.08
]
2
[-
0.06
0.17
-
0.13
-
0.23
0.11
0.19
0.44
0.62
0.53
]
3
[
0.11
-
0.5
0.21
0.57
-
0.51
0.1
0.19
0.25
0.08
]
4
[-
0.95
-
0.03
0.04
0.27
0.15
0.02
0.02
0.01
-
0.02
]
5
[
0.05
-
0.21
0.38
-
0.21
0.33
0.39
0.35
0.15
-
0.6
]
6
[-
0.08
-
0.26
0.72
-
0.37
0.03
-
0.3
-
0.21
0
.
0.36
]
7
[-
0.18
0.43
0.24
-
0.26
-
0.67
0.34
0.15
-
0.25
-
0.04
]
8
[
0.01
-
0.05
-
0.01
0.02
0.06
-
0.45
0.76
-
0.45
0.07
]
9
[
0.06
-
0.24
-
0.02
0.08
0.26
0.62
-
0.02
-
0.52
0.45
]
? Sigma為
1
[
3.34
2
2.54
3
2.35
4
1.64
5
1.50
6
1.31
7
0.85
8
0.56
9
0.36]
? 我們只保留最大的2個奇異值和其對應的奇異向量,得到的T’為
1
[-
0.22
-
0.11
]
2
[-
0.2
-
0.07
]
3
[-
0.24
0.04
]
4
[-
0.4
0.06
]
5
[-
0.64
-
0.17
]
6
[-
0.27
0.11
]
7
[-
0.27
0.11
]
8
[-
0.3
-
0.14
]
9
[-
0.21
0.27
]
10
[-
0.01
0.49
]
11
[-
0.04
0.62
]
12
[-
0.03
0.45
]
? D’ T 為
1
[-
0.2
-
0.61
-
0.46
-
0.54
-
0.28
-
0
. -
0.01
-
0.02
-
0.08
]
2
[-
0.06
0.17
-
0.13
-
0.23
0.11
0.19
0.44
0.62
0.53
]
? Sigma’為
1
[[
3.34
0
. ]
2
[
0
.
2.54
]]
? 還原后的X’為
1
[
0.16
0.4
0.38
0.47
0.18
-
0.05
-
0.12
-
0.16
-
0.09
]
2
[
0.14
0.37
0.33
0.4
0.16
-
0.03
-
0.07
-
0.1
-
0.04
]
3
[
0.15
0.51
0.36
0.41
0.24
0.02
0.06
0.09
0.12
]
4
[
0.26
0.84
0.61
0.7
0.39
0.03
0.08
0.12
0.19
]
5
[
0.45
1.23
1.05
1.27
0.56
-
0.07
-
0.15
-
0.21
-
0.05
]
6
[
0.16
0.58
0.38
0.42
0.28
0.06
0.13
0.19
0.22
]
7
[
0.16
0.58
0.38
0.42
0.28
0.06
0.13
0.19
0.22
]
8
[
0.22
0.55
0.51
0.63
0.24
-
0.07
-
0.14
-
0.2
-
0.11
]
9
[
0.1
0.53
0.23
0.21
0.27
0.14
0.31
0.44
0.42
]
10
[-
0.06
0.23
-
0.14
-
0.27
0.14
0.24
0.55
0.77
0.66
]
11
[-
0.06
0.34
-
0.15
-
0.3
0.2
0.31
0.69
0.98
0.85
]
12
[-
0.04
0.25
-
0.1
-
0.21
0.15
0.22
0.5
0.71
0.62
]
? 還原后的X’與X差別很大,這是因為我們認為之前X存在很大的噪音,X’是對X處理過同義詞和多義詞后的結果。
? 在 查詢 時,對與每個給定的查詢,我們根據這個查詢中包含的單詞(X q )構造一個偽文檔:D q =X q TS -1 ,然后該偽文檔和D’中的每一行計算相似度(余弦相似度)來得到和給定查詢最相似的文檔。
?參考文獻:
? [1] ?Indexing By Latent Semantic Analysis. Scott Deerwester, Susan T. Dumais, George W.Furnas, Thomas K.Landauer, Richard Harshman.
? [2] ?Latent Semantic Analysis Note. Zhou Li.
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

