본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://abit.ly/lisbva

 

공부 시작

강의 종료

강의장

학습 인증샷

학습후기

 


추천 시스템의 핵심은 결국 데이터셋이다

 

이번 강의는 추천 시스템에서 ‘모델’보다 중요한
데이터셋 구성에 집중한 내용이었다.

처음엔 모델이 전부인 줄 알았는데
실무에서 추천을 직접 만들어보면
어떤 데이터를 어떻게 모으고, 전처리하고, 학습용으로 구조화하느냐가 중요하다

garbage in garbage out이란 말이 괜히 있는게 아니다

 


추천 시스템에 필요한 데이터는 무엇인가?

 

기본적으로 추천 시스템은
유저 - 아이템 - 인터랙션
이 세 가지가 핵심이다.

유저 정보 (age, gender, location 등)
아이템 정보 (카테고리, 가격, 속성 등)
그리고 두 요소가 만나 일어난 인터랙션 (클릭, 구매, 시청, 좋아요 등)

인터랙션이 발생한 로그가 많으면 많을수록,
좋은 추천 시스템을 만들 가능성이 높아진다.

 

하지만 초기에는 유저 행동 로그가 거의 없다는 거다.
특히 서비스 런칭 직후에는 cold start가 디폴트다.

그래서 유저-아이템 간의 정적 정보로 시작하고
조금씩 인터랙션 데이터를 쌓아가는 구조를 처음부터 고려해야 한다.

 


유저 행동 로그, 어떻게 쌓을 것인가?


클릭은 반드시 쌓아야 한다.
단순히 구매나 좋아요만 남겨서는 부족하다.

구매는 '완료된 의사결정'일 뿐이고,
실제 유저가 뭘 보고, 뭘 넘기고, 어디서 멈췄는지
그 수많은 비의사결정의 흔적이 훨씬 중요하다.

예를 들어, 유저가 상품 상세페이지까지 들어왔다가 나간 것도,
여러 항공권 중 하나만 눌러봤다는 것도,
모두 그 유저의 ‘선택 기준’에 대한 단서다.

이걸 놓치면 모델은 ‘왜’를 배울 수가 없다.

 


좋은 추천 시스템용 데이터셋이란?

 

다양한 종류의 인터랙션 로그를 갖고 있어야 하고

인터랙션 이전 맥락(시간, 위치, 디바이스 등)도 있어야 하며

인터랙션 후 결과(이탈, 구매, 장바구니 등)도 포함되어야 한다

 

강의에선 한 예로 유튜브를 들었다.
시청 시작 로그 → 시청 중단 로그 → 시청 완료 로그 → 다음 행동 로그
이 모든 걸 연결해서 유저의 선호를 예측한다.

우리 서비스도 마찬가지다.
검색 키워드 목록에서 뭘 봤는지
어디서 몇 초간 머물렀는지, 어떤 추천을 클릭했는지, 추천 이후 뭘 했는지
이런 걸 모두 함께 봐야 추천 시스템이 의미 있는 학습을 할 수 있다.

 


추천 데이터셋을 구성할 때 반드시 고민할 것

 

강의 후반에 나왔던 중요한 포인트가 있다.

추천 시스템용 데이터셋은 단순히 데이터만 있다고 되는 게 아니다.
구조화가 되어 있어야 한다.

  1. 유저-아이템-인터랙션 관계를
  2. 모델이 학습 가능한 형태로
  3. 필요하면 시계열을 고려해서
  4. Feature Engineering까지 미리 설계된 상태로

실무에서 내가 느낀 건
데이터는 많지만 쓸 수 없는 상태인 경우가 대부분이라는 거다.

예를 들어 로그는 있는데 item_id가 빠져 있거나, timestamp가 깨져 있거나,
혹은 이벤트 명이 중복되거나 필드 구성이 불규칙하면
전처리부터 끝이 안 보인다.