Pull down to go back
PCA Before Truncation Makes Non-Matryoshka Embeddings Compressible: Results on BGE-M3

PCA Before Truncation Makes Non-Matryoshka Embeddings Compressible: Results on BGE-M3

在截斷前先做 PCA 讓非 Matryoshka 嵌入向量可以壓縮:BGE-M3 實驗結果

Most embedding models aren't trained with Matryoshka techniques, so simply cutting dimensions usually ruins them. This post tests a simple fix: apply PCA once to your embeddings, rotate them into the PCA space, then truncate. The trick is that PCA pushes the important signal into the first few dimensions, so you're not just randomly chopping off the end anymore. Testing on BGE-M3 embeddings (1024 dimensions), the results are striking: at 512 dimensions, naive truncation drops to 0.707 cosine similarity while PCA-first stays at 0.996; at 384 dimensions it's 0.609 vs 0.990. Basically, this method lets you compress embeddings to half or a third their size without destroying quality—worth reading if you're dealing with embedding storage or latency constraints.

Keywords

PCAembedding compressionMatryoshka embeddingsdimension truncationcosine similarityBGE-M3