MỞ ĐẦU 1. Bối cảnh nghiên cứu Trong các ứng dụng hiện đại ngày nay như báo mạng, diễn đàn, mạng xã hội, thương mại điện tử, v.v, dữ liệu được sinh ra liên tục và có thể thu thập trong vô hạn các tập dữ liệu nhỏ (mini-batch). Chúng được biết đến như môi trường luồng. Khả năng phân tích dữ liệu từ môi trường luồng đóng vai trò quan trọng trong thực tế.
Dựa trên kết quả phân tích liên tục từ các dữ liệu mới đến, chúng ta có thể thu được các đặc trưng, khuôn mẫu mới để sử dụng cho các phán đoán tương lai. Ví dụ, thông tin tương tác của người dùng trên các trang thương mại điện tử như xem các sản phẩm, thêm sản phẩm vào giỏ hàng, mua các sản phẩm, v.v, được thu thập để phân tích sở thích ngắn hạn và dài hạn của người dùng. Từ đó, hệ thống có thể đưa ra gợi ý các sản phẩm phù hợp tiếp theo cho họ. Phát triển một phương pháp học máy hiệu quả cho luồng dữ liệu đã trở nên vô cùng cấp thiết.
Các phương pháp học máy trong môi trường luồng dữ liệu có các đặc điểm khác biệt rõ ràng so với học máy truyền thống [5, 6, 7]. Học máy truyền thống thường thực hiện quá trình học từ một tập dữ liệu cố định và có thể dùng toàn bộ tập dữ liệu đó tại thời điểm học. Mô hình sau khi huấn luyện sẽ được sử dụng trong các phán đoán tương lai và không được cập nhật về sau. Trong khi đó, do dữ liệu đến liên tục trong môi trường luồng, các phương pháp học cần phải phải cập nhật mô hình liên tục trên dữ liệu mới.
Đặc biệt, khi dữ liệu đến có thể rất lớn và vô hạn, các phương pháp học máy không thể dùng lại quá nhiều dữ liệu trong quá khứ. Thay vì học trên một tập dữ liệu cố định, các phương pháp học luồng thường dựa theo một thủ tục lặp: Thu thập dữ liệu mới xuất hiện (theo khoảng thời gian hoặc kích thước tập dữ liệu) và cập nhật mô hình trên dữ liệu mới đó. Các chiến lược học nhanh trên dữ liệu mới và giữ lại tri thức đã học từ dữ liệu cũ trở thành yếu tố cốt lõi trong các phương pháp học luồng. Một số cách tiếp cận đã được sử dụng phổ biến trong học luồng dữ liệu như sau: Sử dụng chiến lược tối ưu hóa ngẫu nhiên (stochastic approximation), đệ quy Bayes (recursive Bayesian strategy), hiệu chỉnh (regularization), chiến lược mở rộng kiến trúc (architecture strategy), chiến lược huấn luyện lại (rehearsal strategy).
Đầu tiên, hướng tối ưu hóa ngẫu nhiên [5, 8, 9, 10, 11] sử dụng 1 các phương pháp tối ưu ngẫu nhiên như dựa trên hướng đạo hàm (như SGD (stochastic gradient descent), NSGD (natural stochastic gradient descent)) để có thể huấn luyện các mô hình trên lần lượt từng mini-batch. Thứ hai, cách tiếp cận dựa trên đệ quy Bayes (recursive Bayesian strategy) [12, 13, 1, 14, 4] và hiệu chỉnh [7, 15, 16] đặt các ràng buộc để giúp tham số mô hình học ở thời điểm hiện tại phải gần với tham số mô hình đã học được ở thời điểm trước đó. Thứ ba, chiến lược mở rộng kiến trúc (architecture strategy) [7, 6, 17] hướng tới giữ lại (đóng băng) các thành phần kiến trúc, tham số quan trọng mà học được từ dữ liệu quá khứ. Đồng thời, kiến trúc sẽ được mở rộng để học các đặc trưng mới từ dữ liệu mới.
Cuối cùng, chiến lược huấn luyện lại (rehearsal strategy) [7, 18, 19] sẽ dựa trên việc lưu trữ một số mẫu quan trọng hoặc xây dựng mô hình sinh để sinh lại các mẫu đặc trưng. Từ đó, mô hình sẽ được học trên cả dữ liệu mới và dữ liệu cũ. Các chiến lược này có thể giúp các phương pháp học máy truyền thống làm việc được trong môi trường luồng. Một số thách thức khi học từ luồng dữ liệu Tuy nhiên, việc xây dựng phương pháp học máy để giúp chuyển từ học trong môi trường tĩnh sang làm việc được với luồng dữ liệu là chưa đủ.
Luồng dữ liệu đặt ra nhiều thách thức hơn thế rất nhiều [20], ví dụ: Thách thức từ dữ liệu thưa và nhiễu; thách thức về tính khó (intractability) của bài toán suy diễn; thách thức về sự thay đổi đột ngột trong dòng; thách thức về quên nghiêm trọng tri thức cũ; thách thức về những đảm bảo lý thuyết của giải thuật học, v. Luận án này tập trung vào khảo sát 3 thách thức lớn sau: Thách thức từ luồng dữ liệu thưa và nhiễu (sparse and noisy data), thách thức từ sự thay đổi đột ngột trong luồng dữ liệu (concept drifts), thách thức từ việc quên tri thức cũ khi học trên dữ liệu mới (catastrophic forgetting). Thứ nhất, dữ liệu thưa và nhiễu (sparse and noisy data) gây ra khó khăn lớn cho các phương pháp học máy [21, 22, 23]. Những dữ liệu thưa và nhiễu xuất hiện phổ biến trong thực tế, đặc biệt với thời đại bùng nổ dữ liệu như hiện nay.
Ví dụ, văn bản ngắn chỉ bao gồm một vài từ như bình luận trên mạng xã hội, phản ứng của khách hàng trên các cửa hàng trực tuyến hoặc câu hỏi trên các diễn đàn hỏi đáp. Biểu diễn của văn bản theo vectơ từ (như mô hình túi từ, tần suất xuất hiện) là rất thưa khi mà hầu hết các giá trị của các chiều bằng 0, chỉ vài chiều có giá trị khác 0. Mặt khác, các văn bản nhiễu chứa các từ viết tắt, biệt ngữ, từ lóng, lỗi chính tả. Ví dụ khác với hệ gợi ý, các phương pháp học máy thường sử dụng dữ liệu lịch sử tương tác của người dùng như mua hàng, 2 xem hàng để phát hiện ra sở thích của người dùng.
Tuy nhiên, lịch sử mua hàng của người dùng trong một hệ thống thương mại điện tử thường rất ít so với một số lượng lớn các sản phẩm trong hệ thống. Hầu hết người dùng chỉ mua một vài món hàng, chỉ một số ít người dùng mua nhiều hàng. Độ thưa thống kê dựa trên tỉ lệ số lượng sản phẩm chưa mua trên tổng số sản phẩm thường lên tới trên 99% [24, 25]. Họ chỉ thực hiện các thao tác nhấp chuột để xem sản phẩm nhiều hơn là mua sản phẩm.
Hơn nữa, dữ liệu nhấp chuột xem hàng của người dùng có thể chứa nhiễu như nhấp chuột nhầm, nhấp vào sản phẩm không thích vì chưa xem được chi tiết. Rõ ràng, dữ liệu thưa không cung cấp một ngữ cảnh đầy đủ và dữ liệu nhiễu có thể định hướng sai việc học mô hình. Vì vậy, tính tổng quát hóa của mô hình học được sẽ bị giới hạn khi làm việc với dữ liệu thưa và nhiễu. Thứ hai, sự thay đổi đột ngột của luồng dữ liệu (concept drifts) [26, 27] có thể xuất hiện thường xuyên trong môi trường luồng.
Sự thay đổi đột ngột để chỉ sự biến đổi phân phối dữ liệu (p(x)) hoặc thay đổi phân phối xác suất có điều kiện của nhãn khi cho biết trước dữ liệu (p(y|x)) trong môi trường luồng. Ví dụ, trong học chủ đề ẩn không giám sát trên tập dữ liệu tin tức, khi có sự kiện mới (như các tin giật gân) xuất hiện, các chủ đề mới khác biệt nhiều với các chủ đề của ngày trước đó sẽ xuất hiện. Hoặc, trong bài toán lái ô tô tự động có giám sát, hệ thống vẫn phải quyết định các hành động tiếp theo (nhãn là sang trái, sang phải, tăng tốc, giảm tốc, v.v) khi xe chuyển từ đường cao tốc sang đường nội đô. Những ví dụ này chỉ ra sự thay đổi đột ngột của dữ liệu trong dòng và dẫn tới yêu cầu các phương pháp phải thích nghi nhanh với sự thay đổi.
Tuy nhiên, các phương pháp truyền thống thường giả thiết rằng chỉ có một mô hình duy nhất sinh ra toàn bộ dữ liệu (tương tự giả thiết p(x) không đổi trong toàn bộ quá trình học). Giả thiết này chỉ hợp lý với môi trường tĩnh, nhưng không phù hợp với môi trường luồng dữ liệu. Mô hình nên được thay đổi phù hợp theo các khoảng thời gian. Những đặc trưng mới có thể xuất hiện bất cứ lúc nào trong luồng dữ liệu nên một phương pháp học cần mềm dẻo để thích nghi nhanh với chúng.
Thứ ba, việc huấn luyện một mô hình học máy trong môi trường luồng dữ liệu gặp phải một thách thức lớn về việc quên tri thức đã học (catastrophic forgetting) trước đây sau khi học từ nhiều dữ liệu mới hơn. Trong điều kiện luồng dữ liệu, việc truy cập lại dữ liệu cũ là không thực tế vì nó đòi hỏi rất nhiều bộ nhớ và tính toán. Rõ ràng, quên là một vấn đề khó tránh khỏi ở cả con người và hệ thống học máy. Giữ tri thức quá khứ là quan trọng trong thực tế.
Nguồn tri thức học từ dữ liệu quá khứ sẽ giúp phương pháp làm việc tốt với dữ 3 liệu có đặc trưng, khuôn mẫu tương tự với cái đã gặp trước đó. Hiện tượng quên nghiêm trọng tri thức cũ [28] xảy ra khi một mô hình đã huấn luyện làm việc kém trên dữ liệu với đặc trưng đã gặp trong quá khứ. Một điều đáng ngạc nhiên rằng vấn đề quên nghiêm trọng lại không được quan tâm nhiều trong học luồng dữ liệu. Đây là chủ đề chính trong nhánh nghiên cứu học liên tục (continual learning) [29, 30, 15, 31] mà ở đó người ta xem xét học mạng nơ-ron nhân tạo trên một chuỗi nhiều tác vụ khác nhau.
Khi đó, các mô hình học máy thường bị quên (không làm việc tốt với tác vụ cũ như trước) khi học các tác vụ mới. Trong một bài báo gần đây [19], các tác giả cũng bày tỏ sự ngạc nhiên của mình về vấn đề này. Sau đó, họ xây dựng một phương pháp tìm ra những dữ liệu quan trọng để lưu trữ lại trong bộ nhớ đệm cho quá trình học lại. Việc tránh quên nằm ở chỗ luyện tập lại trên dữ liệu quá khứ.
Tuy nhiên, giải pháp lưu trữ dường như cũng kém khả thi khi luồng dữ liệu lớn và có thể đến vô hạn. Phạm vi nghiên cứu Phát triển các phương pháp học cho luồng dữ liệu là chủ đề lớn trong học máy để giúp cho các mô hình truyền thống làm việc tốt với luồng dữ liệu. Luận án này chỉ tập trung vào xây dựng các phương pháp học cho lớp các mô hình Bayes mà sử dụng ngôn ngữ xác suất để mã hóa các giả thiết về dữ liệu. Cụ thể hơn, luận án tập trung vào các giải pháp để giúp học mô hình Bayes hiệu quả khi đối diện với 3 thách thức: Luồng dữ liệu thưa và nhiễu; sự thay đổi đột ngột trong luồng dữ liệu; và vấn đề quên nghiêm trọng tri thức cũ khi học trong luồng dữ liệu.