一、介紹
Multiple Maps t-SNE 是一種對t-SNE的改進算法。Multiple Maps t-SNE是通過構造一系列的圖來展示資料點之間的相似性,可以解決t-SNE的不能區分語義相似的缺點。相對于t-SNE,我們在Multiple Maps t-SNE中引入權重的概念,在Multiple Maps t-SNE中同一個點在不同的圖中,會展現出不同的權重。Multiple Maps t-SNE 主要解決了非度量的相似資料的降維問題,例如包含語義相似的資料集的降維或者是論文的聯合作者的分類等。
二、算法過程
Multiple Maps t-SNE 中我們設定M個圖,每個圖中有N個點,每個點在不同的圖中的權重是不同的,每個圖都有一個索引為m,點i在m圖中的權重我們使用πi(m)表示。在Multiple Maps t-SNE 中我們對πi(m)進行限制,要求∀i∀m :πi(m) ≥ 0 and ∀i :∑πi(m) = 1. 在Multiple Maps t-SNE中我們重新定義Qij:
和t-SNE一樣, 我們将qii設定為0。
Multiple Maps t-SNE中,我們對于Cost函數的最小化,不隻最小化Y的值,還要通過梯度疊代最小化πi(m),但是直接使用πi(m)計算會很繁瑣,是以我們定義了一個不設限制的值wi(m),使用wi(m)來表示πi(m):
Cost函數的表達式:
Cost函數對y的梯度下降公式:
Cost函數對πi(m)的梯度下降公式:
三、優點
Multiple Maps t-SNE解決了兩個主要的問題:
(1)不可轉換的相似性
不可轉換的相似性是指,在資料集中會有這樣的資料,即A與B相似,B與C相似,但是B與C不相似,對于這樣的資料在t-SNE中,A與B相似,A與C相似,那麼B與C就會都分布在A的周圍,我們會認為B與C也相似,是以我們使用Multiple Maps t-SNE來表示這樣的資料。
在Multiple Maps t-SNE中,引入權重的概念,接着說上面的例子,A與B且A與C相似但是B與C不相似,那麼就将A與B的相似放在一個圖中,将A與C的相似放在另一個圖中。
(2)中心對象在二維空間的可視化
在二維空間中,一個點周圍可視化5個點,但是在我們的實踐中,會遇到過于中心化的現象,即一個中心的周圍的點依然是中心點,這樣就會造成可視化效果并不理想,是以可以使用Multiple Maps t-SNE來解決。
*(圖中表示的是中心化的問題,紅色的點表示的是中心點)
對于過中心化的點,我們可以将中心點分布在不同的圖中,例如A與DEFGHI6個點都相似,可二維空間中一個點周圍隻能可視化5個點,是以我們可以将前三個點放在一個圖中,後三個點放在另一個圖中。
四、實驗效果
這裡我使用8個圖展示wiki語料中的1000個資料,但是我隻截取了一個例子展示一下。
五、總結
Multiple Maps t-SNE是對t-SNE算法的延展,在t-SNE上增加了權重的概念,它主要解決了不可傳遞的相似和過中心化兩個主要問題。
實作Multiple Maps t-SNE的代碼在這裡:https://download.csdn.net/download/zzzzhy/10494698