Chương 1 Giới thiệu Ngày nay lượng dữ liệu ở các doanh nghiệp được sinh ra liên tục và rất lớn. Với nhu cầu rút trích và sử dụng giá trị từ lượng dữ liệu lớn đó vào các hoạt động kinh doanh thường ngày của các doanh nghiệp. Thông thường, dữ liệu sinh ra sẽ được lưu trữ phân tán ở nhiều nơi và lúc cần sử dụng sẽ đưa những dữ liệu cần thiết về một nơi tập trung để tiến hành phân tích. Và các mô hình học máy ngày nay cũng được triển khai chủ yếu dựa vào kiến trúc đó, được gọi là mô hình học tập trung.
Nghĩa là, dữ liệu sinh ra và lưu trữ tại các nút biên cục bộ, sau đó dữ liệu sẽ được đưa về một nơi tập trung để thực hiện huấn luyện mô hình cũng như huấn luyện lại mô hình qua thời gian. Tuy nhiên vấn đề là nếu đưa tất cả lượng dữ liệu lớn được lưu trữ ở các nút cạnh đó về một nơi trung tâm để huấn luyện mô hình thì chi phí sẽ rất lớn và quá tải hệ thống. Chi phí tải, vận chuyển, lưu trữ, tính toán và thời gian xử lý, cũng như những giới hạn về băng thông sẽ là thách thức lớn khi triển khai theo cách tiếp cận này. Để giải quyết những vấn đề đó, kĩ thuật lấy mẫu sẽ được áp dụng.
Và trong ngữ cảnh dữ liệu lớn, nghiên cứu này đề xuất những giải pháp lấy mẫu đa luồng và trực tuyến tại các nút cạnh để tránh nút thắt cổ chai (bottleneck) và quá tải hệ thống nếu thực hiện đơn luồng. Không cần phải đưa toàn bộ dữ liệu về trung tâm huấn luyện, chỉ cần đưa một lượng nhỏ mẫu được chọn lọc nhưng vẫn đảm bảo tính chính xác của mô hình. Nghiên cứu đóng góp những điểm sau: 1.1 Đóng góp của nghiên cứu Kĩ thuật lấy mẫu đa luồng trên dữ liệu dòng: Những nghiên cứu về lấy mẫu cho dữ liệu dòng chủ yếu tập trung vào đơn luồng. Tuy nhiên trong thực tế dữ liệu được sinh ra đa luồng và làm thế nào để lấy mẫu trực tuyến trên mỗi luồng đó, để khi được kích hoạt, ngay lập tức những mẫu này sẽ được gửi về trung tâm để thực hiện phân tích và xây dựng mô hình.
Với vấn đề nên lựa chọn những mẫu nào ở mỗi dòng để mang lại giá trị tốt nhất cho mô hình ở trung tâm, nghiên cứu cứu đề xuất giải pháp Biased Reservoir Sampling. Giải pháp này tập trung vào việc ưu tiên những mẫu mà mô hình dự đoán sai để đưa về trung tâm cập nhật mô hình. Giải pháp cho vấn đề mất cân bằng dữ liệu giữa các dòng dữ liệu: Mặc dù giải quyết được vấn đề nên lựa chọn những mẫu nào ở mỗi dòng dữ liệu. Chúng ta cần phải xác định thêm mỗi dòng cần lấy là bao nhiêu, cụ thể trong trường hợp các dòng dữ liệu mất cân bằng, khi đó việc phân bố hợp lý số lượng cần lấy cho mỗi dòng là quan trọng để đảm bảo phân bổ dữ liệu trong tập mẫu so với tổng thể.
Để giải quyết vấn đề tối ưu trong phân bố số lượng dữ liệu cần lấy cho mỗi dòng, nghiên cứu đề xuất giải pháp Biased Stratified Reservoir Sampling, giải pháp này cũng ưu tiên lấy những mẫu mà mô hình dự đoán sai. Và sẽ có cơ chế giao tiếp giữa các vị 1 trí cục bộ với trung tâm để từ đó tính toán số lượng phân bổ cho mỗi dòng cho phù hợp.2 Nghiên cứu liên quan Có nhiều kiến trúc trong việc huấn luyện một mô hình học máy, học sâu. Có thể học theo mô hình phân tán, mang việc huấn luyện mô hình về cục bộ mỗi vị trí. Hoặc một cách khác có thể thực hiện huấn luyện ở một nơi trung tâm, nhưng chỉ sử dụng tập dữ liệu con từ tập dữ liệu tổng thể để phục vụ cho việc huấn luyện.
Ở nghiên cứu này, tác giả đã nghiên cứu vấn đề khi dữ liệu nằm phân tán ở nhiều vị trí khác nhau, và việc đưa dữ liệu về trung tâm bị hạn chế bởi giới hạn của băng thông. Để giải quyết vấn đề đó, nghiên cứu đã đề xuất các phương pháp lấy mẫu như lấy theo một cách đồng bộ (uniform sampling), dựa hoàn toàn vào tiêu chí độ tin cậy (confidence obvious), dựa vào cả 2 tiêu chí là độ chính (correctness) xác và độ tin cậy (confidence). Tác đã đã so sánh độ hiệu quả của các phương pháp lấy mẫu nêu trên với nhau và so sánh với việc không lấy mẫu, nghĩa là gửi toàn bộ dữ liệu về trung tâm để huấn luyện. Tuy nhiên nghiên cứu này chưa đề cập đến vấn đề lấy mẫu trên dữ liệu dòng (streaming data) Cũng cùng mục đích là làm sao để lấy mẫu một cách hiệu quả gửi về một nơi trung tâm và phục vụ cho việc huấn luyện lại mô hình một cách liên tục trong ứng dụng về internet vạn vật (IoT) như xe tự lái, camera nhận diện khuân mặt, vv.
Ý tưởng chính của HARVESTNET là tập trung khai thác thêm nhiều mẫu huấn luyện về các điểm mà mô hình đang dự đoán sai (known weakpoints) để từ đó cải thiện mô hình. Nghiên cứu không tập trung vào việc lấy những mẫu mà giúp mô hình có thể cải thiện được vấn đề dự đoán sai ở các điểm mà mô hình cũng không biết trước được (unknown weakpoints). Tác giả cũng so sánh giải pháp HARVESTNET với những phương pháp lấy mẫu khác đối với dữ liệu robots như Oracle, Non-adaptive, ngẫu nhiên (random) và HNetPrioQue. Nghiên cứu này, chưa xem xét đến việc mất cân bằng giữa những dòng dữ liệu (streams) và đó là điểm sẽ được trình bày ở nghiên cứu của chúng tôi.
Và ở nghiên cứu [4] cũng đã để xuất giải pháp lấy mẫu đối với dữ liệu dòng và tập trung vào dữ liệu có nhiều dòng khác nhau và các dòng này sẽ không đồng nhất về mặt thống kê. Nghĩa là tại mỗi thời điểm, các dòng dữ liệu con sẽ khác nhau cả về mặt số lượng lẫn độ lớn thống kê. Nghiên cứu tập trung vào vấn đề là làm sao với sự không đồng nhất của các dòng qua thời gian đó, sau khi lấy mẫu, mẫu vẫn phải giữ được tính đồng bộ (uniformity). Đảm bảo tính đồng bộ và làm sao tối ưu số lượng phân bố cho các dòng con, và Stratified Reservoir Sampling là giải pháp cho các vấn đề đã nêu.
Tuy nhiên với nghiên cứu này, tác giả chưa đề cập đến việc sử dụng những dữ liệu đã lấy mẫu đó phục vụ cho việc huấn luyện mô hình học máy thì sẽ như thế nào? và chúng ta có thể tận dụng những sai số qua những vòng học để cải thiện mô hình không? Và nghiên cứu của chúng tôi, sẽ không xem xét chi tiết đến việc dữ liệu từ các dòng con sẽ thay đổi cả về mặt số lượng lẫn thống kê, mà chỉ xem xét sự mất cân bằng về số lượng. Bên cạnh đó, nghiên cứu của chúng tôi xem xét việc sử dụng kết quả lấy mẫu phục vụ cho việc huấn luyện mô hình và từ đó nhắm đến mục tiêu cải thiện mô hình với độ chính xác tốt nhất. Lấy mẫu theo tổ cho dữ liệu tĩnh đã biết trước tổng thể đã được nghiên cứu từ lâu. Đối với dạng dữ liệu này, sẽ có 2 lần duyệt qua toàn bộ dữ liệu để làm 2 việc.
Thứ nhất là phân bổ số lượng cần lấy cho mỗi tổ và thứ 2 là với tỷ lệ phân bố số lượng đó, thực hiện lấy mẫu cho mỗi tổ [5]. Phương pháp tính toán phân bố số lượng được trình bày ở [6] (Neyman) và [7] (Power 2 allocation). Và đôi với giai đoạn 2, các phương pháp có thể được áp dụng như hồ chứa mẫu (Reservoir Sampling) như trình bày ở [8] hay hồ chứa mẫu có trọng số (Weighted Reservoir Sampling) được trình bày ở [9]. Ngoài ra có nghiên cứu như [10], sử dụng mô hình máy học để dự đoán xác suất được lựa chọn vào tập mẫu cho mỗi mẫu dữ liệu bằng cách phân tích những câu truy vấn dữ liệu trước đó (query workload).
Đối với lấy mẫu theo tổ cho dữ liệu dòng (streaming stratified random sampling) được nghiên cứu và trình bày ở [5]. Tại đây tác giả đã đề xuất những giải pháp tối ưu cho việc làm thế nào để thực hiện tính toán phân bố số lượng cần lấy cho mỗi tổ và thực hiện lấy mẫu cho mỗi tổ. 2 bước này được thực hiện đồng thời như thế nào cho hiệu quả trên dữ liệu dòng và tối ưu. Để tối ưu việc phân bố số lượng cần lấy cho mỗi tổ, thay vì dùng phương pháp phổ biến như Neyman, nghiên cứu đề xuất giải pháp S-VOILA và SW-VOILA.
Tuy nhiên nghiên cứu này chỉ xét trên dữ liệu đến từ 1 dòng, và khác với nghiên cứu chúng tôi là thực hiện trên dữ liệu dòng đa luồng. Reservoir sampling và stratified reservoir sampling là những giải thuật lấy mẫu đã được nghiên cứu từ lâu, Reservoir Sampling (1985) và Stratified Reservoir Sampling (2010). Nhiều biến thể của giải thuật được phát triển như Weighted Reservoir Sampling [9, 11, 12, 13], trong đó các dòng dữ liệu hoặc các mẫu dữ liệu được đánh trọng số khác nhau. Hay Adaptive Reservoir Sampling [14, 15], trong đó độ dài của mẫu R cần lấy thay đổi trong quá trình lấy mẫu.
Ứng dụng của những giải thuật này rất đa dạng, từ đó đến nay nhiều nghiên cứu giải quyết những vấn như: tính toán gần đúng (approximate computing) [16, 17], thay vì tính toán chính xác và xử lý trên toàn bộ lượng dữ liệu rất lớn, thì chỉ cần tính toán gần đúng trên các mẫu đại diện. Nghiên cứu [18] sử dụng Reservoir Sampling để lưu lại những mẫu có xác suất cao trong ứng dụng nhận dạng mẫu (Pattern Recognition) và nhận diện sự kiện (Event Detection) trên một hệ thống IoT data-streams. Hay nghiên cứu [19], ứng dụng Adaptive Stratified Sampling để linh hoạt thay đổi số lượng mẫu cần lấy ở mỗi tổ dựa vào sự thay đổi của phương sai trên tổ đó, và triển khai giải thuật này trong kiến trúc hệ thống tính toán biên trên dữ liệu IoT. Rất nhiều ứng dụng sử dụng những giải thuật Reservoir-Based và đề tài này cũng là một trong những ứng dụng sử dụng phương pháp lấy mẫu theo Reservoir.
3 Cấu trúc của bài nghiên cứu sẽ được chia làm 5 phần chính. Đầu tiên là phần cơ sở lý thuyết, ở phần này, các kiến thức nền cần thiết để hiểu những thuật ngữ và những kỹ thuật được trình bày trong bài nghiên cứu. Tại đây sẽ trình bày sơ bộ về các lý thuyết lấy mẫu, các phương pháp, kiến trúc sử dụng để huấn luyện các mô hình học máy ngày nay và những kiến thức cơ bản về dữ liệu dạng dòng.