NAVER boostcamp AI Tech 19

[NAVER boostcamp AI Tech 5기] 21주차 학습 정리

RecSys Level 3 - Final Project 4주차 최종 프로젝트가 오늘로써 마무리됐다. 한 달 동안 정말 열심히 달려온 것 같다. 아키텍쳐를 크게 설계했음에도 불구, 팀원 모두가 일당백 이상으로 수행해준 결과, 처음의 계획을 모두 이룬 건 아니어도 발전 가능성을 남겨두고 성공적으로 서비스 배포를 마칠 수 있었다! 개인의 취향에 맞는 커피 원두를 추천해주는 서비스로, 다양한 로스터리와 원두 상품을 담고 있다. http://coffeeplaylist.kro.kr/ COFFEE PLAYLIST coffeeplaylist.kro.kr 처음 프론트엔드를 해주셨고, 쉽지 않았을텐데 단기간에 너무나도 훌륭한 웹 페이지를 만들어주신, 항상 배려심 넘치는 지수님, 백엔드 경력을 바탕으로 훌륭한 PM으로서 전..

[NAVER boostcamp AI Tech 5기] 19주차 학습 정리

1) RecSys Level 3 - Final Project 2주차 벌써 어느새.. 최종 프로젝트 중반부가 지나가고 슬슬 후반부로 접어들고 있다. 해야 할 게 아직 많아서 잘 마무리될지 조금 걱정이 되기도 하지만, 우리 팀은 잘 해낼 거라 믿는다..! 나는 이번주에, 비슷한 아이템을 추천해주는 Content-Based Filtering을 구현하는 데 집중했다. 이론은 간단하다 생각했지만 직접 베이스라인을 짜보면서 고려하고 생각해야할 점이 많다는 걸 느꼈다. 이런 기본 모델도 그런데 다른 모델들은 얼마나 더 그럴까.. 싶기도 했다. 베이스라인을 짜서 피드백을 받고, 또 나온 결과를 분석해서 고쳐 나가다 보니 조금 시간이 걸렸지만 베이스라인을 잘 완성할 수 있었고, 지금은 모듈화를 진행중이다. 오늘 안에 끝..

[NAVER boostcamp AI Tech 5기] 18주차 학습 정리

1) RecSys Level 3 - Final Project 1주차 지난 주를 새로고침 데이로 쉬면서 재정비하는 시간을 가졌고 이번주부터 본격적으로 최종 프로젝트가 시작되었다. 새로고침 데이에는 어디를 가고 싶지도 않았고 그냥 집에서 푹 늘어져서 쉬고 싶었는데, 3일을 늘어져서 쉬었다. 아주아주 만족스러웠다. ㅋㅎㅋㅎ 월요일은 프로젝트 컨셉을 다시 정해보고 어떤 방향으로 가야할지 다같이 고민했다. 데이터 수집도 계속 병렬적으로 열심히 해 나갔고, 나는 특히 리뷰 크롤링에 대해 깊게 파보고 리팩토링을 진행하며 데이터 수집을 진행해 나갔다. 화요일에 멘토링 시간에 그러한 프로젝트 방향성에 대한 질문을 했고, 멘토님께서 금요일까지 해결할 임무 2가지를 주시면서 팀의 목표가 자연스레 설정이 되었다. 1. 우선 ..

[NAVER boostcamp AI Tech 5기] 16주차 학습 정리

1) RecSys Level 2 대회 - Movie Rec 4주차 드디어 마지막 대회인 Movie Recommendation 대회가 끝이 났다. 이번주는 대회 마지막 주인 만큼, 앙상블에 힘을 썼다. 나는 hard voting, soft voting 기법에 대한 앙상블 모듈 작성 작업을 맡아서 처음으로 앙상블 모듈을 작성해보았다. 처음엔 막막하고 어떤 로직으로 구현할지 고민을 많이 했던 것 같다. 특히 우리 대회의 평가 지표가 recall@k이기 때문에, 즉 한 유저마다 k개의 아이템을 뽑기 때문에 더 어렵다고 느낀 것 같다. hard voting을 구현할 때, 대회의 평가 지표가 recall@k이기 때문에 hard voting으로 k개의 아이템을 순서 상관 없이 뽑아도 된다는 점을, 팀원 분들과 얘기하..

[NAVER boostcamp AI Tech 5기] 15주차 학습 정리

1) RecSys Level 2 대회 - Movie Rec 3주차 WandB를 끝장 냈다. 할 수 있는 데까지 다 해본 것 같다. 특히 Sweep! 원래는 스크립트 파일 안에 구현해서 따로 새로운 스크립트를 만들었는데, train.py 상에 wandb 연결만 해주고 터미널에서 sweep을 실행할 수 있도록 변경했다. 훨씬 간편하고, 구현도 관리도 더 쉬웠고, 사용하기에도 훨씬 낫다! 어제 밤~새벽에 삘 받아서 했는데 진작 적용할 걸 하는 아쉬움이 있다. 저번주에는 wandb도 아예 처음이어서 무작정 어찌저찌 구현한 것 같은데, 이번주 안으로 끝장 내니 후련하고 기분이 좋다. 대신 다음엔 이러한 기능들을 좀 더 빠르게 잘 적용해내고 싶다! 또 구현할 모델들에 대한 사전 공부를 진행한 후 모델을 구현하는 것..

[NAVER boostcamp AI Tech 5기] 14주차 학습 정리

1) RecSys Level 2 대회 - Movie Rec 2주차 MovieRec 대회 & 최종 프로젝트 구상 & 기연프 신청 & 팀 단체로 아픔(ㅠㅠ)으로 인해,,, 아마도 가장 정신 없는 주였다. SASRec 논문을 읽은 후 Recbole 베이스라인에서 SASRec config를 설정해 돌려보았는데, 모델 유형(general/sequential/...)마다 달라서 잘 안돌아갔다. 나는 sequential 모델 트러블 슈팅 조금 시도해보다가 포기했고,... WandB Sweep을 적용해 하이퍼파라미터 튜닝 코드를 짜는 작업을 맡게 되었다. 현재 거의 완료한 상태이지만, 몸이 안좋아서 시간을 지체한 게 팀원들에게 미안하기도 하고 아쉽다 ㅠ ㅠ 2) 피어세션 수요일에 첫 논문 스터디를 진행했다. 다들 처음..

[NAVER boostcamp AI Tech 5기] 13주차 학습 정리

1) RecSys Level 2 대회 - Movie Rec 1주차 이번 대회는 첫 주에 강의, 미션을 집중해서 다 완수한 후 본격적으로 시작하기로 했다. 강의와 미션에서 대회에 도움이 되는 내용과 자료들이 많이 나오는데, 저번 대회에서는 그걸 제대로 활용하지 못했기 때문에 이번에는 잘 활용해보려 한다! 이번주 강의를 통해 추천 시스템의 기초부터 심화까지 빠르게 훑을 수 있었다. 추천 시스템은 개인화 된 서비스의 일종으로, 사용자와 아이템 간 관계(compatibility)를 명시적으로 모델링하는 방법론이다. 난 아무래도 단순히 추천을 수행하는 DL 모델들을 계속 떠올리게 되는데, 추천 '시스템' 자체는 더 넓은 범위임을 다시 한 번 명심하게 되었다. Recommendations with Side-info..

[NAVER boostcamp AI Tech 5기] 12주차 학습 정리

1) RecSys Level 2 대회 - DKT 4주차드디어 오늘부로 대회가 끝났다! 이번주는 코딩 .. 실험.. 그리고 실험..의 반복이었던 것 같다. ㅎㅎ 한 달간의 대회가 끝나 후련하기도, 아쉽기도 하다. 이번 대회를 통해 나의 부족함을 많이 깨달았다. 하지만 좌절하는 게 아니라 이제부터 개선해 나가면 된다! 이번 대회에서의 경험이 앞으로의 성장의 밑거름이 될 거라 믿는다. Cross-Validation저번주 Cross Validation 작업을 맡아 sklearn 모듈을 활용해 1차적으로 구현을 완료했으나, 대회의 데이터 형식과 일치하도록 하려면, user 기준으로 split해야 했다. 하지만, user 기반 split 기능은 이미 초반에 빠르게 구현하지 못해서 한 번 포기했던 상태이고, 내 지식..

[NAVER boostcamp AI Tech 5기] 11주차 학습 정리

1) RecSys Level 2 대회 - DKT 3주차 2주차까지는 강의 수강 & 협업 준비에 힘을 썼고, 3주차부터는 본격적으로 프로젝트 코드를 만들기 시작했다. 이번주에 내가 주로 힘을 쏟은 건 Cross-Validation이다. sequential data는 거의 다뤄보지 않아서, 익숙하던 tabular data와 다르게 고려해야 하는 것이 많았다. 예를 들어, shuffle을 하면 sequential 특성이 사라지므로 하면 안된다. 그리고 이번 데이터는 user별로 묶어서 split 하기 때문에 custom 함수를 짜려 했으나, 어려워보여서 우선은 그런 거 없이 사이킷런 모듈을 활용해서 짰다. 이렇게 큰 프로젝트 코드 안에 어떤 꽤 중요한(?) 기능을 만든 건 처음이어서 어려웠고, 오래 걸린 것 ..

[NAVER boostcamp AI Tech 5기] 10주차 학습 정리

1) 학습 내용 정리 전체적으로 이번주는, 강의 보다는 대회 관련 작업 준비 & 공부 하는 데 시간을 썼다. Kaggle Riiid Winner's Solution - Last Query Transformer RNN 구조 간단 요약 문제 간 특징을 Transformer로, Sequence 간 특징(=>sequential 한 특징)을 LSTM으로 뽑아내 DNN을 통해 정답 여부 예측 특징 feature engineering을 거의 하지 않고 오직 5개의 feature만 사용 마지막 query만 사용해 시간 복잡도를 O(L^2)에서 O(L)로 줄임 2) 피어세션 팀 분위기가 정말 좋다! 긍정적이고 서로 칭찬도 일상적으로 하고, 솔직한 의견과 감정을 공유하려 하는 게 우리 팀의 큰 장점 같다. 다들 생각하는 ..