Session based Recommendation

Session based Recommendation

2023-02-22 09:04

1,914 views

안녕하세요, 플러스제로 엔지니어팀 입니다.

이번에 소개드릴 내용은 블로그 [Recommendation-System]과 연관된 추천 시스템에 대해 소개드리려 합니다.

저희 플러스제로는 데이터 마케팅을 위한 데이터 구축/통합과 마케팅 최적화,를 진행하고 있습니다.

이러한 업무를 진행하기 위해 Adobe, Google, SalesForce와 같은 다양한 마케팅 플랫폼을 함께 사용하고 있습니다

오늘 포스트는 그 중, GA4를 통해 수집된 데이터를 통해서 사용자에게 “Item”을 추천 할 수 있는 [ Session-Based-Recommendation System ]에 대해 소개드리겠습니다.

아래 보시는 테이블과 같이, 저희 플러스제로의 웹페이지는 GA4를 통해서 데이터를 수집하고 있습니다.

bigquery_image

GA4의 세션을 통해서 저장된 로그들은 구글 클라우드의 빅쿼리를 통해서 확인 할 수 있는데요, 유저의 웹페이지 이동에 따른 이벤트에 따라 데이터가 저장되는 것은 GA4의 특징입니다.

가장 큰 특징은 GA4에서 발급되는 “Session Id”에 따라서 해당 유저가 발생시키는 이벤트를 수집하게 됩니다. 마케팅에서는 이를 통해서 UI/UX 개선, SEO(Search Engine Optimize), 또는 다양한 분석작업을 위해 사용됩니다.

그렇다면, 이렇게 유저의 정보가 웹페이지 이동에 따른 이벤트에 따라 저장이 되는 상황이라면, 이전 블로그에서 소개드렸던 [ Content-Based-Filtering 또는 Collaborative-Filtering] 을 사용 할 수 있을까요?

직접 웹 사이트를 보유 하고 “Explicit Data”를 확보 할 수 있다면, 위의 두 가지 방법을 사용할 수 있겠지만, GA4와 같이 Session에서 일어난 이벤트를 통해 Content-based나 Collaborative Filtering을 진행하기에는 다소 어려움을 겪을수 있습니다.

왜냐면, 저희는 유저의 정보(User-Profile)와 “Item”과의 연관 기록(user’s historical interaction)이 없기 때문이죠.

유저의 정보는 로그인과 같은 “등록”으로 인한 특정 유저를 특징 하는 형태입니다.

저희가 “현재” 사용할 수 있는 데이터는 이런 User-Profile정보가 누락된 GA4데이터 만으로 사용자에게 어떠한 “Item”을 추천 할 수 있는가가 저희 연구팀의 큰 주제였습니다.

2016년에 발표된 논문 [ SESSION-BASED RECOMMENDATIONS WITH RECURRENT NEURAL NETWORKS ]에서는 딥러닝의 RNN계열 (GRU)를 통해 이를 해결하려 하였습니다.

paper_abstract

이와 관련되어 저희 플러스제로 엔지니어팀은 RNN계열 뿐만 아니라, Transformer 구조와 GNN(Graph Neural Network)와 같은 기술을 통해서 Session Based Recommendation을 연구중에 있습니다.

Session-Based-Recommendation의 이해를 돕기위해 저희 플러스제로의 블로그를 통해서 예시를 들어보려 합니다.

Organic Search 를 통해서 플러스제로 홈페이지로 접속한 2명의 유저 (유저-A, 유저-B)가 있습니다.

아래는 유저-A의 블로그 탐색 기록입니다.

User - A

pluszero_mainpage

pluszero_blogpage

pluszero_blogpage2

pluszero_blog_detailpage

pluszero_blog_detailpage2

유저-A는,

[ 플러스제로 홈페이지 메인 ] -> [ 블로그 페이지 ] -> [Google Analytics ] -> [Bigquery 로 GA 데이터 사용하기 (1) ] -> [Bigquery 로 GA 데이터 사용하기 (2) ]

이러한 순서로 블로그를 보았다면, 유저-A는 GA4데이터를 활용한 데이터 분석에 대한 글을 찾아보고 있다고 생각 할 수 있습니다.

그렇다면 해당 유저에게 가장 좋은 추천을 할 수 있는 카테고리는 (1) GA4데이터 또는 빅쿼리를 통해 분석하는 방법 또는 (2) GA4데이터 또는 빅쿼리를 통한 분석 사례 를 들수 있습니다. 만약 제가 직접 추천을 한다면,

pluszero_blog_detailpage3

[ BigQuery 를 활용한 데이터 스튜디오 대시보드 ] 라는 포스터를 추천 할 수 있겠네요.

다음으로는 유저-B의 탐색 기록입니다.

User - B

pluszero_mainpage2

pluszero_blogpage3

pluszero_blogpage4

pluszero_blog_detailpage4

pluszero_blog_detailpage5

유저-B는,

[ 플러스제로 홈페이지 메인 ] -> [ 블로그 페이지 ] -> [Performance Marketing] -> [콘텐츠 분석으로 이탈율을 획기적으로 줄이는 방법 | 데이터 마케팅 파해치기#5 ] -> [퍼포먼스 마케팅 우선순위 체크리스트 - Top 3 내부 구매전환률 최적화: 이탈 지점 확인]

다음과 같은 순서로 블로그를 보았다면, 유저-B는 이탈률 분석에 대한 글을 찾아보고 있다고 생각 할 수 있습니다.

그렇다면 해당 유저에게 가장 좋은 추천을 할 수 있는 카테고리는 이탈율 분석 일 것입니다. 그러나 저희 블로그에는 이탈율과 관련된 포스트는 더이상 없기때문에 차선책인 “분석”과 관련된 블로그 포스트가 우선순위로 올라올 것입니다.

간단한 그림으로는 [ Cloudera Fast Forward Labs 의 자료 ] 를 인용하면,

Rhonda's browsing history

유저가 클릭할 아이템을 예측 하는 문제로 볼수 있게 됩니다.

이러한 문제를 해결하기 위해서 대표적으로 사용하는 방법은 자연어 처리(NLP)의 언어모델(Language Model)을 학습할때 사용하는 Masked Language Models을 사용하는 방법이 있습니다.

최근에는 GNN (Graph Neural Network) 를 활용하여 문제를 해결하는 연구가 트렌드가 되었는데요, 2019년 논문 [ Session-based Recommendation with Graph Neural Networks ] 으로 시작하여 다양한 연구가 진행되고 있습니다.

The workflow of the proposed SR-GNN

Conclude

플러스제로 엔지니어 팀에서는 지속적인 연구를 통해서 Session-based-Recommendation을 통해 상품 뿐만 아니라 다양한 컨텐츠를 Personalize Recommend 형태의 서비스를 제공하여 고객의 매출에 0을 더합니다



다음글 - Recommendation PoC
이전글 - Recommendation System