KNN (K-Nearest Neighbors) được áp dụng cho bài toán phân loại văn bản (IMDB) như thế nào?

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

Vì sao nhiều bạn cảm thấy KNN “xa lạ” khi chuyển từ bài toán số sang bài toán văn 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:

  • Từ ngữ không có dạng số tự nhiên
  • Không thể đo khoảng cách giữa hai câu bằng cách trừ phần tử
  • Văn bản dài ngắn khác nhau
  • Mỗi câu có hàng nghìn từ khác nhau

Đ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.

Cách KNN được áp dụng cho Text Classification

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:

Biểu diễn văn bản thành vector (Feature Representation)

Đây là bước quan trọng nhất.
Các kỹ thuật biểu diễn văn bản phổ biến (thuộc Module 10 – NLP) gồm:

  • Bag-of-Words (BoW)
  • TF-IDF
  • Word Embedding (Word2Vec, FastText)
  • Sentence Embedding (BERT, SBERT)

Mỗi văn bản sau bước này sẽ trở thành một vector trong không gian nhiều chiều.

Tính khoảng cách giữa các văn bản

Sau khi đã có vector:

  • Tính khoảng cách giữa văn bản mới và toàn bộ văn bản huấn luyện
  • Chọn k hàng xóm gần nhất

Khoảng cách phổ biến:

  • Cosine Similarity (phổ biến nhất trong NLP)
  • Euclidean Distance (ít phù hợp hơn)

Bỏ phiếu dự đoán lớp (Majority Voting)

Dựa trên k văn bản gần nhất:

  • Nếu đa số là positive → dự đoán positive
  • Nếu đa số là negative → dự đoán negative

Đúng bản chất lazy learner của KNN.

Ví dụ: KNN cho IMDB Review

Review mới:

This movie was surprisingly good and touching.

Pipeline:

  • Vector hóa bằng TF-IDF
  • Vector hóa review mới
  • Tính cosine similarity với toàn bộ tập dữ liệu
  • Lấy k văn bản gần nhất
  • Bỏ phiếu để ra nhãn dự đoán

KNN trong dự án NLP: Khi nào phù hợp?

KNN phù hợp khi:

  • Cần baseline nhanh
  • Dataset nhỏ hoặc vừa
  • Muốn mô hình dễ giải thích
  • Cần thử nghiệm pipeline NLP đơn giản

Hạn chế cần lưu ý

  • Chi phí tính toán lớn khi dự đoán
  • Dữ liệu nhiều chiều (BoW/TF-IDF)
  • Nhạy cảm với nhiễu
  • Không phù hợp cho tập dữ liệu rất lớn
  • Có thể cần PCA, SVD hoặc ANN để tối ưu

Gợi ý học thuật chung cho người mới

Bạn có thể thử:

  • TF-IDF + KNN vs Embedding + KNN
  • thay đổi k → quan sát độ chính xác
  • dùng Cosine thay Euclidean → cảm nhận sự khác biệt

Các thử nghiệm nhỏ giúp hiểu rõ pipeline NLP thực tế.

Tài nguyên học AI: