Survey of Computerized Adaptive Testing: A Machine Learning Perspective