DeepRS: A Library of Recommendation Algorithms Based on Deep Learning - Hongwei Tao; Xiaoxu Niu; Lianyou Fu; Shuze Yuan; Xiao Wang; Jiaxue Zhang; Yinghui Hu (International Journal of Computational Intelligence Systems, 2022)
Abstract In recent years, recommendation systems have become more complex with increasing research on user preferences. Recommendation algorithm based on deep learning has attracted a lot of attention from researchers in academia and industry, and many new algorithm models are proposed every year. Researchers often need to implement the proposed model to compare the results, which is a great challenge. Even if some papers provide source code, there are a variety of programming languages or deep learning frameworks, and it is not easy to compare the results in the different frameworks. In view of the lack of easily extensible deep learning-based recommendation algorithm libraries, based on the common analysis of deep learning algorithms in attention factorization machine (AFM), neural factorization machine (NFM), deep factorization machine (DeepFM) and deep cross-network (DCN), a recommendation algorithm library based on deep learning (DeepRS for short) is designed and implemented. It consists of three levels: framework level, abstract level and algorithm level. The framework level adopts the Tensorflow open source framework, which provides interfaces, such as automatic differentiation, tensor computing, GPU computing, and numerical optimization algorithms. The abstraction level uses the interface of the framework level to realize the embedding layer (EL), the full connection layer (FCL), the multi-layer perceptron layer (MLPL), the prediction layer (PL), the factorization machine layer (FML), the attention network layer (ANL), the cross-layer (CL) and the cross-network layer (CNL). The algorithm level implements the deep learning-based recommendation algorithms, such as AFM, NFM, DeepFM and DCN, on the basis of the abstraction level and the framework level. Experiments show that the proposed algorithm library has good scalability, ease of use and correctness.