Contents 1. 대회 내용 저는 계속 피처 엔지니어링을 진행했습니다. 팀원들도 모델에 대한 실험 기록을 MLflow로 하고 싶다는 니즈가 있어서 제가 Quick Start Tutorial 코드를 제작하여 팀원들에게 공유했고, 팀원들이 모두 해당 코드를 통해 MLflow를 도입하여 실험 기록들을 해 나갔습니다. 인상 깊었던 내용은 문제 유형에 대해 유저별로 다양한 군집화를 해서 피처를 생성하고 도입했다는 점입니다. TSNE를 통해 2차원으로 만든 뒤에, KMeans 부터 DBSCAN, HDSCAN을 이용해 군집화하고 카테고리컬 피처로 생성하여, 다른 피처와 조합해 다양한 피처들을 생성하고 추가하여 성능을 측정해보았습니다. 외에도 elo Function을 이용해 유저의 상대 난이도를 계산해서 피처에 적..
Contents 1. 대회 진행 내용 저는 이번 주에 DKT 대회에서 Feature Engineering을 주로 했습니다. Feature Engineering 하면, LGBM으로 성능을 측정하고 MLflow에 실험 기록까지 되도록 Baseline을 만들었고, 계속 실험하고, 데이터를 깊게 보고, 성능이 올라가거나 내려갔으면 데이터로부터 그 원인을 찾는 것에 모든 시간과 노력을 쏟았습니다. 아래는 제가 실험한 내역을 MLflow에 기록한 화면입니다. 제출한 경우 LB(Leader Board) AUC에 그 점수를 적었습니다. CV Strategy를 짜다가 막힌 부분과, Validation AUC가 Validation Set을 어떻게 설정해도 항상 좋아지는 피처가 있는데, 제출만 하면 성능이 안 좋게 나와 그..
Contents 1. 대회 진행 이번 DKT(Deep Knowlege Tracing) 대회는 학생들이 문제를 푼 TimeSeries가 포함된 Sequence 데이터를 받아서, 테스트 데이터에서 학생들이 마지막 문제를 맞혔을지 틀렸을지 예측하는 이진 분류(Binary Classification) 문제입니다. 평가 지표는 AUROC를 사용합니다. 저희 조는 대회가 시작하고, 브레인스토밍을 하여 각자 해보고싶은 Task를 정하고, 매일 스크럼을 진행하며 EDA, Feature Engineering, CV Strategy, 모델 구현, 시각화 등 다양한 방향으로 github를 통해 협업하며 진행하고 있습니다. 매일 스크럼에서 각자 데일리 기록 노션페이지를 통해 스스로 어디서 어려움을 느꼈고, 어떤 방향으로 해결..
Contents 1. 강의 내용 이번 주에는 DKT 대회가 시작되며, DKT Task에 대한 이해와 이론 수업, 실습수업과 다양한 실습 코드들이 주어졌습니다. 정말 소화하기 힘들정도로 양이 많아서, 팀원들과 파트를 맡아 각자 공부하고 발표하며 서로 나눠 공부해서 인사이트를 공유하는 방식으로 진행했습니다. 그렇게 했는데도 정말 양이 방대했습니다. 대회 Baseline 코드부터, 경진대회 관련해서 기초적으로 어떻게 대회를 진행해야 하는지, 심화적으로 대회에서 소수점 싸움을 어떤 식으로 진행하는지. 그 안에서 어떻게 인사이트를 얻고 성능에 대한 가설과 검증을 발전시켜 나가는지 등을 심도있게 배웠습니다. 과거 캐글의 DKT 관련 대회 Riiid(뤼이드) 토익 대회나, DSB(Data Science Bowl), ..
Contents 1. 강의 내용 (Product Serving) 1️⃣ 강의 소개 1강에서는 변성윤 마스터님의 소개 및 강의의 목표, 커리큘럼, 어떻게 학습하는 게 좋을지 추천 학습 방식 등을 다뤄주셨습니다. 2️⃣ MLOps 개론 2강에서는 아래 2가지를 중점적으로 다뤘습니다. MLOps 개론 모델 개발 프로세스(Research) 모델 개발 프로세스(Production) MLOps Component Infra(Server, GPU) Serving Experiment, Model Management Feature Store Data Validation Continuous Training Monitoring AutoML 3️⃣ Model Serving 3강 에서는 모델 서빙과 온라인 서빙 vs 배치 서빙의..
Contents 1. 대회 1) Timeline 2) 성능 그래프(RMSE) 1️⃣ 1 주차 2️⃣ 2 주차 3) KPT 회고 1️⃣ Keep 트렐로와 구글시트를 이용하여 실험을 체계화한 것. github 관리한 방식 model branch, data branch 나눠서 각자 브랜치 만들어서 진행한 방식이 체계적이고 좋았다. 슬랙 봇 사용한 것. Minimum loss랑 Pretrained Model Checkpoint 설정한 부분. 디버깅 공유해주시고, 그렇게 공유하는 분위기를 만든 것. 3️⃣ Problem baseline에만 있는 모델만 사용한 것. 어떤 모델을 사용한다는 것이 데이터에 대한 EDA로부터 나와야 한다. → 이러이러했기 때문에 이런 모델을 썼다가 너무 명확한 부분이 좋았다. 이번에 우..
Contents 1. 강의 내용 1️⃣ 추천 시스템 개론 추천 시스템의 정의부터, 개발 시 고려해야 할 점으로 데이터, Task 설정, 목적함수 설계 등을 배웠습니다. 추천 시스템의 분류 체계를 정말 보기 좋게 알려주셨습니다. 외에 평가방법으로 Offline Test와 Online Test 방법을 알려주셨습니다. 2️⃣ CB(Content Based 추천 시스템)과 CF(Collaborative Filtering)의 대분류 콘텐츠 베이스 추천 시스템(CB)의 개념과 다양한 유사도 측정방법 및 예제를 학습했습니다. CB는 크게 Vectorizer와 Similarity로 분류됩니다. Vectorizer는 TF-IDF나 Word2Vec을 이용해 추천할 아이템을 임베딩 벡터로 변환하는 것입니다. Similari..
Contents 1. 강의 내용 1) RecSys(추천 시스템) 7️⃣ 딥러닝을 이용한 추천 시스템 2 7강에서는 GNN(Graph Neural Network)기반의 추천 시스템 개념과 활용 예시(NCGF), 그리고 GNN의 한계와 이를 극복한 GCN(Graph Convolution Network)과 활용 예시(LightGCN) 그리고, RNN(순환 신경망)을 활용한 추천 시스템 GRU4Rec을 배웠습니다. GNN이란 그래프를 활용한 신경망을 의미합니다. 추천 시스템에서 왜 그래프를 활용했을까요? 그래프만의 자료구조 특징 때문입니다. 그래프틑 노드(정점)과 엣지(간선)으로 이루어진 자료구조입니다. 아래 그림을 보면, 기존의 이미지, 텍스트, 정형 데이터는 격자 형태로 표현이 가능했습니다. 하지만, SNS..
Contents 1. 강의 내용 1) RecSys(추천 시스템) 1️⃣ 추천 시스템 Basic 1 1강에서는 추천 시스템이 무엇이고, 해결하고자 하는 문제가 무엇인지와 추천 시스템을 평가하는 지표를 Offline Test와 Online Test로 나누어 학습하였고, 인기도 기반 추천이 무엇인지 예제와 함께 배웠습니다. 추천 시스템이란 사용자에게 적합한 아이템을 추천해주는 시스템을 의미합니다. 해결하고자 하는 문제는 특정 사용자가 특정 아이템을 소비할 Score를 어떻게 구하냐에 따라 크게 2가지로 나뉩니다. 첫번째는 랭킹 문제로, 사용자에게 적합한 아이템 Top K개를 추천하는 문제입니다. Precision@K, Recall@K, MAP@K, NDCG@K 와 같은 평가지표가 쓰입니다. 두번째는 예측 문제..
Contents 1. 강의 내용 1) Deep Learning Basic 1️⃣ 딥러닝의 역사 1강에서는 딥러닝분야에서 중요한 덕목과 Key Components와 역사를 배웠습니다. 딥러닝 분야에서 중요한 덕목은 구현 실력과 수학 스킬, 최신 트렌드의 논문을 읽고 이해하는 능력을 나뉜다고 합니다. 딥러닝의 Key Components는 아래 4가지 입니다. 1. Data: 학습 및 테스트할 데이터 2. Model: 학습할 모델 3. Loss Function: 학습에 사용되는 Loss 함수로, 모델을 어떻게 학습할지에 대한 기준입니다. 4. Algorithm: Loss를 최소화하는 알고리즘 ex) Adam Optimizer 딥러닝의 역사는 2012년 부터 2020년까지 딥러닝 분야에서 굵직한 BreakThr..
Contents 부스트캠프 AI tech 4기를 진행한 지 1주가 지났습니다. 슬랙에는 정말 많은 채널과 Tip들 그리고 자유롭게 채널을 생성하고 정보 공유를 하며, 스터디도 구하고 공유하는 문화가 잘 갖춰져 있습니다. 특히 운영진들과 멘토 조교님들이 활발하게 공유문화를 장려해서 캠퍼분들도 열정 있게 적극적으로 임하는 느낌입니다. 이번 포스팅에선 1주 동안 배운내용과 부스트캠프의 이벤트들을 간략히 정리하고자 합니다. 1. 강의 내용 1) Python 1️⃣ Python 기초 1~2 강에 걸쳐, 파이썬의 설치부터 환경설정(conda)과 기초적인 변수, 조건문, 반복문, string 관련 메소드들을 배웠습니다. 한 가지 특이했던 점은 함수에서 전역 변수에 있는 리스트를 호출해서 값을 변경하면 전역 변수에 있..