Nội dung bài viết
© 2025 AI VIET NAM. All rights reserved.
Tác giả: AI VIET NAM (AI VIET NAM)
Keywords: KNN văn bản, IMDB classification, TF-IDF, Cosine similarity, NLP cơ bản
Khi mới học Machine Learning (thuộc nhóm kiến thức nền ở Module 4 – Classification), nhiều bạn đã quen với việc KNN dùng khoảng cách Euclidean cho dữ liệu dạng số.
Nhưng khi sang dữ liệu văn bản như IMDB review:
khoảng cáchĐiều này khiến nhiều người bối rối:
Làm sao KNN hoạt động trên văn bản nếu đầu vào không phải số?Câu trả lời nằm ở bước: biến văn bản thành vector đặc trưng.
KNN không làm việc trực tiếp với chuỗi chữ.
KNN chỉ hoạt động khi mỗi văn bản được biểu diễn thành một vector số.
Quy trình thường diễn ra qua 3 bước chính:
Đây là bước quan trọng nhất.
Mô hình classification truyền thống như KNN sẽ dùng các kỹ thuật biểu diễn văn bản thuộc nhóm kiến thức NLP cơ bản (Module 10 – Tokenization & Embedding).
Các cách phổ biến:
Bag-of-Words (BoW)
TF-IDF
theismovieEmbedding (Word2Vec, FastText)
Sentence Embeddings (BERT, SBERT)
Sau khi mỗi văn bản trở thành một vector, KNN hoạt động giống hệt như bài toán số:
Các loại khoảng cách phổ biến:
Cosine Similarity (được dùng nhiều nhất cho văn bản)
Vì văn bản thường được biểu diễn bằng TF-IDF hoặc embedding, cosine phù hợp hơn Euclidean.
Nó đo mức độ giống nhau về hướng giữa hai vector văn bản, thay vì độ dài.
Euclidean Distance
Ít dùng hơn cho văn bản vì không phản ánh ý nghĩa tốt như cosine.
Sau khi lấy được k văn bản gần nhất:
positivenegativeIMDB thường là bài toán sentiment 2 lớp nên voting khá rõ ràng.
Giả sử bạn có câu review mới:
This movie was surprisingly good and touching.Pipeline KNN có thể như sau:
gần nhấtMô hình không cần huấn luyện nặng, đúng bản chất lazy learner của KNN.
KNN không phải lựa chọn mạnh nhất cho bài toán văn bản, nhưng lại phù hợp trong một số trường hợp:
✔ Khi bạn muốn baseline nhanh
✔ Khi dataset nhỏ hoặc vừa
IMDB đầy đủ 50k review thì vẫn chạy được với tối ưu vector hóa.
✔ Khi muốn so sánh với mô hình truyền thống
Giúp bạn hiểu sự khác biệt giữa ML truyền thống và DL (Module 7 – Deep Learning 1).
✔ Khi ứng dụng yêu cầu mô hình dễ giải thích
decision boundary của KNN trực quan hơn mạng sâu.
✦ Chi phí tính toán lớn
KNN phải tính khoảng cách với toàn bộ dữ liệu mỗi khi dự đoán.
✦ Dữ liệu nhiều chiều
BoW/TF-IDF có thể lên đến hàng chục nghìn chiều → tính toán nặng.
✦ Nhạy cảm với nhiễu
Nếu vector hóa không tốt, performance giảm mạnh.
✦ Không phù hợp cho dữ liệu rất lớn
Cần thêm kỹ thuật tối ưu như KD-tree, Approximate Nearest Neighbor, hoặc giảm chiều (PCA, Truncated SVD – liên hệ Module 5: optimization & giảm chiều).
Nếu bạn đang bắt đầu với NLP:
Những bài thực nghiệm đơn giản này giúp bạn hiểu pipeline NLP một cách tự nhiên hơn.