Khoa học dữ liệu: Suy luận hay dự đoán?

Một trong những câu hỏi mà nhiều bạn có thể tò mò là sự khác biệt giữa thống kê (statistics) và học máy/học sâu (machine learning/deep learning). Nếu nhìn qua, các bạn có thể thấy 2 lĩnh vực này có thể có nhiều điểm chung trong phương pháp sử dụng: từ hồi quy tuyến tính (linear regression), support vector machine (SVM), phân tích thành phần chính (principal component), cho tới mạng neuron (neural network), v.v. Có những phương pháp bạn có thể học từ các lớp thống kê, và có những phương pháp bạn học từ các lớp học máy/khoa học máy tính, hoặc cả hai, nên các bạn có thể không nhận ra sự khác biệt giữa thống kê và học máy. Sự khác biệt căn bản của 2 lĩnh vực này không nằm ở trong phương pháp, mà nằm ở mục đích của việc sử dụng dữ liệu. Trong khi thống kê tập trung chủ yếu vào mặt suy luận (inference hay statistical inference), học máy tập trung vào mặt dự đoán (prediction). Trong bài viết này, mình sẽ phân tích kĩ hơn sự khác biệt này, và theo mình đây là một kiến thức căn bản cần biết của những người làm việc trên dữ liệu. 

Suy luận và dự đoán là gì?
Suy luận (inference) là tìm hiểu về các cơ chế (mechanism) đằng sau dữ liệu được quan sát và tổng quát hoá các hiện tượng/quy luật (pattern) quan sát được. Dự đoán, ngược lại, tập trung vào việc điều gì xảy ra với một dữ liệu mới. Ví dụ, trên Youtube, có hàng triệu video và hàng triệu người dùng (users), nhưng chỉ một phần rất nhỏ trong số đó xem và đánh giá các video. Dữ liệu chúng ta là đánh giá (ratings) của người dùng (users) ở các video nhất định (mẫu). Trong ví dụ này, sự khác biệt giữa suy luận và dự đoán có thể được minh hoạ bởi 2 câu hỏi khác nhau: 

Câu hỏi 1: Những yếu tố nào làm ảnh hưởng tới quyết đính thích/không thích/không đánh giá một video của một người dùng trong độ tuổi 18-25?


Câu hỏi 2: Dựa trên lịch sử các video đã xem và đã đánh giá của một người dùng trong độ tuổi 18-25, liệu người dùng đó có thích/không thích/đánh giá một video mới?

Câu hỏi 1 là đặc trưng của một bài toán suy luận, vì dựa trên dữ liệu quan sát được, chúng ta mong muốn tổng quát hoá hành vi của một nhóm người dùng được quan tâm. Câu hỏi 2 là đặc trưng của một bài toán dự đoán, khi dựa trên dữ liệu quan sát được, chúng ta muốn tìm hiểu chuyện gì sẽ xảy ra trên một dữ liệu mới.   

Trước khi nói tiếp, mình muốn bàn sâu hơn về tính cần thiết của việc suy luận (inference). Nói cách khác, đâu là giá trị của việc tìm hiểu các cơ chế và tổng quát hoá những gì quan sát được, khi chúng ta có thể có những dự đoán hoàn hảo (perfect prediction)? Câu trả lời nằm ở việc suy luận định hướng cho bạn trong việc can thiệp (intervene) hay điều khiển (control) những gì diễn ra. Trong ví dụ kể trên, ở câu hỏi 1, nếu bạn có thể kết luận được như “với cùng nội dung truyền đạt, nếu thời lượng video giảm 10s làm tăng lượng like lên 20%,” thì đó sẽ là thông tin rất giá trị cho bạn làm những video tiếp theo.

Trong nhiều trường hợp, điều khiển và can thiệp là giá trị tiềm năng nhất của khoa học dữ liệu. Ví dụ, trong y học, bạn không chỉ muốn dự đoán thời gian sống của 1 bệnh nhân khi mắc một căn bệnh dựa trên các tình trạng hoá sinh của bệnh nhân đó, mà bạn muốn đưa ra các can thiệp có thể ít nhất kéo dài thời gian đó. Điều này đòi hỏi bạn cần biết mối quan hệ của thời gian sống với các yếu tố, từ đó bạn chọn ra những can thiệp phù hợp. Hay như trong khoa học chính trị, nếu bạn là ứng cứ viên, bạn không chỉ muốn dự đoán liệu một người có bầu cho bạn hay không, mà bạn luôn muốn làm sao để tăng khả năng người đó bầu cho bạn. Vì thế, mối quan hệ thực sự giữa hành vi bầu cử và những đặc điểm tâm lí và nhận thức, nếu có thể ước lượng được một cách chính xác, sẽ định hướng các hoạt động tranh cử rất nhiều. Có thể kể ra rất nhiều trường hợp khác trong khoa học, engineering, hay kinh doanh mà việc can thiệp và điều khiển là thiết yếu, nên việc suy luận có vai trò lớn hơn việc dự đoán.


