Implementation of CFGAN

Paper: Dong-Kyu Chae, Jin-Soo Kang, Sang-Wook Kim and Jung-Tae Lee*, "CFGAN: A Generic Collaborative Filtering Framework based on Generative Adversarial Networks", In Proc. of ACM Int'l Conf. on Information and Knowledge Management (ACM CIKM 2018), pp. 137-146, Lingotto, Turin, Italy, Oct. 22-26, 2018.
* It is a joint work with Naver Corporation.

Contact: Dong-Kyu Chae, Ph.D. (  or  Jin-Soo Kang, M.S. (

Usage: python
- python 3.5x
- tensorflow_gpu

Make sure that (1) the user & item indices start from 0, and (2) the index should be continuous, without any empty index.

Change logs
<19. 03. 11>
- ver1.0 is uploaded

Notes (19.03.11)
You can also find code of CFGAN implemented from the other researchers at
It is very well-implemented. However, when using their code, please keep in mind that:
(1) They only provide user-based CFGAN. However, item-based CFGAN performs better in general.
(2) They use only one set of negative items for both ZR and PM. However, we need two sets of negative items (i.e., N_u^ZR(t) and N_u^PM(t))  and each set is used for each ZR and PM. => fixed on 19.03.12.
(3) They define S to be a percentage of "purchased" items. However, we define it to be a percentage of "non-purchased" items.  => fixed on 19.03.12.

HTML hit counter -
2019. 3. 11. 오전 1:22