Skip to content

MrLee5693/Neural-Collaborative-Filtering

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Capstone Design

-딥러닝을 활용한 음악 추천시스템 연구-



성능지표

  • NDCG@10
  • HR@10

작성 코드

사용 언어

python

활용 툴

docker bash visualstudio_code


파일 설명

split.py: 학습 데이터와 테스트 데이터를 어떻게 나누었는지에 대한 내용

Data_Loader.py: 데이터를 신경망에서 돌리기 위한 전처리 과정

metrics.py: Hit Ratio(HR)과 NDCG

model.py: NCF 모델

evaluate.py: 어떤 방식으로 평가하는지에 대한 내용

main.py: 모델 실행시키기 위한 파일


실행 코드 예시

python3 main.py --optim=adam --lr=1e-3 --epochs=20 
                --batch_size=1024 --latent_dim_mf=8 
                --num_layers=3 --num_neg=5 --l2=0.0 --gpu=2,3

실험결과

Num Neg : 학습할 때 사용하는 Negative의 비율, 이 때 기준은 각 유저당 Positive의 개수

Num Factor : 임베딩 차원의 크기

Num Layer : MLP에서 쌓는 레이어의 개수

Num Neg : 1,5,10

Negative sample ratio는 하이퍼 파라미터이기 때문에 미리 비율을 정해주고 학습을 시켜야 하지만 대체로 5에서 점수가 높음을 알 수 있다.

HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7502 0.4697 1 4 1
0.7328 0.4705 5 4 1
0.6362 0.4021 10 4 1
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7912 0.5140 1 8 1
0.8013 0.5444 5 8 1
0.7469 0.5026 10 8 1
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.8224 0.5610 1 16 1
0.8270 0.5853 5 16 1
0.7984 0.5598 10 16 1
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7678 0.4896 1 4 2
0.7757 0.5152 5 4 2
0.7064 0.4631 10 4 2
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7965 0.5266 1 8 2
0.8000 0.5527 5 8 2
0.7481 0.5055 10 8 2
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.8152 0.5576 1 16 2
0.8193 0.5795 5 16 2
0.7898 0.5530 10 16 2
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7824 0.5097 1 4 3
0.7882 0.5372 5 4 3
0.7185 0.4769 10 4 3
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.8030 0.5412 1 8 3
0.8026 0.5524 5 8 3
0.7696 0.5324 10 8 3
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.8155 0.5590 1 16 3
0.8152 0.5732 5 16 3
0.7860 0.5465 10 16 3
Num Factor : 4,8,16

임베딩 차원의 크기가 커질수록 대체로 성능도 높아짐을 알 수 있다.

표현할 수 있는 부분이 많아졌다고 해석할 수 있다.

HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7502 0.4697 1 4 1
0.7912 0.5140 1 8 1
0.8224 0.5610 1 16 1
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7328 0.4705 5 4 1
0.8013 0.5444 5 8 1
0.8270 0.5853 5 16 1
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.6362 0.4021 10 4 1
0.7469 0.5026 10 8 1
0.7984 0.5598 10 16 1
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7678 0.4896 1 4 2
0.7965 0.5266 1 8 2
0.8152 0.5576 1 16 2
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7757 0.5152 5 4 2
0.8000 0.5527 5 8 2
0.8193 0.5795 5 16 2
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7064 0.4631 10 4 2
0.7481 0.5055 10 8 2
0.7898 0.5530 10 16 2
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7824 0.5097 1 4 3
0.8030 0.5412 1 8 3
0.8155 0.5590 1 16 3
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7882 0.5372 5 4 3
0.8026 0.5524 5 8 3
0.8152 0.5732 5 16 3
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7185 0.4769 10 4 3
0.7696 0.5324 10 8 3
0.7860 0.5465 10 16 3
Num Layer : 1,2,3

MLP에서 레이어가 깊게 쌓일수록 성능도 향상됨을 알 수 있다.

임베딩 차원의 크기와 마찬가지로 표현할 수 있는 부분이 증가한 것과 데이터의 비선형적 특성을 잘 학습했다고 할 수 있다.

HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7502 0.4697 1 4 1
0.7678 0.4896 1 4 2
0.7824 0.5097 1 4 3
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7328 0.4705 5 4 1
0.7757 0.5152 5 4 2
0.7882 0.5372 5 4 3
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.6362 0.4021 10 4 1
0.7064 0.4631 10 4 2
0.7185 0.4769 10 4 3
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7912 0.5140 1 8 1
0.7965 0.5266 1 8 2
0.8030 0.5412 1 8 3
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.8013 0.5444 5 8 1
0.8000 0.5527 5 8 2
0.8026 0.5524 5 8 3
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7469 0.5026 10 8 1
0.7481 0.5055 10 8 2
0.7696 0.5324 10 8 3
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.8224 0.5610 1 16 1
0.8152 0.5576 1 16 2
0.8155 0.5590 1 16 3
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.8270 0.5853 5 16 1
0.8193 0.5795 5 16 2
0.8152 0.5732 5 16 3
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7984 0.5598 10 16 1
0.7898 0.5530 10 16 2
0.7860 0.5465 10 16 3
총 실험결과
HR@10 NDCG@10 Num of Neg Num Factor Num Layer
0.7502 0.4697 1 4 1
0.7328 0.4705 5 4 1
0.6362 0.4021 10 4 1
0.7912 0.5140 1 8 1
0.8013 0.5444 5 8 1
0.7469 0.5026 10 8 1
0.8224 0.5610 1 16 1
0.8270 0.5853 5 16 1
0.7984 0.5598 10 16 1
0.7678 0.4896 1 4 2
0.7757 0.5152 5 4 2
0.7064 0.4631 10 4 2
0.7965 0.5266 1 8 2
0.8000 0.5527 5 8 2
0.7481 0.5055 10 8 2
0.8152 0.5576 1 16 2
0.8193 0.5795 5 16 2
0.7898 0.5530 10 16 2
0.7824 0.5097 1 4 3
0.7882 0.5372 5 4 3
0.7185 0.4769 10 4 3
0.8030 0.5412 1 8 3
0.8026 0.5524 5 8 3
0.7696 0.5324 10 8 3
0.8155 0.5590 1 16 3
0.8152 0.5732 5 16 3
0.7860 0.5465 10 16 3

About

2020 Capstone Design

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages