Tổ hợp của tổ hợp của tổ hợp: Hướng dẫn chi tiết về Stacking trong Machine Learning
Trong thế giới Machine Learning cạnh tranh khốc liệt, mô hình tốt nhất thường không phải là một mô hình đơn lẻ. Bài viết này sẽ hướng dẫn bạn về kỹ thuật Stacking nhiều lớp (Multi-layer Stacking), giúp kết hợp sức mạnh của các thuật toán khác nhau để tối ưu hóa hiệu suất dự đoán trên dữ liệu dạng bảng và chuỗi thời gian.

Tương tự như công thức 1 (F1), Machine Learning cũng là một cuộc đua siêu cạnh tranh, nơi kỹ thuật xây dựng ensemble (tổ hợp mô hình) quyết định thắng thua. Sự khác biệt dù chỉ là một chút cải thiện về thời gian hoàn thành vòng đua hay điểm số mất mát (loss score) cũng có thể quy đổi thành hàng triệu đô la cho đội chiến thắng. Không chỉ mỗi thành phần của hệ thống cần hoàn hảo, mà cách kết nối chúng lại với nhau cũng phải hoàn hảo tuyệt đối.
Tiêu chuẩn hiện tại
Mô hình Gradient Boosted (Gradient Boosted Models) từ lâu đã được coi là những mô hình cạnh tranh nhất cho các bài toán dự đoán dữ liệu dạng bảng (tabular) và chuỗi thời gian. Đây là các phương pháp ensemble vì chúng kết hợp kết quả từ nhiều ước tính cơ sở để đưa ra câu trả lời cuối cùng tốt hơn bất kỳ dự đoán đơn lẻ nào.
Tuy nhiên, trạng thái nghệ thuật này đang bắt đầu thay đổi. Các mô hình được huấn luyện trước (pre-trained models) như TabPFN cho dữ liệu dạng bảng và Chronos cho chuỗi thời gian đang bắt đầu sánh ngang hoặc vượt qua các mô hình gradient boosted trên một số điểm chuẩn nhất định. Theo một cách nào đó, đây cũng là các phương pháp ensemble, ngoại trừ việc thay vì kết hợp nhiều dự đoán, chúng là ensemble của dữ liệu mà chúng học từ đó. Trực giác đằng sau điều này có thể áp dụng rộng rãi và có thể được đưa xa hơn.
Hiện nay, có hai cách tiếp cận hoàn toàn khác nhau đang cạnh tranh cho vị trí dẫn đầu trên các bảng xếp hạng ML, theo sau bởi hàng chục kiến trúc khác nhau có thế mạnh và điểm yếu riêng. Vì chúng học theo những cách khác nhau và học từ các dữ liệu khác nhau, tất cả đều có thể được sử dụng cùng nhau trong một ensemble bổ sung giữ lại phần lớn thế mạnh đồng thời loại bỏ phần lớn điểm yếu. Nếu thực hiện đúng cách, điều này gần như luôn dẫn đến hiệu suất tốt hơn và một mô hình mạnh mẽ hơn.
Các khẳng định và giả định
Các chiến lược tương tự được sử dụng để xác định dữ liệu nào quan trọng để đưa ra một dự đoán nhất định cũng có thể được sử dụng để xác định mô hình nào quan trọng cho dự đoán đó. Giống như cách kết hợp các ước tính cơ sở trong các mô hình gradient boosted tốt hơn một ước tính đơn lẻ, sự kết hợp của nhiều mô hình sẽ tốt hơn một mô hình.
Trong phần thảo luận còn lại, có một giả định lớn rằng tất cả dữ liệu đúng đều được sử dụng trong quá trình mô hình hóa. Nói cách khác, tất cả thông tin liên quan đều được biết tại thời điểm t (hoặc trong quá trình suy luận). Trong khoa học dữ liệu, đây không phải là một giả định tầm thường, và việc làm sai điều này sẽ largely làm vô hiệu hóa các tuyên bố được đưa ra. Hóa ra, phần lớn công việc trong khoa học dữ liệu chỉ là cố gắng thỏa mãn giả định này với dữ liệu ở đúng định dạng.
Cũng lưu ý rằng các hiệp biến/thuộc tính (covariates/features) được hiển thị cho các mô hình không cố định vì các kiến trúc khác nhau hoạt động tốt hơn với các dữ liệu khác nhau và có thể không thể xử lý một số loại dữ liệu nhất định (đây sẽ là một điểm đặc biệt liên quan để giải quyết cho các mô hình lai ngôn ngữ/số pre-trained, hiện vẫn đang ở giai đoạn phát triển sơ khai).
Stacking Đa Lớp (Multi-Layer Stacking)
Một cách tiếp cận tổng quát có thể được sửa đổi cho các bài toán hồi quy/phân loại dạng bảng hoặc chuỗi thời gian.
Lớp 1 (Layer 1)
Có nhiều cách để tạo ra các phương pháp ensemble, và việc sắp xếp các bước này thành các lớp là hợp lý nhất. Lớp đầu tiên là tập hợp các mô hình cơ sở (ví dụ: CatBoost, MLPs, TabPFN, v.v.).
Đối với các bài toán dạng bảng, các mô hình này có thể được huấn luyện với kỹ thuật tổng hợp bootstrap (bootstrap aggregation), nơi các tập huấn luyện mới được tạo ra bằng cách lấy mẫu từ tập huấn luyện cơ sở có thay thế. Sau đó, các mô hình riêng lẻ được huấn luyện trên mỗi tập mới và dự đoán của chúng được lấy trung bình. Việc tối ưu hóa siêu tham số cũng có thể được thực hiện cho từng mô hình này, mặc dù việc này tốn kém về mặt tính toán hơn nhiều vì mỗi mô hình cho mỗi mẫu (hoặc "túi") được huấn luyện lại nhiều lần. Để giảm thời gian huấn luyện, một bộ lập lịch tối ưu hóa siêu tham số như Optuna có thể được sử dụng để các lần chạy mô hình không hoạt động tốt bị cắt ngắn, và một cực tiểu địa phương có thể được xác định nhanh hơn bằng cách sử dụng một số thủ thuật tối ưu hóa thống kê. Ngoài ra, một số cài đặt sẵn siêu tham số có thể được sử dụng cho mỗi mô hình dựa trên những gì thường hoạt động tốt cho mô hình đó trên các tập dữ liệu tương tự. Các mô hình khác nhau với các cài đặt sẵn khác nhau có thể được lấy trung bình để "đại diện" cho một mô hình, hoặc chúng có thể được đăng ký dưới dạng các phiên bản khác nhau của mô hình và được sử dụng trong lớp tiếp theo.
Đối với dự báo chuỗi thời gian, việc bootstrap truyền thống trở thành một vấn đề. Vì chiều thời gian phải được tôn trọng, quy trình không thể ngẫu nhiên phá vỡ dữ liệu này và lấy mẫu lại để tạo ra các tập huấn luyện mới. Thay vào đó, xác thực chéo (cross-validation) nên được thực hiện với một cửa sổ trượt (rolling window) qua thời gian. Đối với quy trình này, một mô hình mới được tạo ra để dự đoán trên một cửa sổ xác thực với các dấu thời gian nghiêm ngặt sau những dấu thời gian có mặt trong tập huấn luyện. Sau khi huấn luyện và đánh giá, cửa sổ xác thực đó được thêm vào tập huấn luyện và quy trình được lặp lại cho đoạn thời gian tiếp theo (cửa sổ xác thực tiếp theo). Điều này cho một ý tưởng tốt về việc mô hình hoạt động tốt như thế nào theo thời gian, nhưng các mô hình thường không được ensemble trong bước này. Vì dữ liệu chuỗi thời gian gần đây thường mang nhiều thông tin nhất, chỉ có mô hình được huấn luyện ở bước cuối cùng được sử dụng để suy luận. Tuy nhiên, các dự đoán out-of-fold từ các cửa sổ trước đó vẫn có thể được sử dụng trong lớp tiếp theo.
Lớp 2 (Layer 2)
Sau khi huấn luyện các mô hình cơ sở, các chỉ số đánh giá trên tập huấn luyện và tập xác định là có sẵn. Đối với tất cả các bước trung gian, tập kiểm tra (test set) nên hoàn toàn bị bỏ qua. Trong lớp 2, các chiến lược mới có thể được sử dụng vì hiệu suất mô hình đã được biết và các dự đoán vững chắc (hy vọng) đã được thực hiện.
Đối với các bài toán dạng bảng, một vòng thứ hai của các mô hình bagged có thể được huấn luyện trong đó các dự đoán của các mô hình lớp 1 được thêm vào dưới dạng các đặc trưng (features). Trong trường hợp một mô hình cơ sở hoạt động kém trên tập xác thực, nó có thể bị loại bỏ khỏi bước này.
Trong chuỗi thời gian, chiến lược tương tự không thể thực hiện được vì các mô hình lớp 1 không bao giờ đưa ra dự đoán cho toàn bộ tập huấn luyện. Điều này là không thể thực hiện vì sẽ không có dữ liệu để huấn luyện nhằm lấy dự đoán cho phần đầu của tập huấn luyện, và một mô hình đã được huấn luyện trên bất kỳ thứ gì sau đó không thể được sử dụng để lấy những dự đoán cần thiết để sử dụng làm đặc trưng trong mô hình. Một điều lưu ý là nếu kiến trúc của mô hình lớp 2 có thể xử lý các giá trị bị thiếu, hoặc chỉ một tập con của tập huấn luyện có dự đoán được sử dụng, thì một quá trình huấn luyện lại hoàn toàn (trên dữ liệu huấn luyện và dự đoán mô hình lớp 1) có thể được thực hiện tại lớp này. Mặc dù điều này là khả thi và có thể hữu ích, nhưng có những cách tiếp cận tinh tế hơn.
Vì hiệu suất mô hình đã được biết và các dự đoán đã được thực hiện, sự kết hợp của các dự đoán mô hình cơ sở có thể được sử dụng làm các bộ dự đoán mới. Có một số cách để làm điều này:
- Chỉ cần lấy trung bình tất cả chúng.
- Cân trọng số mỗi bộ dự đoán theo hiệu suất xác thực của nó và lấy trung bình chúng.
- Lấy một tổ hợp tuyến tính của tất cả các dự đoán tối thiểu hóa mất mát với bình phương tối thiểu thông thường (ordinary least squares).
- Thực hiện một ensemble tham lam (greedy ensemble) bắt đầu với mô hình hoạt động tốt nhất và từ từ thêm trọng số của các mô hình khác cho đến khi hiệu suất ngừng cải thiện.
- Nếu điều đó chưa đủ, một mô hình hoàn toàn có thể được huấn luyện thuần túy trên các dự đoán của các mô hình cơ sở (điều này thực sự chỉ hữu ích nếu có số lượng dự đoán out-of-fold đủ lớn).
Lưu ý rằng các cửa sổ xác thực của lớp 1 trở thành tập huấn luyện của lớp 2, vì vậy chỉ tập xác định cuối cùng của lớp 1 được sử dụng làm tập xác định của lớp 2. Thay vì cố gắng tìm ra cách tiếp cận đơn lẻ nào là tốt nhất, lớp 2 nên thử tất cả chúng vì các bước này hiệu quả về mặt tính toán.
Lớp 3 (Layer 3)
Đã đến lúc xếp chồng thêm các lớp... Cách tiếp cận dạng bảng mang lại các dự đoán từ một vòng khác của các mô hình bagged, và cách tiếp cận chuỗi thời gian mang lại các dự đoán của các chiến lược ensemble khác nhau. Lớp 3 sẽ chỉ sử dụng một trong các chiến lược ensemble được đề cập trong các ensemble chuỗi thời gian lớp 2 để tạo ra meta-model cuối cùng. Đây là mô hình nên được sử dụng để đánh giá trên tập kiểm tra, mặc dù đó là một ý tưởng tốt để xác minh rằng nó thực sự vượt trội hơn các mô hình cơ sở. Mô hình cuối cùng hầu như luôn sẽ thắng, và sẽ ít nhạy cảm hơn với các dự đoán xấu từ một mô hình đơn lẻ vì các dự đoán xấu có thể được giảm trọng số, và có xu hướng được lấy trung bình. Ngược lại, nếu một mô hình phát hiện ra một mô hình mà các mô hình khác không phát hiện ra, stack đa lớp có thể học cách khuếch đại các dự đoán đó. Các trường hợp duy nhất điều này không hiệu quả là nếu một mô hình luôn tốt hơn trên mọi mặt, điều này khá hiếm, hoặc một hoặc nhiều mô hình cơ sở khá tệ, trong trường hợp đó chúng nên bị loại bỏ hoàn toàn.
Có đáng để làm tất cả những điều này không?
Có lẽ. Nhược điểm của điều này là nó yêu cầu huấn luyện nhiều mô hình thay vì một. Nếu các tập dữ liệu đủ lớn, thời gian huấn luyện và suy luận có thể nhanh chóng trở thành một ràng buộc đối với một số ứng dụng. Lập luận phản biện là quy trình này có thể song song hóa cao độ, và các thuật toán hiệu quả có thể được sử dụng thay cho học sâu nếu cần. LightGBM nhanh hơn một cấp độ lớn so với học sâu và thường vẫn cạnh tranh.
Triết lý về việc ensemble các ensemble trong machine learning đã được phổ biến và áp dụng hoàn toàn bởi AutoGluon. Trên thực tế, đây là tiêu chuẩn thực tế cho dịch vụ AutoML của họ, và đội ngũ của họ đã đóng góp rất nhiều cho cả cộng đồng mã nguồn mở và nghiên cứu tiên tiến trong lĩnh vực này. Khi biên giới pre-training cho các transformer dạng bảng/chuỗi thời gian chưa được khám phá đầy đủ, hãy kỳ vọng sự đa dạng bổ sung của các mô hình trong tương lai sẽ càng làm tăng cường chiến lược này.
Có lý do tốt để tin rằng triết lý này sẽ tiếp tục chiến thắng, như nó đã làm trong nhiều lĩnh vực khác:
- Dân chủ là một ensemble của các quan chức được bầu chọn, và các quan chức được bầu chọn đại diện cho ensemble của cử tri của họ (ít nhất là về lý thuyết). Mặc dù không hoàn hảo, nó vẫn là hệ thống tốt nhất cho đến nay.
- Chẩn đoán y tế được cải thiện với nhiều ý kiến. Kết hợp các đánh giá từ nhiều bác sĩ X quang, bác sĩ bệnh học hoặc chuyên gia luôn giảm tỷ lệ chẩn đoán sai. Mỗi bác sĩ có thể phát hiện ra các mô hình hoặc trường hợp ngoại lệ khác nhau, và phán đoán kết hợp của họ đáng tin cậy hơn bất kỳ đánh giá cá nhân nào.
- Thậm chí thị trường chứng khoán cũng là một ensemble của niềm tin về tương lai. Mặc dù về mặt lịch sử, thông tin chứa trong các biến động của thị trường này không liên quan trực tiếp đến hầu hết mọi người, nhưng các thị trường dự đoán và nền tảng dự báo đang thay đổi điều này.
- Trong bản phát hành gần đây của Claude Code (Tháng 2 năm 2026), Anthropic đã giới thiệu các "đội ngũ tác nhân" (agent teams) cộng tác, nơi nhiều phiên bản Claude làm việc cùng nhau trên các nhiệm vụ, phối hợp thông qua danh sách nhiệm vụ chia sẻ và truyền thông ngang hàng. xAI sử dụng cách tiếp cận đa tác nhân tương tự với Grok 4 Heavy/Grok 4.20, nơi các tác nhân độc lập làm việc song song và "cross-validate" (kiểm tra chéo) giải pháp của nhau trước khi đi đến một câu trả lời cuối cùng.
Hóa ra làm việc nhóm là con đường đúng đắn. Các ensemble của ensemble của ensemble xuất hiện lặp đi lặp lại trong những hệ thống tốt nhất mà con người tạo ra, và lĩnh vực machine learning không ngoại lệ. Trong thời đại của trí tuệ, việc mở rộng ý tưởng này sẽ không còn là lựa chọn.
Bài viết liên quan

Phần mềm
Thay thế PySpark bằng 4 tệp YAML: Cách để các nhà phân tích xây dựng Data Pipeline mà không cần kỹ sư
29 tháng 4, 2026

Công nghệ
Startup Pursuit huy động 22 triệu USD để dùng AI hỗ trợ doanh nghiệp bán hàng cho chính phủ
29 tháng 4, 2026

Phần mềm
Google Photos biến tủ quần áo trong phim "Clueless" thành hiện thực nhờ AI
29 tháng 4, 2026
