Giảm chiều dữ liệu (Data Dimensionality Reduction)
1. Tổng quan
A. Định nghĩa
Giảm chiều (Dimensionality Reduction) là kỹ thuật biểu diễn lại dữ liệu nhiều chiều bằng số lượng biến (chiều) ít hơn trong khi tối thiểu hóa mất mát thông tin. Mục đích là giảm nhẹ "lời nguyền chiều dữ liệu", nâng cao hiệu quả tính toán, trực quan hóa và chống quá khớp; kỹ thuật này được chia lớn thành lựa chọn đặc trưng — chọn một phần trong các biến gốc — và trích xuất đặc trưng — tạo ra các trục mới.
Lý do căn bản cần giảm chiều là nghịch lý mang tên "lời nguyền chiều dữ liệu (Curse of Dimensionality)". Theo trực giác, càng nhiều biến (đặc trưng) thì thông tin càng phong phú và dự đoán càng tốt, nhưng thực tế khi biến tăng lên, các điểm dữ liệu phân tán cực kỳ thưa thớt trong không gian nhiều chiều và xa nhau hơn. Ví dụ, để lấp đều một biến trong khoảng 0~1 thì 10 mẫu là đủ, nhưng để duy trì cùng mật độ đó ở 10 chiều thì cần 10^10 mẫu. Tức là khi số chiều tăng, lượng dữ liệu cần thiết bùng nổ theo hàm mũ.
Sự thưa thớt này trực tiếp vô hiệu hóa thuật toán. Các thuật toán dựa trên khoảng cách·mật độ như k láng giềng gần nhất (kNN) hay phân cụm bị mờ ranh giới giữa "gần" và "xa" do hiện tượng "tập trung khoảng cách (distance concentration)" — khoảng cách giữa mọi điểm trở nên tương tự nhau ở không gian nhiều chiều. Khi tỷ lệ khoảng cách giữa láng giềng gần nhất và xa nhất hội tụ về 1, các thuật toán gán ý nghĩa cho sự gần gũi thực chất gần như đoán ngẫu nhiên. Rốt cuộc, nhiều biến dễ trở thành việc tăng nhiễu và gánh nặng tính toán chứ không phải tăng thông tin.
Ngoài ra, biến càng nhiều thì bậc tự do (số tham số) của mô hình càng tăng, làm tăng rủi ro quá khớp (Overfitting) — ghi nhớ cả nhiễu của dữ liệu huấn luyện. Vấn đề này đặc biệt nghiêm trọng trong tình huống gọi là "HDLSS (High-Dimension, Low-Sample-Size)" khi số biến lớn so với số mẫu (ví dụ: hàng chục nghìn giá trị biểu hiện gen so với vài trăm bệnh nhân). Giảm chiều tìm ra một số ít trục chứa thông tin bản chất của dữ liệu để giảm nhẹ đồng thời các vấn đề này.
B. Sự cần thiết và hiệu quả
Giảm chiều mang lại ba lợi ích thực chất. Thứ nhất, hiệu quả tính toán·lưu trữ được nâng cao, huấn luyện và suy luận nhanh hơn, sử dụng bộ nhớ giảm. Giảm vector hàng nghìn chiều xuống vài chục chiều sẽ làm giảm mạnh lượng tính khoảng cách và kích thước chỉ mục. Thứ hai, giảm dữ liệu xuống 2~3 chiều cho phép con người trực quan hóa·khám phá bằng mắt cấu trúc cụm·ngoại lai·phân tách lớp, giúp hiểu dữ liệu và lập giả thuyết. Thứ ba, loại bỏ biến không cần thiết·biến tương quan·nhiễu để chống quá khớp, nâng cao hiệu năng tổng quát hóa và độ ổn định mô hình. Trong thực tế còn thêm hiệu quả "loại bỏ đa cộng tuyến (multicollinearity)", giúp ước lượng hệ số của mô hình hồi quy·phân loại ổn định hơn.
2. Phân loại phương thức: Lựa chọn đặc trưng vs Trích xuất đặc trưng
Phương pháp giảm chiều được chia lớn thành lựa chọn đặc trưng — chọn nguyên các biến gốc — và trích xuất đặc trưng — kết hợp các biến để tạo trục mới. Trước hết hãy nhìn tổng thể toàn cảnh.
flowchart TB
D["Giảm chiều<br/>(Dimensionality Reduction)"] --> S["Lựa chọn đặc trưng<br/>Feature Selection"]
D --> E["Trích xuất đặc trưng<br/>Feature Extraction"]
S --> S1["Bộ lọc (Filter)<br/>tương quan·chi bình phương·độ lợi thông tin"]
S --> S2["Bao gói (Wrapper)<br/>chọn tiến/lùi·RFE"]
S --> S3["Nhúng (Embedded)<br/>Lasso·độ quan trọng của cây"]
E --> E1["Tuyến tính: PCA·LDA·SVD"]
E --> E2["Phi tuyến: t-SNE·UMAP·Kernel PCA"]
E --> E3["Học sâu: autoencoder"]
style D fill:#e8f0fe,stroke:#2f6fed,stroke-width:2px
Lựa chọn đặc trưng (Feature Selection) là phương thức chỉ chọn những biến hữu ích trong các biến hiện có và bỏ phần còn lại. Ưu điểm lớn nhất là dễ diễn giải vì các biến còn lại giữ nguyên ý nghĩa vật lý ban đầu. Ví dụ, trong mô hình chẩn đoán bệnh, nếu chỉ giữ lại khoảng 10 hạng mục thực sự quan trọng trong hàng trăm hạng mục xét nghiệm, đội ngũ y tế có thể diễn giải ngay "nếu giá trị xét nghiệm này cao thì nguy hiểm". Tuy nhiên, thông tin sinh ra từ tổ hợp giữa biến bị bỏ và biến được giữ sẽ bị mất.
Lựa chọn đặc trưng lại chia thành ba nhánh. Phương thức bộ lọc (Filter) đánh giá biến bằng các chỉ số thống kê như hệ số tương quan·chi bình phương·thông tin tương hỗ, độc lập với mô hình, để lọc nhanh. Phương thức bao gói (Wrapper) lấy hiệu năng của mô hình thực tế làm tiêu chí để lặp đi lặp lại tìm kiếm tập con biến (chọn tiến·loại lùi·RFE) nên chính xác nhưng chi phí tính toán rất lớn. Phương thức nhúng (Embedded) là giải pháp dung hòa, trong đó việc chọn biến được tích hợp sẵn vào chính quá trình huấn luyện mô hình như Lasso (chính quy hóa L1) hay độ quan trọng biến dựa trên cây.
Ngược lại, trích xuất đặc trưng (Feature Extraction) là phương thức kết hợp toán học nhiều biến để tạo ra các trục hoàn toàn mới. Nén thông tin hiệu quả hơn nhưng trục mới không mang ý nghĩa vật lý ban đầu nên khó diễn giải. Ví dụ, "thành phần chính thứ nhất" của PCA có dạng "tổng có trọng số của chiều cao·cân nặng·vòng eo" nên khó gán ý nghĩa trực quan cho bản thân nó. Đổi lại, vì chứa thông tin của các biến tương quan một cách dày đặc trong số ít trục, tỷ lệ nén và năng lực biểu diễn thường vượt trội so với lựa chọn đặc trưng.
| Phương thức | Khái niệm | Kỹ thuật tiêu biểu | Ưu điểm | Nhược điểm |
|---|---|---|---|---|
| Lựa chọn đặc trưng | Chọn lọc biến hữu ích trong các biến gốc | Bộ lọc·bao gói·nhúng | Dễ diễn giải (bảo toàn ý nghĩa), pipeline dữ liệu gốc đơn giản | Mất thông tin tổ hợp biến |
| Trích xuất đặc trưng | Kết hợp biến để tạo trục mới | PCA·LDA·t-SNE·autoencoder | Nén thông tin·năng lực biểu diễn vượt trội | Khó diễn giải, dữ liệu mới cũng cần biến đổi |
3. Các kỹ thuật chính và nguyên lý
Các kỹ thuật trích xuất đặc trưng khác nhau về tính chất tùy theo "tối ưu hóa điều gì". Tổng hợp quy trình bên trong của các kỹ thuật tiêu biểu thành một luồng như sau.
flowchart LR
A["Dữ liệu nhiều chiều gốc<br/>(ma trận n×p)"] --> B["Chuẩn hóa<br/>(trung bình 0·phương sai 1)"]
B --> C{"Mục đích?"}
C -->|"Bảo toàn phương sai·nén"| D["PCA<br/>Phân rã trị riêng hiệp phương sai"]
C -->|"Phân tách lớp"| E["LDA<br/>Tối đa tỷ lệ phương sai giữa/trong lớp"]
C -->|"Trực quan hóa"| F["t-SNE·UMAP<br/>Bảo toàn xác suất láng giềng"]
C -->|"Nén phi tuyến"| G["Autoencoder<br/>Học encoder-decoder"]
D --> H["Xác định số thành phần chính<br/>bằng tỷ lệ phương sai giải thích"]
E --> I["Chiếu xuống chiều thấp"]
F --> I
G --> I
H --> I["Biểu diễn đã giảm chiều"]
style A fill:#e8f0fe,stroke:#2f6fed
style I fill:#e6f4ea,stroke:#34a853
PCA (Phân tích thành phần chính, Principal Component Analysis) là kỹ thuật tuyến tính·không giám sát được dùng rộng rãi nhất. Nó lấy hướng có phương sai lớn nhất của dữ liệu làm thành phần chính thứ nhất, rồi lần lượt tìm các hướng trực giao với nó mà phương sai còn lại là lớn nhất. Phương sai lớn nghĩa là dữ liệu trải rộng theo hướng đó và mang nhiều thông tin (khả năng phân biệt), nên chỉ với vài thành phần chính hàng đầu cũng có thể khôi phục phần lớn dữ liệu gốc. Về toán học, được tìm bằng phân rã trị riêng của ma trận hiệp phương sai (hoặc SVD), và độ lớn trị riêng là lượng phương sai mà mỗi trục giải thích. Trong thực tế, thông lệ là lấy thành phần chính đến điểm mà "tỷ lệ phương sai giải thích tích lũy (explained variance ratio)" đạt 85~95%. Tuy nhiên, PCA nhạy với thang đo của biến nên bắt buộc phải áp dụng sau khi chuẩn hóa, và có giới hạn là chỉ nắm bắt được tương quan tuyến tính.
LDA (Phân tích biệt thức tuyến tính, Linear Discriminant Analysis) khác với PCA ở chỗ là kỹ thuật học có giám sát tận dụng nhãn lớp. Nếu PCA tìm "trục có tổng phương sai lớn", thì LDA tìm trục làm cho "phương sai giữa các lớp lớn, phương sai trong lớp nhỏ" để chiếu theo hướng các lớp được phân biệt tốt nhất. Do đó, nó rất mạnh khi làm tiền xử lý cho bài toán phân loại, nhưng có đặc tính số chiều có thể giảm bị giới hạn ở "số lớp − 1" (ví dụ: 3 lớp thì tối đa 2 chiều).
t-SNE và UMAP bảo toàn cấu trúc láng giềng phi tuyến và chủ yếu được dùng để trực quan hóa 2·3 chiều. Theo cách khớp phân phối xác suất sao cho các điểm gần nhau ở không gian nhiều chiều cũng gần nhau ở không gian ít chiều, chúng vượt trội trong việc trải phẳng cấu trúc đa tạp (manifold) đan xen phức tạp để làm lộ các cụm. Tuy nhiên cần lưu ý rằng chúng chủ yếu dùng cho trực quan hóa, không được diễn giải định lượng khoảng cách giữa các trục hay kích thước cụm. UMAP tính toán nhanh hơn t-SNE và bảo toàn cấu trúc toàn cục tốt hơn nên gần đây được ưa chuộng trong thực tế.
Autoencoder dùng mạng nơ-ron học cách nén dữ liệu đến tầng thắt cổ chai (ẩn) (encoder) rồi khôi phục về bản gốc (decoder), và dùng biểu diễn ở tầng thắt cổ chai đó làm đặc trưng đã giảm chiều. Vì có thể học quan hệ phi tuyến nên mạnh với dữ liệu phức tạp như hình ảnh·giọng nói, và biến thể VAE còn được mở rộng thành mô hình sinh.
| Kỹ thuật | Nguyên lý | Có giám sát/không giám sát | Tuyến tính/phi tuyến | Mục đích chính |
|---|---|---|---|---|
| PCA | Trích xuất trục trực giao phương sai lớn nhất (phân rã trị riêng) | Không giám sát | Tuyến tính | Chuẩn mực cho tiền xử lý·nén |
| LDA | Tối đa tỷ lệ phương sai giữa/trong lớp | Có giám sát | Tuyến tính | Tiền xử lý phân loại |
| t-SNE / UMAP | Bảo toàn phân phối xác suất láng giềng | Không giám sát | Phi tuyến | Chuyên cho trực quan hóa |
| Autoencoder | Học biểu diễn ẩn encoder-decoder | Không giám sát | Phi tuyến | Học sâu·dữ liệu phức tạp |
4. Ví dụ áp dụng và so sánh
Lựa chọn kỹ thuật phụ thuộc vào tính chất và mục đích của dữ liệu. Hãy xem xét lý do tạo ra khác biệt qua một số ví dụ cụ thể.
Ví dụ 1 — Phân tích hệ gen (Bioinformatics). Thí nghiệm microarray là tình huống HDLSS điển hình với vài trăm mẫu nhưng hơn 20 nghìn gen (biến). Nếu giữ nguyên biến thì bộ phân loại nào cũng quá khớp. Khi đó, pipeline chuẩn là trước tiên dùng phương thức bộ lọc để lọc các gen có biến động biểu hiện lớn, dùng PCA chỉ giữ lại vài chục thành phần chính hàng đầu, rồi thực hiện phân loại. Lý do chọn PCA ở đây là vì có thể nén tương quan mạnh giữa các gen vào số ít trục.
Ví dụ 2 — Nhận dạng hình ảnh và embedding. Ảnh chữ số MNIST 28×28 pixel là vector 784 chiều, nhưng thông tin thực tế nằm trên một đa tạp có số chiều thấp hơn nhiều. Trải ra 2 chiều bằng t-SNE/UMAP thì các chữ số 0~9 tách thành 10 cụm rõ rệt, giúp kiểm chứng chất lượng dữ liệu và mức phân tách lớp trong nháy mắt. Ngược lại, nếu mục đích là nén·khôi phục thì autoencoder phù hợp. Tùy mục đích là "xem" hay "nén" mà các kỹ thuật trái ngược nhau được chọn.
Ví dụ 3 — Hệ thống gợi ý·tìm kiếm. Khi biểu diễn người dùng·sản phẩm bằng embedding vài trăm chiều rồi gợi ý theo độ tương đồng, số chiều lớn làm tìm láng giềng gần nhất chậm và độ chính xác giảm do tập trung khoảng cách. Khi đó, giảm chiều bằng PCA hoặc học ngay embedding ở chiều thấp để cải thiện đồng thời tốc độ và chất lượng của chỉ mục tìm láng giềng gần nhất xấp xỉ (ANN).
Như vậy, cốt lõi của so sánh không phải liệt kê đơn thuần mà là "vì sao kỹ thuật đó phù hợp với tình huống đó". PCA có ưu thế khi cấu trúc tuyến tính·tương quan chiếm ưu thế và nén quan trọng hơn diễn giải, LDA khi có nhãn và mục tiêu là hiệu năng phân loại, t-SNE/UMAP khi cần kiểm tra cấu trúc bằng mắt, autoencoder khi dữ liệu phi tuyến·quy mô lớn·phức tạp.
5. Chuyên sâu: Xu hướng mới và hướng ra đề dự kiến
Thứ nhất, sự trỗi dậy trở lại trong thời đại embedding·vector DB. Khi embedding nhiều chiều (vài trăm~vài nghìn chiều) do mô hình ngôn ngữ lớn và mô hình đa phương thức tạo ra trở thành đơn vị cơ bản của tìm kiếm·gợi ý·RAG, giảm chiều lại càng được sử dụng rộng rãi. Trong tìm kiếm vector, giảm chiều dựa trên lượng tử hóa như PQ (Product Quantization)·OPQ giảm kích thước chỉ mục xuống vài chục lần, kết hợp với đồ thị ANN như HNSW để xử lý tìm kiếm tương đồng quy mô lớn theo thời gian thực.
Thứ hai, sự hội tụ giữa học đa tạp và học biểu diễn (Representation Learning). Vượt qua PCA truyền thống, chính biểu diễn thu được từ học tự giám sát (self-supervised learning) đóng vai trò "giảm chiều được học". Tức là trọng tâm đang dịch chuyển sang hướng học trực tiếp từ dữ liệu các biểu diễn chiều thấp hữu ích cho tác vụ hạ nguồn.
Thứ ba, đề thi cũ·hướng ra đề dự kiến. Trong kỳ thi Kỹ sư chuyên nghiệp (Professional Engineer), thường yêu cầu các dạng: (1) định nghĩa lời nguyền chiều dữ liệu và giải thích giảm chiều giảm nhẹ nó thế nào, (2) so sánh lựa chọn đặc trưng và trích xuất đặc trưng và luận thuật các kỹ thuật chi tiết của từng loại, (3) đối chiếu nguyên lý PCA (phương sai lớn nhất·phân rã trị riêng) với khác biệt so với LDA (không giám sát vs có giám sát), (4) trình bày bằng ví dụ vị trí và hiệu quả của giảm chiều trong pipeline dữ liệu lớn·AI. Khi xây dựng bài làm, triển khai theo thứ tự "khái niệm→phân loại→nguyên lý kỹ thuật→ví dụ→đánh đổi" sẽ đạt được sự hoàn chỉnh của bài luận chuyên sâu.
6. Những điểm cần xem xét và hàm ý
Từ góc độ Kỹ sư chuyên nghiệp, khi áp dụng·đánh giá giảm chiều cần xem xét tổng hợp các điểm sau.
Chiến lược lựa chọn kỹ thuật dựa trên mục đích. Nguyên tắc là khám phá cấu trúc dữ liệu dùng t-SNE/UMAP, tiền xử lý·nén mô hình dùng PCA/autoencoder, nâng cao hiệu năng phân loại dùng LDA. Không có "kỹ thuật vạn năng" nên phải cân nhắc đồng thời quy mô dữ liệu·tính tuyến tính·có nhãn hay không·yêu cầu diễn giải để lựa chọn.
Đánh đổi giữa mất mát thông tin·khả năng diễn giải·hiệu năng. Giảm chiều quá mức sẽ mất cả thông tin quan trọng làm giảm hiệu năng, còn trích xuất đặc trưng đạt tỷ lệ nén nhưng hy sinh khả năng diễn giải. Trong PCA, xác định định lượng số chiều phù hợp bằng tỷ lệ phương sai giải thích tích lũy (ví dụ: 90%) và biểu đồ scree (scree plot); trong các ngành chịu quản lý (tài chính·y tế), ưu tiên lựa chọn đặc trưng do yêu cầu khả năng giải thích — cần phán đoán theo từng bối cảnh.
Ngăn rò rỉ dữ liệu (Data Leakage). Các phép biến đổi như PCA·LDA·scaler bắt buộc chỉ được khớp (fit) bằng dữ liệu huấn luyện, còn dữ liệu kiểm định·kiểm thử chỉ được áp dụng (transform) phép biến đổi đó. Nếu trong kiểm định chéo giảm chiều trước bằng toàn bộ dữ liệu thì thông tin kiểm thử bị rò rỉ và hiệu năng bị bóp méo theo hướng lạc quan. Cưỡng chế thứ tự bằng pipeline là an toàn.
Góc độ khả năng mở rộng và vận hành. Với dữ liệu dung lượng lớn·streaming, chọn các kỹ thuật có thể mở rộng như PCA gia tăng·chiếu ngẫu nhiên (Random Projection); với dịch vụ thời gian thực, chọn cấu trúc lưu phép biến đổi đã học trước để áp dụng nhanh khi suy luận. Ngoài ra, ngay cả sau khi giảm chiều cũng phải quản lý ánh xạ với biến gốc để thiết kế sao cho có thể giám sát·gỡ lỗi mô hình.
Kết hợp với công nghệ liên quan. Giảm chiều không phải kỹ thuật đơn lẻ, mà phát huy hiệu quả tối đa khi kết hợp với kỹ thuật đặc trưng·chính quy hóa·ensemble·tìm kiếm ANN. Đặc biệt, trong kiến trúc tìm kiếm vector·RAG, thiết kế giảm chiều·lượng tử hóa·lập chỉ mục thành một pipeline quyết định đồng thời hiệu năng và chi phí.
Tài liệu tham khảo
- scikit-learn, "Decomposition & Manifold learning": https://scikit-learn.org/stable/modules/decomposition.html
- UMAP documentation: https://umap-learn.readthedocs.io/en/latest/
- L. van der Maaten, G. Hinton, "Visualizing Data using t-SNE": https://www.jmlr.org/papers/v9/vandermaaten08a.html
Tóm tắt một câu: Giảm chiều là kỹ thuật giảm số biến trong khi tối thiểu hóa mất mát thông tin nhằm giảm nhẹ lời nguyền chiều dữ liệu, được chia thành lựa chọn đặc trưng dễ diễn giải và trích xuất đặc trưng nén vượt trội (PCA·LDA·t-SNE·autoencoder), và được lựa chọn theo tính chất dữ liệu·mục đích·yêu cầu diễn giải, áp dụng cùng việc ngăn rò rỉ dữ liệu·quản lý đánh đổi.