작성자: 김현지
기존 모델
이전의 RNN 계열의 모델에서는 유저의 선호도를 반영하는 user representation이 따로 존재하지 않고, RNN의 hidden vector를 user representation으로 삼고 다음 아이템을 예측해 왔다.
그러나 각 세션은 user-specific하지 않고, 세션 클릭과 관련된 유저의 행동은 대부분 한정되어 있다.
⇒ 각 세션에서 user representation을 정확하게 추정하는 것은 어렵다.
기존 모델들은 연속적으로 선택되는 아이템들의 single-way Transition을 모델링하고, 세션 내의 다른 여러 아이템들 간의 복잡한 Trainstion은 무시한다.
⇒ 멀리 떨어진 아이템들 사이의 복잡한 Transition은 간과되어 왔다.
Graph Neural Networks를 사용한 Session-based 추천시스템
기존 모델들의 단점들을 보완하기 위해 본 논문에서 제안된 모델
Target 값(implicit, explicit)을 저차원 아이템 임베딩 행렬과
임베딩 행렬로 분해하는 방법론
Transition probability를 바탕으로 아이템 간의 관계를 정의하고 그 관계로부터 행렬 분해를 하는 방법론
: 유저 행동의 시간적 변화를 고려하고 적절한 data augmentation기법을사용하여 순환 모델의 성능을 높임.
: 시퀀셜 패턴과 동시에 발생 신호를 혼합하기 위해 이웃 기반 기법과 순환기법을 결합함.
: 추천을 수행하기 위해 3c CNN을 사용하여 아이템 카테고리 & 설명 같은컨텐츠 features와 세션 클릭을 통합함.
: 각 세션 내 제한된 유저 행동을 모델링하고, 각 세션에 대한 추천을 수행하기 위해 List-wise 랭킹 모델을 사용함.
: 유저의 시퀀셜 행동의 features와 주요 목적을 포착하기 위해 RNN 어텐션 메커니즘을 사용함.
: 유저의 일반적인 흥미와 현재 흥미를 효율적으로 포착하기 위해 제시됨.
세션 기반 추천은 장기 선호도 프로필 접근 없이 유저의 현재 시퀀셜 세션 데이터(current sequence session data)만을 기반으로 유저가 다음에 클릭할 아이템이 무엇인지 예측하는 것에 초점을 둔다.
각 세션 시퀀스 𝑠 는 directed graph 𝒢𝑠 = (𝒱𝑠, ℰ𝑠) 로 표현된다. 각 노드들은 아이템 ∈ 𝑉를 의미하고, 각 Edge ℰ𝑠는 유저가 다음에 를 클릭했다는 의미이다.
Parameter
Update function for the node of graph 𝒢s
A example of a session graph and the connection matrix
제시된 모델의 성능을 평가하기 위해 아래와 같은 대표적인 베이스라인들과 비교한다.
P@20 (Precision): 예측 정확도 측정치로 널리 사용됨.
top-20 아이템들 중에서 정확하게 추천된 아이템의 비율을 나타냄.
MARR@20 (Mean Reciprocal Rank): 정확하게 추천된 아이템의 역순위 평균임.
역순위가 20을 초과할 때는 0으로 설정됨.
MRR 측청치는 추천 랭킹 순서를 고려함.
→ MRR 값이 크면 TOP 랭킨 리스트에 정확한 추천이 나타남.
실험에 따르면 본 논문에서 제안된 SR-GNN 기법이 P@20&MRR@20의 관점에서 봤을 때 모든 데이터 셋에서 가장 좋은 성능을 보였다.
세션에서의 유저 행동은 제한적이기 때문에 각 세션 그래프 간의 또 다른 형태의 연결을 제시한다.
시퀀스 별로 그래프 구성
전체 시퀀스를 두고 한 번에 global graph를 구성
시퀀스 별로 시작 노드와 끝 노드만을 잇는 방식으로 구성
local embedding과 global embedding 모두 사용
오직 local embedding()만 사용
평균 pooling을 사용한 global embedding() 사용
어텐션 메커니즘을 사용한 global embedding() 사용
SR-GNN
• 세션 시퀀스 아이템 간의 복잡한 구조와 Transition을 고려할 뿐만 아니라 유저의 다음 행동을 더 잘 예측하기 위해 장기 선호도와 현재 세션에서의 관심사를 결합하여 사용하였다.
• 종합적인 실험들은 제시된 알고리즘이 다른 최신 기법들보다 일관적으로 좋은 성능을 내는 것을 입증하였다.
| 참고자료
http://dsba.korea.ac.kr/seminar/?mod=document&uid=75
https://soobarkbar.tistory.com/184
https://velog.io/@jkl133/SR-GNN-ing
https://medium.com/watcha/gnn-%EC%86%8C%EA%B0%9C-%EA%B8%B0%EC%B4%88%EB%B6%80%ED%84%B0-%EB%85%BC%EB%AC%B8%EA%B9%8C%EC%A7%80-96567b783479
[15기 이성범]
본 논문은 Session Data를 활용한 Recommendation System에 Graph Neural Network를 적용한 논문이다.
기본적으로 추천에서 유저의 Session Data는 중요하다. 유저가 과거에 클릭했던 아이템, 현재에 클릭한 아이템에는 유저의 현재 취향 및 다양한 정보를 담고 있기 때문에 유저의 Session Data를 기반으로 해당 유저에게 맞는 아이템을 추천해줄 수 있다. 그런데 유저의 과거 행동과 프로필 데이터가 무조건 저장되는 것은 아니다. 실제 서비스에서 유저의 정보는 익명으로 처리될 수도 있으며, 진행 중인 세션의 유저 행동만을 기록해야 할 수 도 있다. 이러한 제한적인 상황에서 사용할 수 있는 모델이 바로 본 논문에서 제안한 SR-GNN 이다.
기존 모델의 경우 연속적으로 선택되는 아이템들의 단방향만을 모델링 한다. 이에 세션 내의 다른 여러 아이템들 간의 복잡한 상호작용은 간과된다. 그러나 GNN은 그래프 기반의 모델이기 때문에 세션 내의 여러 아이템들의 복잡한 상호작용을 표현할 수 있으며 멀리 떨어진 아이템들의 특성도 반영할 수 있다. 따라서 GNN 모델은 아이템 간의 상호작용르 더 잘 캡쳐할 수 있고, 아이템의 임베딩 벡터를 더 정확하게 생성할 수 있다.
SR-GNN은 모든 세션 시퀀스를 그래프로 변환한 Data가 input으로 들어온다. 각 세션 그래프는 하나씩 진행되며 모든 노드의 Latent Vector를 GNN 모델로부터 얻게 된다. 구해진 Latent Vector를 다시 Attention 기법을 활용해 학습시킴으로써 최종 아웃풋으로 다음 세션에 클릭할 아이템의 확률 값이 나온다.
개인적으로 SR-GNN의 학습 방식은 아이템 간의 상호작용을 단일 세션에서 보는 것이 아닌 전체 세션에서 보기 때문에 기존의 모델들 보다 아이템 간의 상호작용을 조금 더 잘 캡쳐할 수 있었다고 생각한다. 추천 시스템에서 아이템 간의 상호작용은 곧 아이템 간의 연관성이 존재한다는 것을 의미하고 연관성이 존재한다는 것이 곧 추천을 해야 할 아이템이라고 생각하며 이러한 세션을 단일이 아닌 전체로 보았을 때 더 아이템 간의 연관성을 잘 캡쳐할 수 있다.
[15기 권오현]
기존 추천 시스템은 유저와 행동 데이터들이 끊임없이 저장된다고 가정한다. 하지만 실제 서비스를 이용하였을 경우 유저의 정보를 확인할 수 없고, 진행 중인 세션 내의 유저 행동 기록만을 사용하여 추천을 해야 할 수도 있다. 이에 논문 저자는 세션에서 제한된 행동 기록들을 모델링하기 위해 Graph Neural Networks를 Session-based Recommendation에 적용하여 문제를 해결하고자 하였다.
기존 Session-based Recommendation을 위한 RNN 계열의 모델에서는 유저의 선호도를 반영하는 user representation이 따로 존재하지 않고, hidden vector를 통해 예측을 해 왔는데, 이러한 방법은 각 세션이 user-specific하지 않고, 세션 클릭과 관련된 유저의 행동이 한정되어 있다는 사실을 간과하였고, 연속적으로 선택되는 아이템들의 Single-way Transition을 모델링하고, 다른 여러 아이템들 간의 복잡한 Transition은 무시하였다. 논문 저자는 위의 문제를 해결하기 위해 그래프 기반의 모델인 GNN을 이용하여 아이템 간의 복잡한 Transition을 학습하고자 하였다.
SR-GNN은 모든 세션 시퀀스를 Graph로 표현되어 input으로 들어간다. 아이템이 한 시퀀스에서 반복적으로 등장할 수 있으므로 edge를 정규화된 가중치로 할당한다. 모든 아이템은 통합된 임베딩 공간에 임베딩하며, 노드 벡터는 GNN을 통해 학습된 아이템의 latent vector를 의미한다. 노드 벡터에 기반하여 각 세션은 임베딩 벡터로 표현되며 해당 그래프에서 사용된 노드 벡터로 구성된다. 얻어진 노드 벡터를 Local embedding(가장 마지막에 클릭된 아이템 벡터)과 Global embedding(attention mechanism을 적용하여 모든 노드를 고려), Hybrid embedding(Local, Global embedding의 선형 변환) 을 적용하여 후보 아이템에 대한 확률값을 통해 다음 세션에 대한 예측을 진행한다.
SR-GNN은 세션 시퀀스 아이템 간의 복잡한 구조와 Transition을 고려하며, 유저의 다음 행동을 잘 예측하기 위해 장기 선호도와 현재 세션에서의 관심사를 결합하여 사용하였다. 또한 다양한 실험 결과를 통해 다른 알고리즘보다 좋은 성능을 내는 것을 입증하였다.
Session-Based Recommendation with Graph Neural Networks
15기 류채은
한 세션에서 제한된 행동 기록들을 모델링하고 그에 맞춰 추천을 생성하기 위해 등장했다.
SR-GNN (Session-based Recommendation with Graph Neural Networks)
: User-specific 하지는 않지만, 해당 세션의 시퀀스가 반영된 임베딩이 들어가기 때문에 session-specific하게 예측할 수 있다.
[Related Works]
[15기 장아연]
기존의 Session-based Recommendation에서는 한 세션에서 제한된 행동 기록들을 모델링하고 그에 맞춰 추천을 생성해야하지만 각 세션에서 User에 대해 정확히 추청하는 것이 어렵고 멀리 떨어진 아이템 사이에 복잡한 Transition은 간과된다는 한계를 지님.
SR-GNN (Session-based Recommendation with Graph Neural Networks)는 기존의 모델을 보완하고 Graph Neural Networks를 사용해 Session-based 추천시스템을 진행함. 이를 통해 기존의 전통적인 시퀀셜 모델에서 구현되기 어려웠던 아이템 간의 관계를 파악하고, 아이템 임베딩에 정확한 값을 표현하게 되며 이를 바탕으로 global preference와 current interest를 구해 사용 가능해졌고 session을 기준으로 예측 가능함.
SR-GNN은 input은 graph로 표현된 session 시퀀스이고 edge를 통해 이에 대한 가중치가 할당됨. 각 session graph에 대해서 각각 GNN이 진행되며 노드에 대한 Latent Vector가 나오고 이에 Local embedding, Global embedding, Hybrid embedding을 적용하여 다시 Attention을 진행해 output을 산출함.
[14기 이혜린]
Session-based Recommendation
SR-GNN
기존 연구
SR-GNN
장기 선호도 프로필 접근 없이 현재 시퀀셜 세션 데이터만을 기반으로 유저가 다음에 클릭할 아이템이 무엇인지 예측