Graph-based cognitive diagnosis for intelligent tutoring systems