Representation — tầng ẩn tự học ra đặc trưng dữ liệu
Tầng ẩn không giữ dữ liệu thô mà giữ cách biểu diễn hữu ích cho nhiệm vụ. Đây là gốc chung của embedding trong search và attention trong transformer.
TL;DR: Khi một mạng nơ-ron học một nhiệm vụ, thứ giá trị nhất không nằm ở đầu ra mà nằm ở giữa — những vector tầng ẩn mà mạng tự xây để mô tả dữ liệu theo cách hữu ích cho nhiệm vụ đang tối ưu. Đây là representation học được. Mạng tự quyết định giữ lại thứ gì qua quá trình giảm thiểu loss, không cần con người thiết kế từng đặc trưng. Vì representation phản ánh cấu trúc chung của dữ liệu chứ không gắn với một đầu ra cụ thể, nó có thể tái sử dụng — và đây chính là nền tảng chung của embedding trong semantic search lẫn attention trong transformer.
1. Khi model học task A, bài toán B thu lợi
Hãy bắt đầu từ một quan sát làm thay đổi cách nhìn về deep learning.
Một nhóm kỹ sư train mạng phân loại 1.000 loại hình ảnh — hoa, xe, thức ăn — trên hàng triệu ảnh. Xong, họ bỏ lớp phân loại cuối, gắn một lớp đầu ra mới, và fine-tune với vài trăm ảnh X-quang phổi để chẩn đoán bệnh. Nhiệm vụ hoàn toàn khác, lượng dữ liệu nhỏ hơn hàng nghìn lần. Kết quả vẫn tốt hơn hẳn training từ đầu.
Nếu lớp cuối (lớp phân loại) chứa quyết định "đây là hoa hay xe", và ta bỏ lớp đó đi — thì tri thức nào trong mạng đã được chuyển sang bài toán X-quang? Nó đang nằm ở đâu?
Tri thức đó nằm ở các tầng ẩn. Sau huấn luyện, mỗi tầng ẩn đã học cách biến đổi dữ liệu đầu vào thành một dạng biểu diễn — representation — phản ánh cấu trúc của dữ liệu theo cách hữu ích cho nhiệm vụ đang tối ưu. Góc cạnh, hình dạng, kết cấu bề mặt: những đặc điểm này có mặt trong ảnh hoa cũng như ảnh phổi. Representation học được từ task A vì thế vẫn có ích cho task B.
Thứ giá trị nhất không nằm ở đầu ra. Nó nằm ở giữa.
2. Mỗi lớp là một phép biến đổi — vector tầng ẩn là cách mạng nhìn dữ liệu
Mỗi lớp áp một phép biến đổi tuyến tính rồi qua hàm phi tuyến. Chính phi tuyến khiến nhiều lớp chồng nhau không gộp được thành một lớp đơn — mỗi lớp thực sự học thứ khác nhau.
Nhìn vào điều xảy ra với vector dữ liệu ở mỗi tầng. Dữ liệu đầu vào là một vector thô — các pixel của ảnh, hay các số đại diện cho từng từ trong câu. Qua lớp thứ nhất, vector đó biến thành một vector khác. Qua lớp thứ hai, biến đổi tiếp. Sau nhiều lớp, vector ở tầng ẩn cuối cùng là thứ mạng "thấy" khi nhìn dữ liệu đó.
Vector này không phải pixel gốc, cũng không phải nhãn phân loại. Nó là biểu diễn trung gian — cách mạng mã hóa thông tin về dữ liệu theo dạng hữu ích nhất cho nhiệm vụ đang tối ưu.

