Elo Rating System
Đánh giá năng lực học viên và hiệu chuẩn độ khó câu hỏi tự động dựa trên mô hình Educational Elo.
Hệ thống EduGap áp dụng thuật toán Educational Elo (dựa trên nghiên cứu Pelánek (2016)) để đo lường đồng thời hai chỉ số động:
- Năng lực học viên (): Thể hiện trình độ hiện tại của học viên trên một khái niệm kiến thức (Concept).
- Độ khó câu hỏi (): Thể hiện mức độ thử thách thực tế của câu hỏi đó.
Theo Pelánek (2016), việc áp dụng Elo trong giáo dục có các khác biệt lớn so với cờ vua:
- Item vs Student (Sự bất đối xứng): Trận đấu xảy ra giữa học viên và câu hỏi thay vì giữa 2 người chơi. Năng lực của học viên thay đổi liên tục nhờ quá trình học, trong khi độ khó của câu hỏi có xu hướng ổn định hơn khi số lượng mẫu dữ liệu đủ lớn.
- Dynamic K-factor: Hệ số điều chỉnh độ nhạy không cần phải là hằng số tĩnh. Để tối ưu hóa tốc độ hội tụ và giảm nhiễu, hệ số có thể được cấu hình giảm dần theo số lượt tương tác hoặc tích hợp thêm hàm bất định (uncertainty function) để điều khiển tốc độ học (learning rate).
1. Công thức Xác suất Thành công Kỳ vọng
Khi học viên có năng lực đối mặt với câu hỏi có độ khó , xác suất học viên trả lời đúng kỳ vọng được tính bằng hàm Sigmoid:
Để tránh hiện tượng tràn số số thực (overflow) trong lập trình khi hiệu số quá lớn, số mũ exponent được giới hạn (clamp) trong khoảng :
exponent = (question_elo - student_elo) / 400.0
exponent = min(20.0, max(-20.0, exponent))
expected = 1.0 / (1.0 + 10.0**exponent)2. Quy trình Cập nhật Song song (Dual Elo Update)
Ngay sau khi học viên nộp bài và nhận điểm số thực tế (trong đó là Đúng hoàn toàn, là Sai hoàn toàn), hệ thống sẽ tiến hành cập nhật đồng thời chỉ số của cả người học lẫn câu hỏi:
Trong đó:
- và là hệ số biến động (mặc định = ). Nhằm đảm bảo tính ổn định của câu hỏi khi đã qua nhiều lượt hiệu chuẩn, hệ số của các câu hỏi cũ có thể giảm dần về theo hàm số đếm của Pelánek.
- là hệ số chiết khấu dựa trên hành vi sử dụng trợ giúp.
3. Cơ chế Khấu trừ Gợi ý (Hint Discounting)
Nếu học viên trả lời đúng () nhưng có sử dụng gợi ý (Socratic Hints), lượng Elo nhận được và độ khó giảm đi của câu hỏi sẽ bị khấu trừ tương ứng để phản ánh đúng thực tế năng lực:
Với là số lượng hint đã tiêu thụ (hint_count).
- 1 Hint: Học viên nhận được điểm Elo tăng thêm.
- 2 Hints: Học viên nhận được điểm Elo tăng thêm.
- 3 Hints trở lên: Học viên chỉ nhận được mức tối thiểu là điểm Elo.
4. Cơ chế Bảo vệ AI (AI Help Protection)
Khi học viên sử dụng trợ lý AI hỏi đáp trực tiếp trong phiên làm bài (used_ai_help = true), hệ thống kích hoạt cơ chế bảo vệ:
- Freeze Student Elo: Hệ số cập nhật của sinh viên bị đưa về để chống gian lận (điểm Elo của học sinh giữ nguyên).
- Active Question Calibration: Chỉ số độ khó câu hỏi vẫn được cập nhật bình thường với hệ số để đảm bảo quá trình hiệu chuẩn câu hỏi không bị gián đoạn.
5. Tham chiếu mã nguồn backend
Cài đặt chi tiết của thuật toán nằm tại elo.py:
# Cài đặt cập nhật Elo kép
def calculate_elo_updates(
student_elo: float,
question_elo: float,
actual_score: float,
hint_count: int = 0,
k_student: float = 32.0,
k_question: float = 32.0,
) -> tuple[float, float]:
expected = calculate_expected_success(student_elo, question_elo)
student_delta = actual_score - expected
question_delta = expected - actual_score
# Khấu trừ nếu dùng gợi ý
if student_delta > 0 and hint_count > 0:
discount = max(0.1, 1.0 - 0.3 * hint_count)
student_delta *= discount
question_delta *= discount
new_student_elo = student_elo + k_student * student_delta
new_question_elo = question_elo + k_question * question_delta
return round(new_student_elo, 2), round(new_question_elo, 2)6. Định hướng nâng cấp theo Pelánek (2016)
Hệ thống đang được lên kế hoạch tích hợp 3 cải tiến lớn dựa trên nghiên cứu gốc của Pelánek (xem chi tiết tại Kế hoạch nâng cấp Elo):
- Dynamic K-question Calibration: Cập nhật giảm dần từ về tối thiểu theo lũy kế số lượt làm bài của câu hỏi đó nhằm tối ưu hóa tính ổn định của độ khó .
- Time-Gap Uncertainty Adjustment: Bù đắp lượng suy giảm trí nhớ bằng cách tăng tạm thời khi học viên quay lại sau hơn 7 ngày không hoạt động.
- Response-Time Weighted Elo: Điều chỉnh điểm số thực tế đầu vào dựa trên thời gian làm bài của học viên so với thời gian trung bình của câu hỏi để ghi nhận độ trôi chảy (fluency) và mức độ thành thục tự động của người học.
Bayesian Knowledge Tracing (BKT)
Sử dụng mô hình Hidden Markov Model để theo dõi trạng thái làm chủ kiến thức của học viên.
Phương pháp Đánh giá & Kiểm chứng Thuật toán
Cách EduGap chứng minh tính chính xác học thuật, tốc độ hội tụ và độ ổn định của các thuật toán thích ứng bằng phương pháp khoa học thực nghiệm nghiêm ngặt.