(User-based CF)
Trong phần này, luận văn sẽ định nghĩa ma trận năng lực ứng với mỗi môn học và coi nó như là một item, còn điểm số đạt được của sinh viên chính là rating của mỗi user lên item tương ứng. Như đã trình bày ở phần I, ý tưởng chính của phương pháp này là xác định mức độ quan tâm của user đối với một item dựa trên các user khác tương tự hoặc gần giống với user này. Việc xác định các user tương tự nhau dựa trên mức độ quan tâm của các user này đối với các item khác mà hệ thống đã được biết. Cụ thể, trong bài toán dự đoán điểm số cho sinh viên, thì sự tương tự này được thể hiện qua độ tương tự giữa các bảng điểm của mỗi sinh viên đối với cùng các môn học mà đã có trong CSDL.
Tiền xử lý dữ liệu (data processing)
Trong bài toán dự đoán kết quả học tập, độ tương tự của hai sinh viên bất kỳ chính là độ tương tự của hai vector điểm môn học của hai sinh viên đó mà các vector này phải không được chứa rỗng.
Trên thực tế, trong một chương trình đào tạo, ngoài các môn chung mà bắt buộc sinh viên nào cũng phải học thì sẽ có các môn học tự chọn cho phép mỗi sinh viên được tự do lựa chọn tổ hợp các môn mình muốn học. Dẫn đến sinh viên này có điểm môn này nhưng lại không có điểm môn kia và ngược lại. Kết quả làm cho ma trận năng lực đang xét tồn tại những vị trí không có giá trị. Vấn đề này sẽ được giải quyết trong bước tiền xử lý dữ liệu.
Để loại bỏ các vị trí trống trong ma trận, gọi là ma trận G, ta cần điền các giá trị vào đó mà không làm cho đặc trưng của các sinh viên và môn học bị ảnh hưởng quá nhiều, cũng như giữ được sự tương quan giữa các sinh viên với nhau. Có hai phương pháp để lựa chọn giá trị điền vào những phần tử rỗng như sau:
Thứ nhất, điền bằng giá trị trung bình của hàng. Tức là ta sẽ điền giá trị là điểm trung bình các môn học của mỗi sinh viên. Với cách điền này, điểm trung bình của mỗi sinh viên sẽ không bị thay đổi và ta có thể xác định năng lực của mỗi sinh viên qua điểm trung bình của sinh viên đó. Có nghĩa là, nếu một sinh viên đã có điểm trung bình cao thì sẽ có thể đạt được điểm số cao trong tương lai và ngược lại.
Thứ hai, điền bằng giá trị trung bình của cột, là trung bình điểm mà các sinh viên đã đạt đối với mỗi môn học. Với phương pháp này, ta quan tâm đến mức độ khó của mỗi môn học. Tức là không phải môn nào sinh viên cũng sẽ đạt được điểm cao như nhau. Qua đó, với cách điền này sẽ thể hiện được mức độ khó của từng môn học với nhau.
Trong mô hình này, cần tính độ tương tự giữa các sinh viên nên ta sẽ sử dụng phương pháp điền giá trị trung bình của hàng để tiền xử lý dữ liệu.
Huấn luyện (training and testing)
Một đặc điểm của phương pháp User-based CF đó là thường không phải huấn luyện dữ liệu hoặc nếu có thì cũng chỉ là quá trình bổ trợ và tốn rất ít thời gian. Nó cũng chính là một nhược điểm của phương pháp này vì đặt nặng việc tính toán vào bước dự đoán.
Dự đoán kết quả học tập (prediction)
Kết quả học tập của môn học mà sinh viên tham gia học tập trong kỳ học kế tiếp sẽ được dự đoán bằng cách sử dụng độ tương tự của sinh viên cần dự đoán điểm với các sinh viên đã có điểm môn học đó cùng với điểm số mà các sinh viên đó đã đạt được. Có nhiều cách có thể áp dụng để tính được độ tương tự giữa các vector, trong đó sử dụng độ tương tự cosine và sử dụng tương quan pearson là hai phương pháp phù hợp nhất để áp dụng cho bài toán đang nghiên cứu.
Với a và b là hai sinh viên đều có dữ liệu điểm trong ma trận G và cần phải tính độ tương tự, ta có công thức tính độ tương tự cosine như sau:
𝑐𝑜𝑠𝑖𝑛𝑒(𝑎, 𝑏) = ∑𝑥∈𝐶(𝑔𝑎𝑥𝑔𝑏𝑥) √∑ 𝑔𝑎𝑥2
𝑥∈𝐶 √∑ 𝑔𝑏𝑥2
𝑥∈𝐶
(2.1)
Với công thức tính độ tương tự giữa hai sinh viên a và b khi tính theo pearson thì sẽ là:
𝑝𝑒𝑎𝑟𝑠𝑜𝑛(𝑎, 𝑏) = ∑𝑥∈𝐶((𝑔𝑎𝑥−𝐺𝑎)(𝑔𝑏𝑥−𝐺𝑏)) √∑𝑥∈𝐶(𝑔𝑎𝑥−𝐺𝑎)2√∑𝑥∈𝐶(𝑔𝑏𝑥−𝐺𝑏)2
(2.2)
Trong đó, a và b là hai sinh viên đã có trong tập dữ liệu sinh viên S. x là môn học mà hai sinh viên a và b đã học và có điểm. C là tập các môn học. gax là điểm số môn học x của sinh viên a, chính là giá trị tại hàng a cột x trong ma trận năng lực G. 𝐺𝑎 là điểm trung bình các môn mà sinh viên a đã học.
Tùy vào việc sử dụng công thức nào trong hai công thức trên để tính độ tương tự, ta đều tính ra được sim(a, b) là độ tương tự của hai sinh viên a và b. Ta coi độ tương tự này là một trọng số quan trọng quyết định sự ảnh hưởng từ điểm môn học của các sinh viên tới điểm cần dự đoán, và ta có công thức dùng để dự đoán điểm môn học y của sinh viên a như sau:
𝑝𝑟𝑒(𝑎, 𝑦) = 𝐺𝑎+∑𝑏∈𝑆(sim(𝑎,𝑏)(𝑔𝑏𝑦−𝐺𝑏))[𝑔′𝑏𝑦≠𝑛𝑢𝑙𝑙]
∑𝑏∈𝑆sim(𝑎,𝑏)[𝑔′𝑏𝑦≠𝑛𝑢𝑙𝑙] (2.3)
Trong đó, 𝑔′𝑏𝑦 là vị trí tại hàng b cột y của ma trận G trước khi được chuẩn hóa dữ liệu, hay là điểm môn y của sinh viên b có độ tương tự với sinh viên a. Điều kiện
𝑔′𝑏𝑦 ≠ 𝑛𝑢𝑙𝑙 để đảm bảo rằng phép tính chỉ thực hiện khi sinh viên b có điểm thật đối với môn học y, phân biệt với điểm ảo là điểm trung bình môn học mà ta đã điền vào các phần tử rỗng khi chuẩn hóa dữ liệu.