지난 포스팅에 이어서 기업 연계 프로젝트에 대한 이야기입니다. 지난 번에는 컨택에 대해서 말씀드렸는데요, 오늘은 제가 담당했던 추천시스템에 대해 다뤄보려고 합니다.
추천시스템 스터디
추천시스템은 Base 세션에서 다루는 주제가 아닙니다. 또한, 저를 비롯한 팀원들도 추천시스템에 대한 이해가 높지 않아서 스터디가 필요하다고 생각했어요. 컨택을 진행하면서 스터디를 함께 진행했고, 스터디 커리큘럼은 아래와 같습니다.
- 추천시스템 인터넷 강의 수강 : 강의를 듣고, 돌아가면서 해당 주차의 강의 내용을 정리하여 발제하는 형식으로 진행하였습니다.
- 추천시스템 관련 이슈 : 추천시스템에는 cold start, sparsity problem 등의 문제가 있습니다. 추천시스템에 대해 보다 깊게 이해하기 위해서 강의 내용과 더불어 추천시스템 관련 이슈를 정리하여 발제했습니다.
- 스터디에서 다룬 추천시스템 관련 이슈는 아래와 같습니다. 추천시스템에서 다루는 문제와 이를 해결하기 위한 기존 연구들, 기존 연구들의 효과 등을 다뤘어요.
1주차 | OCCF Problem |
2주차 | 추천시스템 성능 개선 방법 |
3주차 | Cold Start |
4주차 | 도메인 적용의 어려움 |
5주차 | Long tail |
- 추천시스템 논문 리뷰 : 강의 수강 이후에는 추천시스템 논문을 읽었습니다. 데이터 확보 이후 사용할 모델을 리스트업하기 위해 진행하였습니다. 스터디 중 읽었던 논문은 아래와 같습니다.
[논문 리뷰] BPR : bayesian personalized ranking from implicit feedback
논문 : https://arxiv.org/abs/1205.2618 더보기 오역, 오류 등은 댓글로 말씀 부탁드립니다! 문제 상황 상품 추천 : 선호도 기반 사용자 맞춤형 ranking 계산 선호도 : 과거 구매 기록 및 열람 기록을 통해 계
lifeofsw.tistory.com
[논문 리뷰] wide & deep learning for recommender system
논문 : https://arxiv.org/abs/1606.07792 더보기 오역, 오류 등은 댓글로 말씀 부탁드립니다! 문제 상황 nonlinear feature transformation을 사용한 GLM input data가 sparse할 때 사용 cross - product feature transformation을 통
lifeofsw.tistory.com
[논문 리뷰] Neural Collaborative Filtering
논문 : https://arxiv.org/abs/1708.05031 Background 1. Learning From Implicit Data Implicit Data가 없는 경우 : 인지X or 부정적으로 평가 data가 없는 이유를 구분하기 어렵기 때문에 item 간 순위를 선정할 경우 noise 발
lifeofsw.tistory.com
[논문 리뷰] Neural Graph Collaborative Filtering
논문 : https://arxiv.org/abs/1905.08108 오역, 오류는 댓글로 말씀 부탁드립니다! 문제 상황 : Collaborative signal capture 기존 모델 가정 : 유사한 사용자는 특정 상품에 대해 유사한 선호도를 보일 것 과정 emb
lifeofsw.tistory.com
스터디는 컨택에 성공할 때까지 진행했습니다. 강의 수강과 논문 리뷰를 포함하여 약 9주 간 진행했던 것 같네요
추천시스템 적용
데이터 확보 이후에는 추천시스템을 적용하여 실험을 진행했습니다. 데이터 규모가 워낙 커서 헤비한 모델은 돌리지 못했어요. 코랩 프로를 결제했는데도 잘 안 되더라구요. 결국 CF, MF같은 가벼운 모델만 실험하였습니다. 보다 다양한 실험을 위해서 사용하는 데이터를 여러 방식으로 처리했습니다.
데이터 처리
- explicit feedback : 기존의 평점 데이터입니다.
- implicit feedback : 사용자가 장바구니에 넣거나 구매한 상품은 1로, 그렇지 않은 경우는 0으로 매핑하였습니다.
- implicit feedback을 사용할 경우, OCCF Problem(non positive feedback 해석의 모호함)이 발생합니다.
- 저희는 도메인의 특성을 고려하여 non positive feedback을 해석하였습니다. 상품 개수가 적기 때문에 인지하지 못했을 가능성이 낮다고 판단하여 All missing as negative 를 적용하였습니다.
- 실험 결과, 성능이 다른 데이터에 비해 낮게 나와 최종적으로는 사용하지 않았습니다.
- interaction feedback : 상호작용 정도에 따라 점수를 부여한 데이터입니다.
모델링
앞서 말씀드린 것처럼 모델은 CF와 MF만 사용하였습니다. CF의 경우 best seller, gender, age, gender & age에 따라 추천하는 방식을 실험하였습니다. MF는 SGD, ALS, BPR을 적용하고, 파라미터 튜닝을 통해 가장 좋은 성능을 내는 파라미터를 기준으로 성능을 비교하였습니다.
실험 결과
explicit feedback을 적용한 best-seller 모델과 explicit feedback을 적용한 MF with BPR이 가장 좋은 성능을 보였습니다. interaction feedback의 경우, gender에 따른 추천 성능이 가장 좋았지만 explicit feedback을 사용했을 때보다는 성능이 낮았습니다.
저희는 실험 결과를 바탕으로 두 가지 결론을 내렸습니다.
- implicit feedback, interaction feedback보다는 explicit feedback이 사용자의 선호도를 명확하게 capture 함
- 다만 평점을 남기는 사용자가 많이 없는 것을 고려하면 사용자의 선호도를 명확하게 capture할 수 있는 추가적인 데이터(사용자가 클릭한 상품, 상품 페이지에서 체류한 시간 등)를 활용한 추천시스템 모델링이 필요
- 성별에 따라서 많이 상호작용하는 상품에 차이가 있으나, 이러한 차이가 평점의 차이로 이어지지는 못함
- 상호작용은 많이 하지만 평점이 비교적 낮은 상품을 파악하고, 이를 추가적으로 분석할 필요가 있음
저희 팀은 이외에도 사용자 분석, 상품 분석 등을 진행하고 태블로를 활용한 대시보드를 제작하였습니다. 다음번 포스팅에서는 제가 담당했던 태블로 대시보드에 대해서 다뤄볼게요.
'프로젝트 리뷰 > 팀 프로젝트' 카테고리의 다른 글
[BOAZ] ADV 기업 연계 프로젝트 리뷰④ - 미팅 (0) | 2024.02.20 |
---|---|
[BOAZ] ADV 기업 연계 프로젝트 리뷰③ - 대시보드(Tableau) (0) | 2024.02.14 |
[BOAZ] ADV 기업 연계 프로젝트 리뷰① - 컨택 (2) | 2024.02.07 |