본문 바로가기
728x90

추천 시스템 이론6

Pytorch Recommend system github 작동 순서 main.py - argparse.ArgumentParser()를 통한 모델명, 데이터 경로, 저장 경로 입력받기 parser = argparse.ArgumentParser() parser.add_argument('--name', type=, default=) conf = parse.parse_args() - random_seed 미리 배정해놓기 np.random.seed(conf.seed) torch.random.manual_seed(conf.seed) - cpu / gpu device 세팅 device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu') - 전처리된 데이터를 바탕으로 생성된 아이템 # 평가 데이터 e.. 2021. 4. 23.
ALS 알고리즘 해당 Alternative Least Squares 알고리즘은 Collaborative Filtering for Implicit Feedback Datasets 논문을 기반으로 설명을 드리도록 하겠습니다. ALS알고리즘은 MF(matrix factorization)을 통해 나온 user-latent matrix와 item-latent matrix를 번갈아가면서 학습시키는 것입니다. 두 행렬을 한꺼번에 최적화하는것은 어렵고 시간이 오래걸리기때문에 user-latent matrix를 update할때에는 item-latent matrix를 상수로 놓고 학습을 하고 반대로 item-latent matrix를 update할때에는 user-latent matrix를 상수로놓고 학습을 진행하는 것입니다. SVD(Si.. 2021. 3. 7.
SGD를 사용한 Matrix Factorization 알고리즘 MF(Matrix Factorization) 행렬분해로 추천시스템에서 사용자, 아이템의 관계를 가장 잘 설명하는 P, Q행렬로 분해하는 것을 의미한다. MF 알고리즘 1. 잠재요인의 개수 K를 설정 2. 주어진 K에 따라서 P(MxK)와 Q(NxK)행렬을 만들고 초기화한다. 3. 주어진 P(User Latent Matrix), Q(Item Latent Matrix)을 사용해서 예측 평점을 구한다. $$\hat{R}=PQ^{^{T}}$$ 4. R(User-Item Matrix)에 있는 실제 평점과 예측 평점의 오차를 구하고 이 오차를 줄이기 위해서 P, Q 값을 업데이트한다. 5. 오차가 일정 Threshold 이하가 되거나 미리 정해진 Iteration에 도달할 때 까지 3번으로 돌아가서 반복한다. SG.. 2021. 1. 13.
카카오 아레나 Melon Playlist Continuation baseline github 분석 - (3) genre_most_popular.py 실행순서에 따른 코드 분석 (1) import module from collections import Counter import fire from tqdm import tqdm from arena_util import load_json from arena_util import write_json from arena_util import remove_seen from arena_util import most_popular (2) main 실행 if __name__ == "__main__": fire.Fire(GenreMostPopular) Fire를 통해 GenreMostPopular class를 하나의 객체로 인식해서 사용 가능 (3) run 함수 실행 def ru.. 2020. 10. 26.
카카오 아레나 Melon Playlist Continuation baseline github 분석 - (2) most_popular.py 실행순서에 따른 코드 분석 (1) import module import fire from tqdm import tqdm from arena_util import load_json from arena_util import write_json from arena_util import remove_seen from arena_util import most_popular fire패키지에 대한 설명은 이전 자료를 참고하면 좋을 것 같습니다 여기서 remove_seen과 most_popular 함수가 추가되었는데 뒤에서 차차 설명하도록 하겠습니다 (2) main함수 if __name__ == "__main__": fire.Fire(MostPopular) MostPopular는 class.. 2020. 10. 20.
카카오 아레나 Melon Playlist Continuation baseline github 분석 - (1) split_data.py 실행순서에 따른 코드 분석 (1) module import copy import random import fire import numpy as np # arena_util.py에서 함수 호출 from arena_util import load_json, write_json (2) main if __name__ == "__main__": fire.Fire(ArenaSplitter) fire패키지에 대한 이해는 다음을 참고해주세요. bladejun.tistory.com/21 Python fire package fire 패키지는 Python에서의 모든 객체를 command line interface로 만들어 준다. python 객체(함수, 클래스, dictionary, list, tup.. 2020. 10. 19.
728x90