Chương 1. Tổng quan về nội dung, mục tiêu và phạm vi nghiên cứu. Những nghiên cứu liên quan và bài toán cần giải quyết. Khung phần mềm thu thập và phân tích dữ liệu.
Giải thuật xử lý tại nút biên. Đánh giá khung phần mềm. 5 Chương 2 Những nghiên cứu liên quan và bài toán cần giải quyết 2.1 Những nghiên cứu liên quan Ngày nay, phân tích dữ liệu lớn, đặc biệt là phân tích chăm sóc sức khỏe đã trở thành một vấn đề quan trọng đối với một số lượng lớn các nghiên cứu. Gần đây, nhiều bài nghiên cứu đang sử dụng máy học kết hợp với xử lý luồng trong hệ thống chăm sóc sức khoẻ thông minh.
Trong [11] tác giả đã đưa ra những thách thức phải đối mặt trong việc xử lý một lượng lớn dữ liệu về y tế. Họ đã đưa ra những thách thức như sau. Thứ nhất, việc thu thập và nhập dữ liệu là cần thiết cho thiết lập chăm sóc sức khỏe lâm sàng, và nó là dữ liệu dạng luồng nên những thách thức chính trong khi xử lý việc thu thập dữ liệu là băng thông mạng, khả năng mở rộng và các vấn đề chi phí. Thứ 2, sau khi thu thập thì việc quản lý và lưu trữ rất khó khắn và cần chi phí rất lớn.
Thứ 3, để cải thiện kết quả của bệnh nhân và phát hiện các dấu hiệu cảnh báo của các biến chứng, cần có khung phần mềm xử lý dòng theo thời gian thực. Ví dụ trong các dịch vụ chăm sóc sức khỏe hiện đại, bệnh nhân thường được kết nối với thiết bị y tế liên tục theo dõi huyết áp và nhịp 6 CHƯƠNG 2. NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT tim. Và để giải quyết các vấn đề, họ đã đề xuất mô hình kết hợp Apache Kafka và Apache Spark Streaming.
Kafka hoạt động rất tốt trong việc vận chuyển dữ liệu giữa các hệ thống khác nhau, nhưng lại không có công cụ phân tích và xử lý, nên Spark Streaming được áp dụng vào để thực hiện việc phân tích. Nhóm tác giải ở [12] [13] cũng với ý tưởng kết hợp Apache Kafka và Apache Spark xây dựng hệ thống xử lý luồng cho việc thu thập thông tin, phân tích dự đoán bệnh tim mạch với mô hình máy học Decision Tree. Họ sử dụng bộ dữ liệu tim mạch Cleveland để huấn luyện mô hình. Cả hai đều thu thập dữ liệu và quản lý bệnh nhân thông qua mạng xã hội Twitter, sử dụng Twitter Streaming API để tạo các luồng dữ liệu.[12] thu thập dữ liệu và phân tích thông qua Spark Streaming, [13] kết hợp thêm Kafka để thu thập dữ liệu và Spark Streaming với mô hình học máy để phân tích và dự đoán.
Bài báo [14] dựa trên các ý tưởng về xây dựng hệ thống phân tích luồng và áp dụng mô hình máy học. Điểm đặc biệt trong [14] là nó vừa thu thập dữ liệu và vừa huấn luyện mô hình (online traning). Kiến trúc mô hình như sau, trong giai đoạn đầu, dữ liệu được thu thập từ các nguồn dữ liệu khác nhau; Kafka Producer liên tục tạo ra luồng dữ liệu và truyền về Kafka Broker thông qua các chủ đề khác nhau, tên các chủ đề liên quan đến các bệnh khác nhau. Thứ hai, Spark Streaming nhận luồng dữ liệu y tế với các thuộc tính liên quan đến từng bệnh và sau đó áp dụng mô hình máy học để dự đoán tình trạng sức khỏe.
Thứ ba, Online Predict nhận các gói dữ liệu đầu vào và chịu trách nhiệm phân tích và cập nhật mô hình theo dữ liệu mới đến. Ở giai đoạn cuối cùng, kết quả dự đoán đến các nơi lưu dữ liệu, trong đó đầu ra cũng sẽ gửi lại một lần nữa đến Kafka để được sử dụng bởi các ứng dụng khác như dịch vụ web, hệ thống báo động, bảng điều khiển, ứng dụng di động và mạng xã hội bệnh viện. Nhóm tác giả ở bài báo [15] xây dựng mô hình HealthFog, kết hợp mô hình deep learning ở điện toán biên để theo dõi, phân tích và dự đoán bệnh tim mạch theo thời gian thực. Tác giả đưa ra thách thức với mô hình điện toán đám mây hiện tại không thể đáp ứng hết khi cần phân tích dự đoán theo thời gian thực với số lượng các thiết bị có thể tạo ra dữ liệu quá lớn.
Nên với mô hình HealthFog tác giả xây dựng kết hợp điện toán biên và điện toán đám mấy để giải quyết bài toán trên. Sử dụng ứng dụng di động để thu thập dữ liệu của bệnh nhân, và các dữ liệu sẽ được gửi về nút biên có tên là FogBus. Tận dụng lợi thế của 7 CHƯƠNG 2. NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT điện toán biên được thế kế nằm gần các nguồn sinh dữ liệu nên việc nhận phân tích và dự đoán với mô hình máy học đem lại phản hồi nhanh.
Các dữ liệu được phân tích ở FogBus sẽ được gửi về điện toán đám mây để có thể sử dụng lại. Với ý tưởng điện toán biên, [16] tác giả sử dụng một cụm máy Raspberry Pi 3 để chạy ứng dụng xử lý luồng tại nút biên. Trong bài báo này, điện toán biên được sử dụng để theo dõi, thu thập dữ liệu từ các thiết bị IoT trên xe đang di chuyển liên tục. Mô hình kết hợp MQTT và Apache Flink để phân tích và xử lý.
Kết quả đem lại mô hình có thể theo dõi được 245369 xe đang di chuyển tại Italy, với 0.8 dữ liệu được sinh ra trong mỗi giây. Quá trình xử lý mất 10s để có thể gửi về đám mây. Một khung phần mềm thu thập, chuẩn hoá các loại dữ liệu không đồng nhất, và kết hợp mô hình dự đoán tính toán nhỏ được đề xuất trong [3], bài báo tận dụng sức mạnh của Kafka Streams xây dựng mô hình dự đoán hạn hán. Dựa vào dữ liệu từ các trạm thu thập dữ liệu môi trường, và điểm đặc biệt các dữ liệu của các trạm lại có định dạng khác nhau, tác giả kết hợp Kafka Streaming xây dựng công cự xử lý luồng để định dạng lại dữ liệu theo mong muốn và cho đi qua mô hình dữ đoán hạn hán.
Trong bài báo, tác giả sử dụng Confluent Platform [17] một công cụ được xây dựng dựa trên Apache Kafka hỗ trợ nhiều tính năng mới để hiện thực nên mô hình đề xuất. Mô hình điện toán biên ngày càng được ứng dụng nhiều trong IoT, tại phòng thí nghiệm ở các trường đại học cũng đã đem vào giảng dạy và thực hành. Bài báo [18] xây dựng mô hình điện toán biên cho phòng thí nghiệm, tận dụng Kafka để thu thập dữ liệu thông qua Kafka Connect để có thể hỗ trợ nhiều giao thức trong IoT như MQTT, COAP, HTTP, v.2 Bài toán cần giải quyết Các công trình nghiên cứu đi trước đã đưa ra những thách thức liên quan về việc thu thập dữ liệu y tế, và từ các dữ liệu đó phân tích, trích xuất những thông tin cần thiết để đưa ra dự đoán nhanh nhất có thể và sau đó là lưu trữ dữ liệu. Với các khó khăn từ các công trình nghiên cứu đi trước, luận văn hình thành bài toán như sau.
Với nhu cầu mức sống ngày càng cao của con người và việc 8 CHƯƠNG 2. NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT ngày càng phát triển của khoa học kỹ thuật, thì việc ứng dụng khoa học kỹ thuật vào lĩnh vực y tế như các công trình nghiên cứu trên là rất cần thiết. Các phòng khám, các bệnh viện, hoặc các trung tâm chăm sóc đặc biệt, v.v rất cần theo dõi những thông số cần thiết liên quan đến bệnh của bệnh nhân một các chặt chẽ. Cụ thể trong phạm vi của luận văn, đối tượng bệnh cần theo dõi là bệnh tim, một căn bệnh có nguy cơ gây tử vong cao nên việc theo dõi liên tục và đưa ra dự đoán sớm những dấu hiệu là rất cần thiết.
Giả sử một trường hợp cụ thể, các bệnh nhân sau khi điều trị bệnh tim tại các cơ sở chữa trị được xuất viện và cần theo dõi với tần suất theo yêu cầu của y bác sĩ. Với cách truyền thống không có sự can thiệp của khoa học kỹ thuật, các bệnh nhân chỉ có thể được theo dõi mỗi lần tái khám định kỳ, trong quá trình giữa hai lần tái khám, đội ngũ y bác sĩ không thể theo dõi và phát hiện bất thường ngay lập tức và can thiệp điều trị. Khi áp dụng sự theo dõi từ công nghệ, bệnh nhân có thể được theo dõi từ xa và đều đặn, các thông số sẽ được theo dõi và phát hiện bất thường ngay lập tức, giúp y bác sĩ có thể can thiệp kịp thời. Với bài toán đã đề ra, khung phần mềm cần xây dựng cần phải giải quyết được các vấn đề được trình bày sau: 1.
Cách thu thập và quản lý dữ liệu đầu và từ các bệnh khác nhau, với nhiều định dạng khác nhau; 2. Giải thuật xử lý dữ liệu và đưa ra dự đoán bất thường một cách nhanh chóng; 3. Có khả năng mở rộng và đáp ứng khi lượng dữ liệu ngày càng nhiều theo thời gian. Một số công trình nghiên cứu đi trước đã đưa ra cách theo dõi và dự đoán phát hiện sớm bệnh tim mạch, các tác giả đã kết hợp mô hình máy học Decision Tree và cả mô hình học sâu để đưa ra dự đoán trong mô hình theo dõi bệnh của họ, hệ thống của họ hướng tới hệ thống xử lý tập trung ứng dụng các công nghệ xử lý dữ liệu lớn như Apache Spark chạy trên cụm máy chủ.
Và cũng có công trình nghiên cứ tập trung vào điện toán biên để xây dựng mô hình theo dõi bệnh tim. Nhóm tác giả ở công trình [15] [16] đã cho thấy được sức mạnh của điện toán biên/sương mù trong việc giải bài toán tiền xử lý dữ liệu. NHỮNG NGHIÊN CỨU LIÊN QUAN VÀ BÀI TOÁN CẦN GIẢI QUYẾT Thừa hưởng từ các công trình đã có luận văn đưa ra cách giải quyết các vấn đề của bài toán đã đặt ra như sau. Luận văn tận dụng sức mạnh và khả năng chịu tải của Apache Kafka [4] để thu thập dữ liệu từ bệnh nhân vì Kafka hoạt động rất tốt trong việc vận chuyển dữ liệu giữa các hệ thống, nhưng lại không có công cụ phân tích và xử lý [11].
Để xây dựng công cụ phân tích và xử lý cho khung phần mềm, luận văn dựa vào bài báo nghiên cứu [3] với ý tưởng sử dụng khả năng xử lý dữ liệu một cách nhanh chóng và dễ sử dụng của thư viện Kafka Streams để xây dựng ứng dụng xử lý dữ liệu và dự đoán cho khung phần mềm.