목차
그냥 일기 + 배우면서 생각한 것들 기록
오늘 한 일
- Book Rating EDA 따라가기
- 도메인 기초 대회 계획하기
- 1,2강 강의 수강
- 최종 프로젝트 팀업 관해 생각하기
Book Rating EDA 따라가기
- 추천 트랙의 데이터는 오픈소스 데이터라 코드만 조금 조심하면 되어 다행..(인가?)이다!
- kaggle에서의 누구보다 빠른 EDA 파일 올리기! 를 시도하고 싶었는데, 이 플랫폼에는 노트북 업데이트 기능이 따로 없고, 이미 well-established EDA 파일이 있어서 머쓱하게 따라가보는 중이다. 나는 데이터를 유랑하며 발굴하는 것을 매우매우 즐기는 사람인데, 남이 EDA 해놓은 것을 보니, 새로운 메서드와 인사이트가 보여 개척하는 맛과는 다르게 배울 수 있어서 좋았다!!
- 이름하여 "enhanced box plot"!! box plot은 사분위수로 분포를 나타내는 그림인데, boxenplot에서는 진하게 표시된 부분이 Q1-Q3 구간을 나타내며, 나머지 데이터는 다른 quantiles(백분위수)를 나타낸다고 !? 아래 그림 출처
도메인 기초 대회 계획하기
- Book Rating 대회가 오늘부로 시작했다. 다섯명이 어떻게 협업하여 배운 개념을 적용해보며 잘 이끌어나갈 수 있을지 고민하느라 시간을 좀 들여보았는데, 음... 알고보니 아주 잘 작성된 베이스라인 코드가 있어 머쓱머쓱했다... 나 혼자하는 것+시간이 있으면 from scratch로 해보고 싶은데 시간도 많지는 않으니 아마 이 코드를 잘 활용해보아야겠다.
- 멘토님+운영진 모두 성능에 집착하기 보다는, 배운 것을 잘 적용하고, 왜 이 모델이 잘 동작하지 않는지 생각하고 정리하는 데에 초점을 두라고 했다. 막상 리더보드가 열리면 뭔가 불붙게 될 거 같지만, 그래도 나만의 규칙을 만들어서 해보아야겠다. 수요일부터 다음주 목요일까지 9*2=18회의 업로드 기회가 있다. 이 기회를 잘 활용해서 적어도 나 대회를 통해 "이런 깨달음이 있었어요." 정도는 얘기할 수 있어야지?
- 베이스라인 코드를 모범 사례로 참고하여, 나만의 실험 관리 방법을 터득해보자. 그리고 책 표지(img), title(text), summary(text)가 있는 약 7만 개의 데이터에서 어떤 모델이 잘 동작했고 왜 그렇게 생각하는지 설명할 수 있도록 생각하고 정리해보자!
1,2강 강의 수강
- 이번 강의들은 주로 실습을 위해 지난 2주간 배운 내용을 다시 한 번 짚어보는 내용들이다. 그래도 다시 짚어가며 들으니까 서서히 개념이 머리에 잡히는 느낌이 든다.
- 데이터 분할 방법에는 Leave-one-last(마지막 데이터 test), temporal User/Global split(시간에 따라 test 데이터 분할), Random split, User Split(콜드 스타트 평가를 위한 분할), K-Fold CV, Time Series CV(val, test 미래로 고정, train만 가변적으로) 등이 있음을 알았다. 추천을 배우기 전 ML researcher의 입장에서, 유저를 기준으로, 시간을 기준으로 데이터를 분할해야 하지 않을까요? 라는 제안을 했던 기억이 있는데, 실제 추천에서도 이렇게 분할을 한다는 것을 보니 뭔가 내심 뿌듯뿌듯하다!
- Offline Test에는 정확성의 평가 지표와 특성 평가 지표? 가 있다는 것, 정확성에서 hit rate를 계산할 때에는 학습 데이터에서 hit 여부를 볼 데이터를 빼야 한다는 것을 알았다. 특성 지표에는 coverage, novelty, personalization, serendipity, diversity가 있는데, GPT4Rec에서 아마존 상품의 카테고리 정보를 가지고 diversity를 평가하는 부분이 떠올랐다. 확실히 추천 문제의 surrogate problem을 풀 때에는 정확성 외의 평가 지표도 도메인에 맞게 정의하여 추천의 찐 목표인 매출, 만족도 등을 향상할 수 있을 것 같다는 생각이 들었다. 이러한 지표들을 현업에서 직접 정의하기 위해서는 필요한 경우 통계 테스트도 수행하고, 나의 목적과 목표를 어떻게 수식에 옮길지 고민해야 하며, 그러려면 옮긴 사례들이 리서치가 필요할 것 같다.
- Content-based Filtering은 아이템이나 유저의 특징 간 유사도를 계산하여 평점을 예측하거나 추천하는 방식으로, 유저와 아이템을 벡터화해야 하며, 그 방법에는 원핫 인코딩이나 임베딩 등의 방식이 있다. 임베딩 후에는 유사도를 정확한 수치로 비교하기 위하여 jaccard, euclidian, cosine, pearson 과 같은 매트릭을 계산해야 한다. 유사도 계산 후에는 유사한 아이템을 선정하거나 가중치로 활용하여 평점 평균을 내어 평점 예측에 활용할 수 있다. 이 방식은 cold-start 에서 자유롭고 새로운 아이템 추천이 가능하다는 장점이 있지만, 유사도가 변경되지 않아, 계속 똑같은 아이템이 추천될 수 있다. 이 때문에 현업에서 베이스 모델로 사용하기보다는, 아이템 선택 시 유사한 이 아이템은 어떤가요? 등의 탭에서만 활용해야 함.
- 메모리 기반 협업 필터링: 어찌보면 content-based와 비슷하게, 하지만 협업 필터링이므로 상호작용으로 프로파일링을 하여 유사도를 계산하는 방식. 희소한 데이터에서 잘 동작하지 않고, 데이터가 늘어나면 확장성에 한계가 생긴다. IBCF의 경우, 아이템에 충분한 유저 피드백이 있어야 하고, UBCF에서는 콜드 스타트 유저에게 추천이 불가하다는 단점이 있음
- 모델 기반 협업 필터링 중 클러스터링 방식: 유저를 그룹화하여 그룹 내 평점을 유저의 평점으로 한다는 개념. 클러스터링을 dis-entangling 할 수 있는 게 아니라면, 해석에도 성능에도 큰 이점이 없을 듯하여 매력적으로 보이지는 않았다.
최종 프로젝트 팀업 관해 생각하기
- 사실 오늘 하루 온종일 한 것은 바로 팀업 관련 고민!
- 구체적인 것 같으면서도 막연한 나의 최종 플젝 방향성. 내가 보기에 우리나라에서 재미있는 커머스는 지그재그, 29, 무신사, 쿠팡.. 사실 내가 자주 들러보는 것들!! 벤치마킹은 식상해보이고, 새로운 아이디어는 별로 떠오르지 않아 고민이 많다.
- 그래도 내가 즐겨보던 것들을 내가 직접 만들어보는 건 꽤 큰 의미가 될 것 같다. 다양한 모델의 결과를 합친다거나(앙상블st), 신규 아이템 추천을 위해 결과에 랜덤성을 섞어낸다거나, 현실의 문제를 가지고 있는 플랫폼을 만들어 가설설정-모델링-사후분석-리포팅까지 할 수 있도록 기획해보는 게 목표다.
- 자료 조사를 하다가 올웨이즈라는 재미있는 플랫폼을 발견했다. 고구마 물주면 배송된다는 올팜에 대해서는 몇 번 들어봤는데 이 플랫폼에 대해서는 처음 들어봤다. 올웨이즈 대표의 인터뷰 영상을 보며, 기존 커머스 시장을 뚫고 나가기 힘든데 핀둬둬라는 중국 기업의 방법을 벤치마킹하여 시장의 일부를 점유하였으며, 매출이 기대되는 지표들의 향상으로 시리즈B까지 무사 안착한 것을 보고 캬...믓찌다고 느꼈다. 그리고 problem solver라는 직군..보다는 역할!이 매력적이게 느껴졌다. 몸은 잘 따라주지 않았지만, 규모가 크지 않은 기업에서 이리 저리 오지랖 부리고 싶은 생각이 많이 들었고, 밥 먹으면서 커피 마시면서 같이 고민하고 답을 생각해보는 것을 좋아했는데, 이런 직군을 가지면 공식적으로 할 수 있는 거잖아? 하지만 solver 각각이 모두 적극적이고 일에 몰입할 수 있어야 하니.... 이번 플젝에 적용하는 것은 어려울 수도..재미있을 수도 있을 거 같다..!!
- 하. 데이터 어떻게 구하지? 라는 생각이 우선 들 때가 많지만, 일단 다 열어놓고 몰라 어떻게든 되겠지 마인드로 생각을 확장해보쟈!!!! 그러다 좋은 아이디어가 나올 수도 있으니까! 내가 아는 것 한해서 생각하지 말고, 뉴스도 보고 앱도 마구 깔아보자.
'회고 🤔 > 네부캠 AI Tech' 카테고리의 다른 글
[네부캠 AI Tech] 7주차 학습 정리 🤓 (1) | 2023.12.22 |
---|---|
[네부캠 AI Tech] 6주차 학습 정리 🤓 (1) | 2023.12.15 |
[네부캠 AI Tech] 5주차 학습 정리 🤓 (1) | 2023.12.08 |
[네부캠 AI Tech] 4주차 학습 정리 🤓 (0) | 2023.12.01 |
[네부캠 AI Tech] 3주차 학습 정리 🤓 (1) | 2023.11.24 |