Hình trên cho thấy điều cốt lõi: cùng một vector representation có thể phục vụ nhiều đầu ra khác nhau mà không cần học lại từ đầu. Đây là lý do mà transfer learning hoạt động, và cũng là lý do mà embedding và attention đều xây trên cùng một nền.
Biểu diễn ở các tầng khác nhau có độ trừu tượng khác nhau: tầng đầu bắt tín hiệu bề mặt, tầng sâu hơn tổng hợp thành khái niệm cấp cao hơn — cấu trúc phân cấp nổi lên từ tối ưu, không phải thiết kế tường minh.
3. Feature người thiết kế và feature mạng tự học
Trước khi deep learning phổ biến, "đặc trưng" (feature) là thứ kỹ sư phải tự thiết kế. Bài toán phân loại email spam: kỹ sư đếm từ khoá đáng ngờ, tỉ lệ chữ hoa, số lượng link. Bài toán phân loại văn bản: kỹ sư xây bảng TF-IDF. Feature phản ánh hiểu biết của con người về bài toán — điểm mạnh là dễ giải thích, điểm yếu là bỏ sót pattern phức tạp mà con người không đặt tên được.
Deep learning đảo ngược điều này. Thay vì nói với mạng "hãy nhìn vào tỉ lệ chữ hoa", ta chỉ nói: "hãy phân biệt đúng/sai — tự tìm cách nhìn dữ liệu". Qua quá trình giảm thiểu loss, mạng tự khám phá đặc trưng hữu ích. Những đặc trưng này không nhất thiết có tên gọi trong từ điển của con người — chúng tồn tại như hướng trong không gian vector nhiều chiều.
Đây chính là điều khiến deep learning khác machine learning cổ điển về bản chất, không chỉ về độ chính xác.
Nhìn vào đoạn mô tả dưới đây. Với mỗi tầng trong mạng phân loại ticket hỗ trợ, hãy dự đoán loại thông tin nào có thể được bắt ở đó. Ghi nhận suy nghĩ trước, rồi đọc mục 4 để đối chiếu.
layer_1_output = transform(raw_text) /* bat: ??? */
layer_2_output = transform(layer_1_output) /* bat: ??? */
hidden_repr = transform(layer_2_output) /* tong hop: ??? */
4. Ví dụ: phân loại ticket hỗ trợ nội bộ
Hãy xét hệ thống phân loại ticket hỗ trợ trong một công ty phần mềm. Đầu vào là văn bản ticket, đầu ra là nhãn: billing (thanh toán) hoặc usage (cách dùng). Mạng gồm ba lớp ẩn, và sau khi huấn luyện:
Tầng 1 — tín hiệu bề mặt: Vector tầng đầu phân biệt từ khoá thường xuất hiện ("hoá đơn", "lỗi", "cách dùng"), độ dài câu, có chứa số tiền không — những tín hiệu gần với dữ liệu gốc mà kỹ sư cũng sẽ thiết kế thủ công.
Tầng 2 — tổ hợp khái niệm: Vector tầng hai bắt đầu tổng hợp: "câu ngắn + từ 'lỗi' + số tiền" gộp lại thành tín hiệu "có thể là khiếu nại về thanh toán". Những tổ hợp này mạng tự xây vì chúng hữu ích để giảm loss.
Tầng ẩn cuối — biểu diễn tổng hợp: Vector ở đây đã mã hóa "cách mạng hiểu ticket này" theo các trục chính của bài toán. Đây là representation học được — thứ có thể tái sử dụng cho nhiệm vụ khác mà không cần train lại từ đầu.
Đáp án cho bài tập tự điền ở mục 3:
layer_1_output = transform(raw_text) /* bat: tu khoa, do dai, so tien */
layer_2_output = transform(layer_1_output) /* bat: to hop tin hieu (kieu van de) */
hidden_repr = transform(layer_2_output) /* tong hop: bieu dien truc chinh billing/usage */
5. Ba hệ quả — representation mở ra những gì?
Representation học được không chỉ là thứ xảy ra bên trong mạng. Nó là nền tảng chung của hai công nghệ quan trọng nhất bạn sẽ gặp trong các module tiếp theo của khoá này.
5.1 Biểu diễn dùng lại được — nền của embedding
Nếu representation ở tầng ẩn đã mã hóa đủ thông tin, tôi không cần lớp đầu ra nữa — tôi chỉ cần vector đó. Rồi so sánh hai vector bằng cosine similarity để biết hai mẫu "giống nhau" đến mức nào theo tiêu chí mạng đã học.
Đây chính xác là điều embedding làm: đưa dữ liệu thô vào mạng, lấy vector tầng ẩn làm đầu ra, rồi dùng vector đó để tìm kiếm, gom nhóm, hay so sánh. Văn bản "Hoá đơn tháng 3 chưa được xử lý" và "Tôi vẫn chưa nhận được thanh toán" có thể cho hai vector rất gần nhau trong không gian embedding nếu mạng đã học rằng cả hai nói về cùng loại vấn đề.
Bài 01 — Embedding và không gian nghĩa trong module 5 mổ xẻ cơ chế này: văn bản biến thành vector, các vector nằm trong cùng một không gian toán học, và "khoảng cách" trong không gian đó phản ánh sự tương đồng theo tiêu chí mạng học được.
5.2 Gần nhau trong không gian = giống nhau theo tiêu chí mạng học — không phải theo cảm nhận người
Đây là điểm tinh tế hay gây hiểu lầm nhất khi làm việc với embedding trong thực tế.
Khi ta nói "hai văn bản có embedding gần nhau", "gần" không có nghĩa tuyệt đối — nó có nghĩa theo tiêu chí mà model đó đã tối ưu. Model được train để phân loại chủ đề sẽ coi "Hợp đồng ký tháng trước" và "Hoá đơn cần thanh toán" là gần nhau (cùng thuộc nhóm tài chính). Nhưng model được train để phân tích cảm xúc lại coi "Sản phẩm tuyệt vời" và "Dịch vụ xuất sắc" là gần nhau dù chúng nói về hai thứ hoàn toàn khác nhau về nội dung.
Cùng hai câu văn, hai model khác nhau cho hai khoảng cách khác nhau. Đây là mầm của mọi hiểu lầm về semantic search: người dùng tìm "câu tương tự về nghĩa" nhưng model lại trả về "câu tương tự theo tiêu chí huấn luyện của model". Module 5 khai thác tiếp điểm này khi phân tích cosine similarity và các trường hợp semantic search thất bại.
5.3 Attention thao tác trên chính các vector representation
Trong transformer (module 4), mỗi token không tồn tại như chữ gốc mà như một vector representation. Attention là cơ chế trộn các vector này theo ngữ cảnh — cho phép representation của một token cập nhật dựa trên representation của các token khác trong cùng chuỗi.
Attention không thao tác trên từ "hoá" hay "đơn" mà thao tác trên vector biểu diễn của chúng. Hiểu representation là gì là điều kiện để module 4 có ý nghĩa cơ chế, không chỉ là công thức toán.
6. Cảnh báo: representation không phải "hiểu"
Bài 06 module 1 nhắc lại: pretraining là self-supervised — nhãn tự sinh từ chính văn bản, không cần người gán. Mọi thứ model biết đều nằm trong trọng số được tối ưu để giảm một loss cụ thể trên một tập dữ liệu cụ thể.
Representation là thứ mạng học được để tối ưu nhiệm vụ huấn luyện. Không hơn, không kém. Khi nhiệm vụ thay đổi, thứ được giữ lại trong representation cũng thay đổi — model train để phân loại chủ đề không học representation hữu ích cho phân tích cảm xúc, dù cả hai xử lý cùng loại văn bản.
Model ngôn ngữ lớn được tối ưu cho next-token prediction. Representation nó xây hữu ích để tạo ra văn bản tiếp diễn mượt mà — không phải để nhớ sự thật. Khi model sinh ra câu nghe hợp lý nhưng sai về thực tế, đó là hệ quả trực tiếp của nhiệm vụ huấn luyện, không phải lỗi ngẫu nhiên.
7. Ba cái bẫy thường gặp
Bẫy 1 — Đọc nghĩa từng chiều vector: Người mới thường hỏi "chiều 42 của vector nghĩa là gì?" Thực tế không có sự tương ứng một-một giữa một chiều vector và một khái niệm con người đặt tên. Representation là cấu trúc phân tán qua toàn bộ không gian vector — một khái niệm tồn tại như một hướng trong không gian nhiều chiều, không phải như một ô riêng lẻ có thể đọc riêng.
Bẫy 2 — Coi mỗi neuron ứng với một khái niệm: Đây là đơn giản hoá nghiêm trọng. Một neuron thường phản ứng với nhiều thứ tuỳ ngữ cảnh, và một khái niệm thường kích hoạt nhiều neuron cùng lúc — hiện tượng superposition. Đọc từng neuron riêng lẻ không tiết lộ được khái niệm mà mạng đang dùng.
Bẫy 3 — So vector giữa hai model khác nhau: Mỗi model học một không gian representation riêng — các trục và hướng không có nghĩa giữa hai không gian khác nhau. Lấy embedding từ model A và tìm kiếm trong index xây bởi model B sẽ cho kết quả vô nghĩa dù cùng kích thước vector. Module 5 sẽ trở lại bẫy này khi nói về semantic search failure modes.
8. Đào sâu
Hai bài báo này đặt nền lý thuyết cho mọi thứ vừa đọc:
-
Bengio, Courville & Vincent (2013) — Representation Learning: A Review and New Perspectives — arXiv:1206.5538. Tổng quan toàn diện nhất về học biểu diễn: tại sao representation quan trọng, các cách học unsupervised, và câu hỏi về disentanglement (tách rời các nhân tố ẩn tạo ra dữ liệu). Abstract và Section 1 đã đủ bức tranh tổng thể trong 30 phút.
-
Mikolov et al. (2013) — Efficient Estimation of Word Representations in Vector Space — arXiv:1301.3781. Bài báo giới thiệu Word2Vec: kiến trúc học word embedding từ văn bản quy mô lớn, kèm minh chứng rằng phép tính số học trên vector ("king" trừ "man" cộng "woman" gần bằng "queen") là khả thi. Đây là ví dụ kinh điển chứng minh representation học được mang cấu trúc có ý nghĩa.
9. Liên hệ các bài khác
-
Bài 02 — Xếp lớp và phi tuyến: giải thích tại sao phi tuyến là điều kiện để mỗi lớp học đặc trưng khác nhau — không có phi tuyến, nhiều lớp chồng lên nhau vẫn chỉ là một phép biến đổi tuyến tính, representation không phân cấp được.
-
Module 5 — Bài 01: Embedding và không gian nghĩa: representation học được là nền của embedding; bài đó giải thích cách vector tầng ẩn phục vụ semantic search và khi nào nó hoạt động hay thất bại.
-
Module 5 — Bài 02: Cosine similarity: đo "gần nhau" trong không gian representation — áp dụng trực tiếp điểm 5.2 ở trên về tiêu chí do model định nghĩa.
-
Module 4 — Transformer và attention (chưa có bài): attention thao tác trên vector representation của từng token, không phải token gốc — bài 06 này là điều kiện tiên quyết để cơ chế đó có ý nghĩa hơn là công thức toán.
10. Tóm tắt
- Lớp ẩn đầu bắt tín hiệu bề mặt; lớp ẩn sau tổng hợp thành khái niệm cấp cao — cấu trúc phân cấp nổi lên từ quá trình tối ưu, không phải do con người thiết kế.
- "Gần nhau" nghĩa là giống nhau theo tiêu chí mạng đã học — thay đổi nhiệm vụ huấn luyện thì "gần" cũng thay đổi.
- Representation không phải "hiểu": nó tối ưu cho nhiệm vụ huấn luyện; đổi nhiệm vụ thì representation hữu ích cũng đổi.
- Không so vector giữa hai model khác nhau: mỗi model có không gian riêng, không tương thích dù cùng kích thước output.
11. Tự kiểm tra
Q1Tại sao vector ở tầng ẩn cuối thường hữu ích hơn dữ liệu thô cho nhiều nhiệm vụ khác nhau?▸
Q2Sự khác nhau cốt lõi giữa feature engineering thủ công và representation học được là gì?▸
Q3Vì sao hai mẫu có embedding gần nhau không có nghĩa là chúng 'giống nhau' theo nghĩa người dùng hiểu?▸
Q4Tại sao không thể lấy embedding từ model A rồi tìm kiếm trong index xây bởi model B, dù cả hai có cùng kích thước vector?▸
Q5Representation của LLM được tối ưu cho nhiệm vụ nào? Điều đó giải thích hallucination ra sao?▸
Bài tiếp theo: Mini-challenge: chẩn đoán ba đường cong huấn luyện hỏng
Bài này đáng gửi cho bạn học cùng?
Copy link đã gắn nguồn — dán group, chat, hoặc LinkedIn.
Bài này có giúp bạn hiểu bản chất không?
Hỏi đáp về bài này
Chưa có câu hỏi
Có gì chưa rõ trong bài? Đặt câu hỏi đầu tiên — câu trả lời từ cộng đồng giúp bạn (và người sau).
Đặt câu hỏi đầu tiên