boostcampaitech3 / level2-movie-recommendation-level2-recsys-05 Goto Github PK
View Code? Open in Web Editor NEW[부스트캠프 AI Tech 3기 level2] Movie Recommendation 대회
[부스트캠프 AI Tech 3기 level2] Movie Recommendation 대회
baseline v2 와 v3 통합
v2 와 v3를 통합하여 관리하는 것이 좋을 듯 합니다.
v2와 v3코드 분석을 통해서 좋은 부분을 취합해서 작업하도록 하겠습니다.
우리 문제에서 성능이 좋기 위해서는 정답을 잘 맞추는 것뿐만 아니라 오답도 잘 피해야합니다.
현재, 오답을 만들기 위한 negative_sampling을 하는 기준은 단순히 '유저가 본 아이템인지의 여부'입니다.
negative_sampling시 기준을 '유저의 마지막 활동 기간(마지막 타임 스탬프)'과 '영화 개봉년도'를 조합해서 넣으면 어떨까합니다.
즉, '유저의 마지막 활동 기간보다 늦게 개봉한 영화'면서 '안 본 영화'로 negative_sampling을 진행하는 것입니다.
[방식]
관련된 데이터 preprocessing과 utils 코드를 추가해보겠습니다..!
NNI와 MLflow 관련하여 3가지 이슈를 확인했습니다.
하이퍼파라미터 튜닝 진행하며 해당 이슈들 체크하겠습니다!
베이스라인 코드 새로 제작하는 것에 대해
베이스라인 코드 V2 와 V3를 통합해 보려 했는데 원래 V2코드도 객체지향적으로 짜여진 코드가 아니어서 둘이 합치는 것이 너무 힘드네요 제 생각에는 성범님이 만드신 코드 위주로 해서 베이스라인 코드를 다시 만들어 볼까 합니다.
각 모델들과 트레이너, 데이터셋은 성범님 스타일에 맞춰 제작할 예정입니다.
train.py
위주로 리팩토링 하면 될 것 같습니다.
베이스라인 코드에서 모델 학습 느린 이슈
모델 학습이 너무 심하게 느려서 원인 파악을 하고 있습니다.
오전에 유정님이 오전에 오래걸린다고 지적하셨고 성범님도 RecVA가 오래걸린다고 하셔서 살펴보니 batch_size가 이상한 것 같아요
pre-commit을 이용한 black, flake8 적용
pre-commit을 이용하여 black, flake8을 자동화 하여 적용할 수 있도록 작업하겠습니다.
README 에 적용방법 명세할 예정.
Mlflow 아티팩트 원격 로깅에 대해
mlflow 아티팩트 로깅이 원격에서는 정상적으로 동작하지 않습니다.
제가 저번대회에서도 그랬는데 아마 유정님 본인 서버에서 동작시 본인 아티팩트만 정상적으로 로깅이 될 겁니다.
사실 모델이 저장 안되는 것은 상관없으나 유정님 하신 작업물을 보면 저희 yaml파일을 아티팩트로 저장하고 따로 파라미터를 저장하지 않아서 아티팩트까지 로깅이 안되면 성능 외에 어떤 세팅을 하였는지 알 수 없는 문제가 발생합니다.
이부분 참고 부탁드립니다.
저도 한번 살펴볼께요
더 높은 성능을 위해서는 유저마다 아이템 후보 집단을 생성하는 것 필요함
ex) 2016년에 주로 영화를 소비한 유저에게는 2017년 이전의 영화 list에서만 추천
현재 주어진 SASRec, BERTRec, S3Rec의 경우 유저 영화 평점 시퀀스를 바탕으로 미래에 볼 영화를 추천하는 방식으로 이루어짐
따라서 Sequential 예측에 최적화된 모델(현재 주어진 모델)이 중간에 비어있는 영화(우리의 Task)를 잘 맞출 수 있을까?라는 의문이 듬
이런 문제를 해결할 수 있는 모델이 GNN, AutoEncoder 계열의 모델이라고 생각됨
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.