Coder Social home page Coder Social logo

level2-movie-recommendation-level2-recsys-05's People

Contributors

dongwoo338 avatar kgw7401 avatar kidjung avatar seongbeomlee avatar yuujj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

level2-movie-recommendation-level2-recsys-05's Issues

baseline v2 와 v3 통합

제목

baseline v2 와 v3 통합

내용

v2 와 v3를 통합하여 관리하는 것이 좋을 듯 합니다.
v2와 v3코드 분석을 통해서 좋은 부분을 취합해서 작업하도록 하겠습니다.

코드 분석 결과 해야할 부분을 정리

  • 모델들을 import_module로 불러올 수 있도록 변경
  • trainer, dataset을 import_module로 불러올 수 있도록 변경
  • 모델들 패키지화
  • 트레이너 패키지화
  • 성범님 모델 통합작업
    • MultiDAE
    • MultiVAE
    • NGCF
    • LightGCN
    • SASRec
    • BERTRec
  • 각 모델들을 yaml파일을 이용하여 argument로 넘길 수 있도록 변경

MLFlow를 활용한 실험 관리

MLFlow를 활용한 실험 관리

  • Baseline_Code_V3에 mlflow 연동
  • Baseline_Code_V4에 mlflow 연동
  • user, experiments, runname 관리
  • yaml 파일 정보를 Artifacts로 관리하도록 기능 수정

negative_sampling 기준으로 활동 기간과 영화 개봉년도 추가

우리 문제에서 성능이 좋기 위해서는 정답을 잘 맞추는 것뿐만 아니라 오답도 잘 피해야합니다.

현재, 오답을 만들기 위한 negative_sampling을 하는 기준은 단순히 '유저가 본 아이템인지의 여부'입니다.
negative_sampling시 기준을 '유저의 마지막 활동 기간(마지막 타임 스탬프)'과 '영화 개봉년도'를 조합해서 넣으면 어떨까합니다.

즉, '유저의 마지막 활동 기간보다 늦게 개봉한 영화'면서 '안 본 영화'로 negative_sampling을 진행하는 것입니다.

[방식]

  1. 영화 개봉년도에 따른 인덱스를 추가한다.
  2. '유저의 마지막 활동 기간' 이후인 기준(1) 인덱스를 추가한다.
  3. 2번 이상인 인덱스 & 아이템이 존재하지 않는 경우를 추출한다.

관련된 데이터 preprocessing과 utils 코드를 추가해보겠습니다..!

NNI를 통한 실험 시 발생하는 MLFlow 로깅 이슈

NNI와 MLflow 관련하여 3가지 이슈를 확인했습니다.

  • NNI를 통한 학습 시 MLFlow에 margs가 제대로 기록되지 않는 문제
  • NNI를 통한 학습 시 모델이 새로운 폴더를 생성하여 저장하지 못하는 문제
  • MLflow에 저장된 모델을 다운로드해서 활용할 수 없는 문제

하이퍼파라미터 튜닝 진행하며 해당 이슈들 체크하겠습니다!

베이스라인 코드 새로 제작하는 것에 대해

제목

베이스라인 코드 새로 제작하는 것에 대해

내용

베이스라인 코드 V2 와 V3를 통합해 보려 했는데 원래 V2코드도 객체지향적으로 짜여진 코드가 아니어서 둘이 합치는 것이 너무 힘드네요 제 생각에는 성범님이 만드신 코드 위주로 해서 베이스라인 코드를 다시 만들어 볼까 합니다.

각 모델들과 트레이너, 데이터셋은 성범님 스타일에 맞춰 제작할 예정입니다.
train.py 위주로 리팩토링 하면 될 것 같습니다.

모델 학습 느린 이슈

제목

베이스라인 코드에서 모델 학습 느린 이슈

내용

모델 학습이 너무 심하게 느려서 원인 파악을 하고 있습니다.
오전에 유정님이 오전에 오래걸린다고 지적하셨고 성범님도 RecVA가 오래걸린다고 하셔서 살펴보니 batch_size가 이상한 것 같아요

pre-commit을 이용한 black, flake8 적용

제목

pre-commit을 이용한 black, flake8 적용

작업내용

pre-commit을 이용하여 black, flake8을 자동화 하여 적용할 수 있도록 작업하겠습니다.
README 에 적용방법 명세할 예정.

Mlflow 아티팩트 원격 로깅 문제

제목

Mlflow 아티팩트 원격 로깅에 대해

내용

mlflow 아티팩트 로깅이 원격에서는 정상적으로 동작하지 않습니다.
제가 저번대회에서도 그랬는데 아마 유정님 본인 서버에서 동작시 본인 아티팩트만 정상적으로 로깅이 될 겁니다.

사실 모델이 저장 안되는 것은 상관없으나 유정님 하신 작업물을 보면 저희 yaml파일을 아티팩트로 저장하고 따로 파라미터를 저장하지 않아서 아티팩트까지 로깅이 안되면 성능 외에 어떤 세팅을 하였는지 알 수 없는 문제가 발생합니다.

이부분 참고 부탁드립니다.
저도 한번 살펴볼께요

아이템 후보 집단 생성의 필요성

더 높은 성능을 위해서는 유저마다 아이템 후보 집단을 생성하는 것 필요함

ex) 2016년에 주로 영화를 소비한 유저에게는 2017년 이전의 영화 list에서만 추천

GNN, AutoEncoder 기반 모델 개발의 필요성

현재 주어진 SASRec, BERTRec, S3Rec의 경우 유저 영화 평점 시퀀스를 바탕으로 미래에 볼 영화를 추천하는 방식으로 이루어짐

따라서 Sequential 예측에 최적화된 모델(현재 주어진 모델)이 중간에 비어있는 영화(우리의 Task)를 잘 맞출 수 있을까?라는 의문이 듬

이런 문제를 해결할 수 있는 모델이 GNN, AutoEncoder 계열의 모델이라고 생각됨

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.