Đánh giá hệ thống RS là việc quan trọng để xác định các thuật toán lựa chọn là hiệu quả và phù hợp với tập dữ liệu. Việc thực hiện có thể thông qua 2 dạng thực nghiệm/thí nghiệm (experimental research) vs. nghiên cứu bằng cách quan sát (non-experimental/observational research).
Non-experimental/observational research có thể tiến hành thông qua:
Surveys/questionnaire
Case studies
Focus group
Phần sau chỉ focus vào experimental research.
Giả lập hành vi người dùng (simulating user behavior)
Để đánh giá thuật toán offline cần thực hiện giả lập quá trình online mà hệ thống thực hiện ra gợi ý cho tới khi người dùng sử dụng dự đoán (hay cách người dùng thực sự sử dụng recommendation). Việc này thường thực hiện bằng cách sử dụng dữ liệu quá khứ của người dùng và giấu đi một phần dữ liệu để giả lập người dùng sẽ thực hiện rate item như thế nào.
Việc sử dụng dữ liệu quá khứ ngầm giả định sở thích của user không phụ thuộc nhiều vào hệ thống RS. Có nghĩa cách người dùng thao tác với item không cần thông qua danh sách RS. Trong trường hợp chỉ đánh giá việc user thao tác thông qua danh sách recommendation list không thỏa mãn giả định này.
Trường hợp chỉ đánh giá chỉ thông recommendation list sẽ thực hiện online và sử dụng các metric như Click Through Rate (CTR). Nếu chỉ xem xét việc user chọn xem từ recommendation list sẽ có hạn chế quan trọng nhất là:
Phải thực hiện theo dõi user behavior trước khi đánh giá
Mỗi lần thay đổi RS phải thực hiện theo dõi lại và không thể dùng dữ liệu quá khứ do RS ảnh hưởng tới hành vi user.
Hold-out
Là một phương pháp thực hiện chia dataset thành 2 phần gọi là training set và test set. Những phần này có thể có tỷ lệ khác nhau. Việc thực hiện được tiến hành bằng cách chọn ngẫu nhiên một vài rating từ tất cả (hoặc một số) user. Phương pháp này còn gọi là leave-k-out.
Trong một số nghiên cứu, tỷ lệ này thường được chọn là 80% và 20%. Ví dụ dữ liệu người dùng truy cập movies trong 6 tháng sẽ được chia thành 2 phần:
Một phần 5 tháng dùng để chạy recommendation
Và data trong 1 tháng còn lại được dùng để đánh giá hệ thống.
Đôi khi tỷ lệ này được chạy từ 0.2 đến 0.95 với bước nhảy là 0.05 để tính toán cho từng trường hợp trước khi chạy trung bình để cho ra kết quả cuối cùng.
Leave-one-out
Là trường hợp của leave-k-out với k = 1. Với phương pháp này, một active user sẽ để lại một rated item. Kỹ thuật này có một số nhược điểm ví dụ như overfitting và có độ tính toán phức tạp
Overfitting có thể do training set size quá nhỏ hay/hoặc model quá phức tạp.
K-fold
Một biến thể khác của hold-out là m-fold cross-validation hay k-fold cross-validation. Với phương pháp này dataset được chia thành m fold (m phần) không chồng lấp. Với mỗi lượt một fold được chọn làm test set trong khi các fold khác dùng làm training set. Kỹ thuật này được cho là phù hợp để đánh giá hệ thống có người sử dụng mới.
Đo lường
Các chỉ số về độ chính xác theo thống kê (statistical accuracy metrics)
Đối với hệ thống dùng explicit feedback (hay rating) việc đánh giá RS có thể thực hiện sử dụng các metric liên quan đến thống kê. Hai cách đo lường sai số (độ đo sai số – error metrics) thường được sử dụng là Mean Absolute Error (MSE, tạm dịch sai số tuyệt đối trung bình) và Root Mean Squared Error (RMSE, tạm dịch sai số bình phương trung bình [căn] quân phương hay sai số quân phương).
Đây cũng là hai metric thông dụng nhất được sử dụng khi đo lường độ chính xác của dự đoán. Ví dụ hệ thống phát sinh r^ui là một dự đoán rating cho test set T của một cặp user-item (u, i) thực sự có rating là rui.
RMSE giữa giá trị dự đoán và giá trị thực tế là:
RMSE=∣T∣1(u,i)∈T∑(r^ui−rui)2
trong khi đó
MAE=∣T∣1(u,i)∈T∑∣r^ui−rui∣
Tuy nhiên đo lường sai số thông thường không thích hợp lắm với trường hợp dataset dạng binary nhị phân.
Khi so sánh với MAE, RMSE bất lợi hơn khi gặp những sai số lớn.
Ví dụ 1 hệ thống với 4 rating ẩn, RMSE sẽ ưu tiên hệ thống sai 2 point (khoảng cách lỗi là 2) trong 3 lần rating và 0 (rating đúng) hơn hệ thống cho sai 3 point và đúng trong 3 trường hợp còn lại.
Normalized RMSE (NRMSE) và Normalized MAE (NMAE) là hai phiên bản của RMSE và MAE khi được chuẩn hóa bằng khoảng cách rating (ví dụ rmax−rmin).
NRMSE=rmax−rminRMSE và NMAE=rmax−rminMAE
Average RMSE và Average MAE là điều chỉnh để dùng với test set không cân bằng. Ví dụ nếu trong test set có mặt hàng phân bố không đều. Nếu có một error thu được từ mặt hàng phổ biến thì với cách tính thông thường lỗi này sẽ ảnh hưởng nặng nề lên chỉ số. Thay vì vậy sẽ tính RMSE hay MAE riêng lẻ cho từng item và sau đó lấy trung bình. Tương tự như vậy RMSE và MAE có thể tính riêng lẻ cho từng user nếu test set có dấu hiệu phân bố người dùng không đều.
Trong một số ứng dụng ngữ nghĩa của rating không chỉ đơn thuần tác động vào sai số bằng độ lớn của chính nó. Trong một số trường hợp d(r^,r) nên được biến đổi theo 1 cách phù hợp hơn là lấy bình phương của hiệu số hay trị tuyệt đối.
Ví dụ trong 1 số ứng dụng với 3 mức “thích”, “trung lập” và “không thích” thì việc giới thiệu một movie chẳng hạn mà người dùng không thích thì tồi tệ hơn việc không đề xuất. Trong trường hợp này một quy tắc như d(3,1)=5, d(2,1)=3, d(3,2)=3, d(1,2)=1, d(2,3)=1, và d(1,3)=2 sẽ cho kết quả hợp lý hơn.
Phản hồi ngầm định (implicit feedback context)
Đối với hệ thống RS dựa trên implicit feedback, việc đánh giá hệ thống có ngữ cảnh tương tự ngữ cảnh của hệ thống truy vấn thông tin (information retrieval) hay ngữ cảnh phân lớp (classification context). Một trong những cách thực hiện là sử dụng các metric liên quan đến precision và recall.
Precision & recall
Đối với ngữ cảnh hệ thống truy vấn thông tin
precision=∣RET∣∣RET∩REL∣
và
recall=∣REL∣∣RET∩REL∣
Đối với ngữ cảnh phân lớp
precision=tp+fptp
và
recall=tp+fntp
RET hay retrieved documents là kết quả do hệ thống xuất ra đối với một query cụ thể. REL hay relevant documents là danh sách tất cả các tài liệu có liên quan (trong trường hợp RS có thể ví dụ là danh sách item mà user có thao tác).
Thông thường precision lấy n kết quả đầu tiên của RET hay còn gọi là precision at n hay P@n với giả định user chỉ xem xét n kết quả đầu tiên.
Độ chính xác trung bình (AP) là precision metric có xếp hạng thực hiện điều chỉnh nhấn mạnh các item được dự đoán đúng có thứ tự sắp xếp cao (high ranked).
ap@n=k=1∑nP(k)/min(m,n)
Nếu mẫu số (denominator) bằng zero thì kết quả là zero (xem thêm tại Kaggle).
Ví dụ: n = 5
Rank
Hit?
1
2
✓
3
✓
4
✓
5
AP=(21+32+43)⋅13≈0.639
Trường hợp dự đoán chính xác (hit) có vị trí đầu tiên thì score sẽ cao hơn
Rank
Hit?
1
✓
2
3
4
✓
5
✓
AP=(11+42+53)⋅13=0.7
Mean Average Precision
Thực hiện tính trung bình AP cho N user
MAP@n=i=1∑Nap@ni/N
Các metric khác
Các metric khác có thể sử dụng như sử dụng tương quan xếp hạng Spearman’s rank correlation, Kendall rank correlation.