寫在前面:
本文將從簡單的二維空間來逐漸展開問題,帶您理解語義空間。
距離和體型:
這里嘗試用距離和體型這兩個尺度來理解語義空間,先說的是低維情況,后面在嘗試理解高維的情況。
比如,在二維空間的x,y坐標系,如果橫縱坐標表示的是距離,例如A(10,15)這個點分別表示距離x軸和y軸的距離是15米和10米,那么顯然這個點是和B(11,15)這個點是很近(歐氏距離小)的。在向量表示上,這兩個向量的余弦相似度也非常高。這里的“距離x軸的距離和距離y軸的距離”,就是每個點的“屬性或者說特征”。于是我們得出了這樣的結論:因為二者“特征/屬性非常接近”,(從歐氏距離或者余弦相似度的角度來看),所以這兩個點在二維空間的分布上是非常接近的。(特征數據-->關于特征的結論)
類似的,如果(160,60)這個數據代表某人的身高和體重,對于兩組數據(162,62)(160,60),我們可以自然的得出這樣的結論:這兩個人的“體型非常相似”。因為這兩組數據如果放在二維空間,不論是從歐氏距離還是余弦相似度的角度來看,這兩組數據所代表的點/向量是非常接近的。這里的“身高和體重就是某個人的特征”(特征數據-->關于特征的結論)
從上面的兩個例子,我們可以總結出這樣的規律,如果兩組數據在對應維度的空間是“相近的”,(這里的相近,一般的衡量方式就是歐式距離或者余弦相似度這類計算方法,在高維空間,往往就是采用轉成向量,計算余弦相似度的方案)那么這兩組數據所代表的實例,在現實中具有類似的特征。畢竟,在計算科學領域,事物的特征總是會盡可能的用冰冷的數據來衡量。我們只是反過來,用數據判斷事物之間的特征。
在AI領域,經常需要處理高維數據,或者多特征的情況。上面的兩個例子都是假設二維空間的情況,某個點也只有兩個特征。但現實中,比如物體他可以有很多特征(距離x軸距離,距離y軸距離,顏色,質量,密度...)每個特征都會使用數據來衡量,那么當兩個物體在這些特征數所對應的高維空間“非常近時”,我們就認為這兩個物體的特征非常類似,也即他們可能具有近似的顏色,質量,密度...
這里的不論是高維還是前面的二維空間,都可以認為是一種語義空間。比如在距離的例子中,x-y這個二維空間中的向量就能夠表達某個點的位置信息。尤其對于高維空間,是非常抽象的。在AI領域,卻又經常使用到這一概念。因為AI中模型的訓練往往需要使用大量的復雜數據。
總結:語義空間是一個用數學方式來表征和度量“含義”的抽象空間。我們可以通過數據在語義空間中的位置,來判斷這組數據所對應的實例在現實中和其他實例的相似情況。
如果兩組數據在語義空間非常接近,那么這兩組數據所代表的實例,就認為具有類似的特征。
這里用MLLM中的模態編碼器舉例,簡單介紹一下:
模態編碼器:
本質上就是將圖片、音頻、文字等數據進行向量化編碼,經過模態編碼器后,具有相同語義的原始數據類型(圖像,文字,音頻等),他們各自對應的向量在語義空間會非常的接近。
這就像一個翻譯一樣:假設圖片,文字,音頻這三種數據傳達的內容都是“一個友好信息”,經過編碼后,他們都被映射為一個表示“友好信息”的向量(這個向量就是一個高維的,在語義空間中的高維向量)。模態編碼器的出現,解決了不同類型數據之間的“溝通”問題。本質上就是將不同類型的數據轉變成相同類型的數據。