-
패스트캠퍼스 환급챌린지 57일차 미션 (3월 28일) : 30개 프로젝트로 끝내는 추천시스템 구현 초격차 패키지 강의 후기2024년 패스트 캠퍼스 챌린지 2024. 3. 28. 00:13
강의 내용 Review
📍배운내용📍
- 개인화 추천 상품
- 랭킹
👉강의내용👈
개인화 추천 상품
- 추천 시스템: 쿼리, 추천시스템이 있을때 아이템을 랭킹을 매겨 추천하고 컨텍스트를 넣어서 개인정보를 넣음
- 고객의 아이템과 상호작용을 기록함 : 이것을 쿼리로 만들어서 개인화 추천을 하면 콜드 스타트 추천에 좋음
- 내적이 있고 유저 임베딩과 아이템 임베딩이 들어올때 선호도 예측함
- 최근 본 상품을 보면 GRU에 넣어서 유저 임베딩을 생성함, 엔티티는 액션(클릭, 검색, 장바구니등)
- 유저 액션 집합 = 유저, 아이템의 제목을 토큰화 해서 임베딩함
- 둘다 아이디가 안들어가서 성능데이터도없고 아이템 기반임, 새로운 아이템이 들어와도 임베딩 생성가능 , 투타워 구조
- 인배치 네거티브를 쓰면 일반화가 높아짐, 하나만 뽑아야할 때는 성능이 떨어질수도있음
- 랭킹에서는 여러가지 LTR모델을 사용함
- 개인화 추천 제공을 위한 아키텍처의 변화:
- 오프라인: 스파크 ETL을 통해 데이터를 처리함, GPU클러스터를 통해 임베딩 생성, 오프라인에서 계산된 임베딩 생성 KNN도 오프라인으로 저장, 오프라인으로만 구현가능
- 오프라인과 NRT를 하이브리드로 사용: KNN만 온라인 사용, 유저 아이디가 들어왔을때 유저 아이디로 미리 계산된 유저 임베딩을 가져와서 아이템 임베딩을 구함
- NRT : 카프카를 통해 유저 클릭 이벤트가 들어오고, 실시간 데이터를 처리해서 유저 임베딩을 예측함
- 투타워 : 유저의 세션을 기반으로 개인화 추천 만들수있음
- 인배치는 리트라이벌에 중요함, 랭킹은 이미 관련있는 것 들 사이에서 중요
랭킹
- 비슷한 상품에 들어간 랭킹 모델: 비슷한 제품 추천함
- 리트라이벌 - 랭킹 - 오더링
- 오더링: 랭킹의 결과를 가지고 광고비를 얼만지 고려해서 순서를 정함
- 랭킹모델은 GBDT를 사용했고 피처 추출이 중요함, (아이템의 히스토리 데이터, 시드 아이템, 컨텍스트, 유저 개인화 피처)
- 바이너리 구매 레이블 사용, 하지만 구매 하지 않아도 좋은 추천일수있음, 클릭에 비해 구매는 스파스한 데이터, 다양한 액션으로 아이템에 대한 관심은 표현 -> 멀티태스크 사용
- 유저의 관심사를 나타내는 액션의 종류를 잘 정함, 액션의 연관도 레벨을 정의
- GBDT는 멀티레이블을 다룰수 있음, 직접적으로 웨이트를 줄 수 있는 방법은 없음( 클릭보다 구매가 더 웨이트가 높음)
- 따라서 페이어 와이즈 로스를 사용했고 레이블마다 웨이트를 줌
- 멀티 태스크라고 해서 연관성이 있어야함
- 랭귀지 모델 적용함: BERT
- TF-IDF기반으로 씨드와 후보 아이템의 제목 유사성 구함
- 유사도가 중요한 피처이기 때문에 이 유사도를 어떻게 더 높일수있을까? TF-IDF는 유사도를 알수없음
- BERT는 임베딩 사이의 거리가 적합도를 나타낸다고 할수없음, 투타워는 메트릭 러닝: 임베딩이 유사도를 나타내도록 강제로 학습 함
- BERT 지식 증류: 모델 경량화 기술을 통해 암묵지의 지식을 배움
- 샴 네트워크 구조 : 모델이 웨이트를 공유함, 동일한 네트워크여야하고 같은 엔티티를 받아야함
- InfoNCE : 주로 메트릭 러닝함, 후보자와 아이템이 co click된 임베딩을 넣고 유사도를 구함
- 중요한 피처를 만드는 것이 중요함
- 유저의 다양한 액션을 학습하면 추천 성능에 도움을 줌
공부사진
57일차 후기
추천 시스템에 대해서 많이 배울수 있었다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
'2024년 패스트 캠퍼스 챌린지' 카테고리의 다른 글