Hệ quả

Suy luận nhìn chung là khó. Khi số lượng feature được cân nhắc ngày càng lớn, suy luận về tác động (effect) của từng feature lên kết quả quan tâm trở nên rất thách thức, không kể có rất nhiều feature có thể có những tác động tương tác lẫn nhau (interaction effect). Trong ví dụ về Youtube ở trên, để trả lời câu hỏi số 1, có thể bạn phải cân nhắc rất nhiều yếu tố từ cả người xem lẫn video, không kể tới tương tác lẫn nhau giữa 2 nhóm features này.  Một ví dụ khác, khi tìm hiểu về ảnh hưởng của bộ gen lên một loại bệnh ở cơ thể người, ngoài việc số lượng gen rất lớn, các gen còn tác động qua lại chặt chẽ lẫn nhau, làm việc kiểm soát tác động của từng gen trở nên rất khó khăn. Bài toán suy luận chịu ảnh hưởng của curse of dimensionality, nghĩa là khi số lượng biến càng lớn, khả năng suy luận từ dữ liệu càng trở nên thách thức. Chú ý rằng, bài toán suy luận không chỉ dừng lại ở việc xác định gen nào ảnh hưởng tới một loại bệnh, mà muốn xác định tác động thực sự của nó là như thế nào. 

Ngược lại, với bài toán dự đoán, độ chính xác có thể tăng lên nhanh chóng khi số lượng feature càng lớn. Trong ví dụ về việc dự đoán bầu cử tổng thống, nếu tất cả feature bạn có là tuổi của người bầu cử, gần như rất khó việc dự đoán người đó sẽ bầu cho ai. Tuy vậy, khi bạn có thêm rất nhiều thông tin, như thu nhập, học vấn, nghề nghiệp, v.v, độ chính xác sẽ có thể tăng lên đáng kể. Về mặt toán học, hiện tượng này được giải thích nhờ các concentration of measure. Nói một cách dễ hiểu, đó là khi số lượng feature tăng lên và dữ liệu không quá bất thường, kết quả cho những dữ liệu mới sẽ không khác biệt quá xa so với giá trị kì vọng của chúng (expected value). Vì thế, khi bạn có thể ước lượng (approximate) giá trị kì vọng này bằng những phương pháp học máy/học sâu mới, bạn có thể làm công việc dự đoán tương đối chính xác.    

Chính sự khác biệt về mục tiêu của suy luận và dự đoán dẫn tới nhiều hệ quả trong cách sử dụng các phương pháp. So với bài toán dự đoán, việc suy luận dựa trên nhiều các giả định (assumptions) hơn. Việc sử dụng giả định luôn luôn có 2 mặt: Nếu những giả định của bạn là hợp lí, bạn có thể kết luận nhiều hơn, từ khoảng tin cậy cho tới kiểm định giả thuyết. Ngược lại, nếu những giả định này không hợp lí, những kết luận được đưa ra có thể mắc sai lầm rất lớn. Tiếp theo, với bài toán dự đoán, một mô hình/phương pháp thường được đánh giá theo tính chính xác của các dự đoán dựa trên test set (ví dụ cross-validation). Trong khi đó, với bài toán suy luận, mô hình/phương pháp đó thường được đánh giá theo tính chính xác của các kết luận từ dữ liệu. Trong ví dụ về Youtube, với câu hỏi 2, sau khi huấn luyện (train) một mô hình nhất định trên một tập users, bạn có thể đánh giá mô hình dựa trên những users mới (independent sample). Ngược lại, với câu hỏi 1, vì bạn không bao giờ có thể biết được chính xác mối quan hệ của các yếu tố như thế nào, một cách đánh giá mô hình là sử dụng các mô phỏng (simulation), đòi hỏi nhiều thời gian và công sức hơn. 

Trên thực tế, việc bạn cần suy luận hay dự đoán phụ thuộc nhiều vào công việc mà dữ liệu cần được sử dụng. Trong môi trường kinh doanh, dự đoán thường phổ biến hơn suy luận, từ dự đoán hành vi người dùng, giá cả, khi các can thiệp để thay đổi kết quả không quá quan trọng bằng việc phân tích kết quả đó là gì. Trong các môi trường khoa học và xã hội, việc can thiệp và điều khiển thường quan trọng hơn rất nhiều, nên các công việc suy luận thường được áp