세로형
Recent Posts
Recent Comments
Link
11-08 05:22
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

꿈 많은 사람의 이야기

추천 시스템 논문 리뷰 - Context-aware Co-Attention Neural Network for Service Recommendations (CCANN) 본문

추천시스템

추천 시스템 논문 리뷰 - Context-aware Co-Attention Neural Network for Service Recommendations (CCANN)

이수진의 블로그 2022. 9. 10. 20:31
반응형
728x170

포스팅 개요

 

본 포스팅은 추천 시스템(RecSys, recommender system) 논문 중 Context-aware Co-Attention Neural Network for Service Recommendations (CCANN)이라는 논문을 리뷰하는 포스팅입니다. 본 논문은 context를 기반으로 추천 시스템을 제공하고 review 데이터까지 활용하며 이를 위해 Entity2Vec이라는 모델도 제안한 추천 시스템 논문입니다. 

 

또한, 본 포스팅은 제가 작성하고 있는 추천 시스템 시리즈 글 입니다. 시리즈로 작성하는 추천 시스템 논문 리뷰는 아래와 같은 순서로 진행할 예정입니다. 오늘은 그 아홉 번째 CCANN 포스팅입니다.

 

  1. DeepFM (https://lsjsj92.tistory.com/636)
  2. MAML (https://lsjsj92.tistory.com/637)
  3. VECF (https://lsjsj92.tistory.com/638)
  4. FDSA (https://lsjsj92.tistory.com/639)
  5. PMN (https://lsjsj92.tistory.com/640)
  6. GAU (https://lsjsj92.tistory.com/641)
  7. A3NCF(https://lsjsj92.tistory.com/642)
  8. MIAN (https://lsjsj92.tistory.com/643)
  9. CCANN

본 포스팅에서 참고한 자료는 다음과 같습니다.

 

Context-Aware Co-attention Neural Network for Service Recommendations

Context-aware recommender systems are able to produce more accurate recommendations by harnessing contextual information, such as consuming time and location. Further, user reviews as an important information resource, providing valuable information about

ieeexplore.ieee.org


포스팅 본문

본 포스팅의 Context-aware Co-Attention Neural Network for Service Recommendations (CCANN) 추천 시스템 논문 리뷰는 다음과 같은 순서로 진행합니다.

 

1. CCANN 핵심 요약

2. CCANN 논문 리뷰


CCANN 핵심 요약

Context aware recommender system

• Location, consuming time 등의 context information을 활용해서 more accurate한 추천을 제공할 수 있음

• 또한, user review는 중요한 information resource임

     • User preference와 item aspect 그리고 implicit contextual feature와 관련해 가치 있는 정보를 제공해 줌

     • 이는 context, user, item의 embedding을 향상시키는데 사용될 수 있음

 

Recent State of the art context aware method

• 두 타입(context and review)의 information을 model에 통합하려는 시도는 거의 없었음

• User, item, context 간의 두 가지 유형의 entity 관계만 characterize

     • 이는 세가지 모두와 밀접하게 관련이 있으므로 final prediction에 insufficient할 수 있음

 

In this paper

• Context aware Co-Attention Neural Network(CCANN)을 제안

     • Context, user, item 사이의 관계를 Dynamically하게 추론

     • Attention mechanism을 활용해 user contextual preference와 item context aware aspect 사이의 degree of matching을 모델링

• Entity2Vec을 제안

     • To better leverage the information from review ( embedding method )

     • Textual review에서 word와 함께 different entities (user, item, context)의 embedding을 jointly하게 학습


CCANN 논문 리뷰

Context-aware Co-Attention Neural Network for Service Recommendations (CCANN) 논문에 대해서 자세한 리뷰를 진행합니다. 본 포스팅은 논문에 나와 있는 순서대로 정리를 진행합니다.

 

Introduction

본 논문의 contribution을 요약하자면!

1. Co-attention mechanism을 활용한 context aware neural network 제안

     • User contextual preference와 item context aware aspect 사이의 degree of matching(일치 정도)을 characterize하기 위해

2. Entity2Vec을 제안

     • 사용자 review에서 various entities의 embedding을 jointly하게 학습하는 novel entity embedding method

3. extensive experiment on three large dataset

     • Proposed recommendation model과 embedding method의 effectiveness를 나타내기 위해서

 

Recommender System

추천 시스템(RecSys)은 E-commerce나 social network와 같은 web application에서 중요한 역할을 담당하고 있습니다.  또한, Contextual information을 활용해서 더 좋은 service recommendation 제공하고 있으며 그 예시로는 Time, location 등이 있습니다.

 

Context-aware recommender system‘Context’

context aware 추천 시스템에서의 '컨텍스트(context)는' 일반적으로 ‘any information that can be used to characterize the situation of entities’를 뜻한다고 본 논문에서 이야기합니다. 그리고 User의 contextual preference를 characterize하는 것은 recommender system에 유익하다고 합니다. 특히, contextual 상황에 의해 고객의 행동이 상당하게 영향을 받을 수 있는 것에선 더욱 유익하다고 합니다. User는 특정 contextual situation하에 specific aspect에만 관심을 가질 수 있기 때문입니다. 그 예시는 다음과 같습니다.

• 아이들(context)과 여행할 때 뛰어놀 수 있는 충분한 공간(aspect)을 고려

• 연인(context)와 luxurious time을 즐기고 싶다면 조용한 environment(aspect)를 고려

 

Fig1.

본 논문에서 예시로 들어준 Fig 1.이 있습니다. 여기서는 Two type context가 존재하는데요. 다음과 같습니다.

• Explicit context : August 2018 등 user의 situation이 나타남

• Implicit context : textual review와 user personal experience에 나타남

     • Travel with kids 과 같은 것

 

Two type context -> implicit and explicit

기존 연구에서도 위 2가지 contextual information을 활용한 것들이 존재하지만, 다음과 같은 문제점이 존재한다고 합니다.

1. user review에서 implicit context를 추출하기 위해선 domain knowledge가 필요

2. explicit context의 feature representation을 디자인 하기 위해 manual efforts(수작업) 노력이 들어감

     • 즉, 다른 도메인에 일반화(generalized)될 수 없음

 

Recent work on implicit context

최근에는 CNN과 RNN과 같은 review-based model로 feature extractor로서 활용이 되었다고 합니다. User와 item의 embedding을 구성하기 위해 User review에서 feature representation을 추출하기 위해서 활용되었다고 합니다. 그러나, 이 방법들은 계산 비용이 비싸다는 단점이 있는데요. 그 이유는 CNN은 convolving filter를 update하고 RNN은 병렬처리가 되지 않기 때문입니다.

 

Context aware method that only consider explicit context

기존에는 Factorization Machine(FM) base model들을 활용해 explicit context를 활용해 context aware를 활용했다고 합니다. 이는 Context aware recommendation task에서 context value를 sparse feature로 간주해 활용합니다. 하지만 User, item, context 사이에서 Complex relation을 capture하는 것이 불가능하다고 하네요. 때문에 AIN(Attentive Interaction Network)가 소개 되기도 했습니다. 그러나, user와 item의 representation이 interact하지 않아 item aspect에 대한 user preference를 모델링하는데 충분치 않았다고 하네요.

 

따라서 본 논문에서는! CCANN 모델을 소개

따라서 본 논문에서는 Context Aware Co-Attention Neural Network(CCANN) 이라는 추천 시스템 모델을 소개합니다. 이 추천 시스템은 Context와 users, items 사이의 interaction을 모델링하도록 제안합니다. 또한, Attention mechanism을 활용해서 each contextual situation에서 user preference와 item aspect사이의 degree of matching(매칭의 정도, 일치 정도)를 측정합니다.

여기서 User와 item의 final representation은 user, item, context에서 상호간에 학습하게 하고 User의 contextual preference와 item context aware aspect를 더 풍부하게 모델링 할 수 있다고 합니다. 또 다른 특징으로는 MLP 형태로 구성되어 있는데 이는 계산 측면에서 더 효율적일 수 있다고 합니다.

그리고 본 논문에서는 추천 시스템 모델과 더불어 Entity2Vec을 제안하는데요. user review에 있는 implicit context를 활용하기 위함입니다. 이 모델은 Review에 있는 word와 함께 different entities(user, items, contexts)의 embedding을 Jointly 하게 학습하는 특징을 가지고 있습니다. 때문에 Entity2Vec 훈련이 끝나면 서로 다른 user/item/context 사이의 관계를 embedding vector에 의해 capture할 수 있습니다. 이렇게 학습된 결과를 CCANN의 initialize하는데 활용해 정확한 recommendation을 생성합니다.

 

Related Work

본 논문과 연관된 다양한 추천 시스템 논문들이 있습니다. 본 포스팅에서는 이와 관련해 간단하게만 정리합니다!

 

2개의 line이 존재

본 논문에서 소개된 관련 연구는 크게 2개의 분류로 나눌 수 있습니다.

1. context aware recommender system

2. utilizes user review to enhance recommendation

 

Context aware recommender system

그 중 하나인 context aware recommender system은 Pre-filtering 후 Matrix Factorization 등에 활용하는 것들도 존재했다고 합니다. post filtering을 해서 관련 있는 것만 제공하는 것도 존재했구요. 더 나아가 RNN 등의 모델을 활용하기도 했다고 합니다. 그러나, domain knowledge가 필요하거나 feature engineering 방법이 필요하다는 단점이 존재합니다. 이런 Human efforts을 줄이기 위해 본 논문에서는 general context aware recommendation framework를 제안합니다. 즉, Manually constructed context feature하는 것을 포함하지 않습니다.

 

Review based recommender system

review based 추천 시스템은 Explicit method와 implicit 방법으로 나뉘어져 있습니다. 각각을 나누어 설명하자면 다음과 같습니다.

 

• Explicit method

explicit method에서는 Topic modeling, sentiment analysis tool를 활용했다고 합니다. 그 예시로 EFM 등이 존재했다고 하네요. 하지만, Manual preprocessing이 일반적으로 필요하다는 것이 한계라고 합니다.

 

• Implicit method

Implicit 방법에서는 User view에서 content를 analysis하지 않고 latent feature를 extract합니다. 그 예시로 CNN 등을 활용하고 TransNet, ConvMF+, DeepCoNN 등이 있습니다. 하지만, Computationally가 비싸다는 것이 한계입니다.

 

본 논문은

따라서 본 논문에서는 MLP 구조를 활용해서 비용을 줄였습니다. 그리고 Entity2Vec을 제안해서 manual efforts를 줄여줬습니다. 이를 통해 different entities의 embedding을 자동으로 학습했으며 Preprocessing context, aspects and sentiment의 manual effort를 줄여줬다고 합니다.

 

Methodology - Context aware Co-Attention Neural Network(CCANN)

본 논문에서 제안하는 추천 시스템 모델 CCANN의 목표는 rating predicting입니다. 즉, Predict rating r_(u,i) 이고 u는 user, i는 item입니다. 이때 c_1,c_2, …c_m  (m denots the total number of contextual variables)를 뜻하고 j∈{1,2,…m}  represents j_th contextual variable입니다. 이때 Multiple contextual variable이 있을 수도 있는데요. 예를 들어 time, place, companion과 같은 것들은 multiple context value로 구성되어 있습니다. families와 friends는 companion에 속하는 것이 그 예시이죠.

 

CCANNframework

논문에서 제안한 CCANN의 구성은 다음과 같으며 User u, item I, context values c_m으로 input이 구성 됩니다.

 

 

반응형

 

Notation

본 논문에서 제안한 모델을 설명하기 위한 수식 notation들은 다음과 같습니다.

 

P, Q, K_jInitialize embedding은 Random 혹은 Entity2Vec에서 학습된 pre-trained embedding을 사용합니다.

 

User uj번째 context의 선호도 반영

본 논문에서 사용자가 j번째 context를 선호한다는 선호도 반영을 위해서 [사용자 embedding, j번째 context]를 concat하여 Multi layer perceptron(MLP)에 태워줬습니다. 그 수식은 다음과 같습니다.

이를 통해 Other contextual situation의 user preference를 계산할 수 있습니다. 이 과정은 same operation이 실행되며, 각 j에 대해서 실행합니다. 이는 사용자마다 선호도가 다르다는 것을 반영할 수 있다는 것이며, 이 예시는 다음과 같습니다.

• Family trop : large bed 호텔을 선호

• Business trip : Wi-Fi의 availability를 더 중요하게 봄

 

Item ij번째 context 선호도 반영

item에 대해서 j번째 context 선호도도 위처럼 마찬가지로 계산할 수 있습니다.

 

Itemcontext j에 대해 user contextual preference 계산

다음으로 item이 가지고 있는 context j에 대해서 사용자의 선호도를 계산하는 방법입니다. 이를 위해서 J context of user와 j context of item을 concat하고 Attention score를 계산합니다. 수식은 다음과 같습니다.

 

α_(u,i →j)

해당 attention score는 다음과 같은 것을 반영합니다.

• User contextual preference와 item의 aspect 사이의 degree of matching (매칭 정도, 일치 정도)의 결과

• attention score vector(α)에서 larger contextual score는 final prediction에서 more contribution

 

Enhanced user vector, item vector 계산

더 나아가 Weighted sum을 이용해 user vector와 item vector를 계산했습니다. 이는 User(혹은 item)의 each context에 대한 preference contribution이라고 볼 수 있습니다.

 

Attention Score alpha

이때 attention score alpla는 User contextual preference와 item context aware aspect에서 mutually learn(상호 학습)한 것입니다. 이는 User와 item representation을 향상시키는데 활용하며 본 논문에서는 이를 Co-Attention이라고 명명합니다.

 

Prediction

마지막 prediction 쪽에서는 Factorization Machine(FM)을 채택하여서 사용했습니다. 그 이유는 Computationally efficient 때문에 ( O(kn) ) 선정했다고 합니다. 앞서서 만든 User, item의 enhanced representation을 concat하고 FM의 Input으로 제공하여 계산을 수행합니다. 이때 predict는 rating을 예측하는 것이기 때문에 Regression task을 실행합니다.

• 처음 2개의 term은 linear regression component

• 3번째 term은 FM represent의 second order interaction (between features in feature vector x)

 

또한, error loss는 Mean Squared Error loss 채택하였으며 Stochastic Gradient Descent(SGD)활용했고 구현에서는 Adam을 활용하였습니다.

 

CCANN을 요약을 하자면! 몇 가지 advantage가 존재

 

1. co-attention mechanism

• Major contribution of our work

• User contextual preference와 item context aware aspect를 모델링할 수 있음

• 기존 context aware method보다 richer manner

 

2. can utilize knowledge

• context value를 활용해 user가 한 번도 경험하지 않은 것들도 예측할 수 있음

• Our model은 other user에게서 배운 knowledge를 활용해서 prediction을 할 수 있음

 

3. Efficient in terms of computation

• Multi Layer Perceptron(MLP)를 활용해 계산 효율성

• 기존 review based model등 보다 계산 효율성이 좋음

 

4. identify most influential contextual factor

• Co-attention mechanism을 활용함으로써 prediction에서 가장 영향력 있는 contextual factor를 식별할 수 있음

• Item이 user에게 recommended된 것도 explain 할 수 있음

 

Methodology - Learning Entity Embeddings from User Reviews

해당 component의 목표 – Entity2Vec을 제안

본 논문에서는 추천 시스템 모델 뿐만 아니라 본 paper의 recommend task를 위해 review에서 different entities의 embedding vector를 학습하는 것을 위한 Entity2vec 모델을 제안합니다. 해당 모델은 Review에서 특정 contextual situation과 관련된 자신의 경험을 논의할 가능성이 있기에 이를 적용하려는 시도를 진행합니다. Entity2vec은 User, item, context, word를 포함해 various entities의 embedding을 동시에 학습하는데요. 그 이유는 Textual review의 content는 user와 target item외에도 context와도 관련되어 있기 때문입니다.

 

아래 사진과 같이 학습

Entity2vec은 아래 사진과 같이 학습합니다. User, item, 관련 있는 context, 주변 word를 평균화 하고 이를 target word를 predict하도록 사용하고 이때 사용되는 정보는 User u, item I, word sequence of review (s1 … s_t), context situation(c1…c_m)가 됩니다. 마치 word2vec에서 활용하는 것처럼 CBOW 방법을 채택하여 학습합니다.

이를 수식으로 표현하면 다음과 같습니다. 이때 Z는 sliding window size를 나타냅니다.

 

수식을 표현한 Entity2vec을 순서대로 표현하면 다음과 같습니다.

1. user, item, context, word vector들을 평균

2. target word를 predict하도록 y를 추출

3. softmax 연산

4. cross-entropy loss

 

300x250

Entity2Vec의 장점

이렇게 본 논문에서 제안한 Entity2Vec의 장점은 다음과 같습니다.

 

• Review에서 item aspect에 대한 user preference 정보를 embedding을 학습

• 이 학습을 통해 different entities에 대한 semantic meaning을 capture할 수 있음

• 유사한 preference를 가진 user간의 거리는 different 취향을 가진 사용자보다 작을 수 있기 때문

 

Experiemtns - Dataset Description

TripAdvisor에서 데이터를 수집

본 논문에서 제안한 추천 시스템 모델을 평가하기 위해서 TripAdvisor에서 데이터를 수집했다고 합니다. 그 중 3개의 populous cities ( Hong Kong, New Your City, London )에서 데이터를 수집하였으며 서로 다른 dataset을 구성하기 위해 아래와 같은 procedure를 진행하였다고 합니다.

 

1. 한 도시에 있는 each hotel의 review records를 전부 크롤링

2. user가 그 homepage에 남긴 과거 review를 scrap

3. remove non-English review (영어 text 분석에 관심이 있었기 때문)

 

특징들을 정리하자면 Each review에는 userID, itemID, rating(1~5), textual review, context가 포함되어 있으며 Context에는 companion, time, place가 구성되어 있습니다. 그 외 자세한 것은 아래 표를 참고하시면 되겠습니다.

 

Experiemtns - Evaluation Metric & Compared Methods

Evaluation Metric

평가 방법으로는 RMSE를 사용했습니다. regression task이니까요!

Compared Methods

본 논문에서 비교한 다른 모델들은 다음과 같습니다.

 

• Probabilistic Matrix Factorization(PMF)

     • Standard matrix factorization

• Factorization Machine(FM)

• Convolutional Matrix Factorization(ConvMF+)

     • CNN을 활용해 textual information을 MF 성능 향상을 위해 사용

• Deep Cooperative Neural Networks(DeepCoNN)

     • Two parallel CNN을 활용해서 feature representation을 학습

• Neural Factorization Machine(NFM)

     • High order feature interaction을 학습하기 위해 neural network을 FM에 도입

• Attentive Interaction Network(AIN)

     • Context, user, item 정보를 활용하고 본 논문에서는 fair를 위해서 fully connected layer를 제거 (attention mechanism에 포커스)

• CCANN_rand

     • CCANN의 variant로써 entity embedding이 random initialized한 것 (Entity2Vec의 embedding을 사용하지 않음)

 

Experiemtns - Experiment Setup

Setup

실험 setup입니다. 

• Train, Valid, Test set = 8:1:1

• 5번 반복해서 average performance 측정

• RMSE로 측정

• Baseline 모델 구현 설정 값 등 설명 (논문 참고)

 

Results and Discussion - Comparative Analysis on Overall Performances

결과 표

실험 결과를 표로 정리한 그림은 다음과 같습니다.

 

3개의 observation

본 논문의 실험 결과에 따라 3개의 관점을 살펴볼 수 있습니다.

1. context aware method (NFM, AIN, CCANN)

• context를 고려하지 않은 다른 모델(PMF, FM, ConvMF+, DeepCoNN)보다 Generally perform 이 더 좋음

• User의 decision이 contextual factor에 의해서 영향을 받으므로 어찌보면 당연한 것

• Context aware model들은 item aspect에 대한 user preference를 더 잘 characterize함

 

2.  review based method (ConvMF+, DeepCoNN)

• Context를 고려하지 않은 traditional model(PMF, FM)보다 좋은 성능

• User review에는 feature extractor(RNN, CNN)에 의해 user, item, contextual factor 등의 많은 정보가 있음

• 또한, 위 정보들을 implicit하게 추출할 수 있고 이것들은 user, item representation을 향상시킴

• 하지만, 몇몇 사용자들은 contextual situation을 review에 나타내지 않아서 context aware 방법보다 underperform

 

3. CCANN은 consistent하게 baseline model들을 outperform

• NFM은 context aware 방법이지만, user, item, context의 모든 entities를 동등하게 취급하고 동일한 방법으로 관계를 모델링

     • 이는 context가 user와 item에 미치는 effect를 characterizing하기에 충분하지 않음

• AIN은 attention mechanism을 활용해 context, user, item간의 관계를 동적으로 infer

     • NFM보다 나은 성능

     • 하지만, final prediction layer에서만 interact하기 때문에 user, item사이의 complex relation을 수용하기엔 충분하지 않음

 

우리의 모델은!

실험 결과에서 본 논문에서 소개한 모델은 Co-attention mechanism을 활용해 contextual variable의 weight를 automatic하게 조정하며 이를 통해 User의 contextual preference와 targe item과 관련된 aspect를 match합니다. 또 해당 weight를 user embedding과 item embedding에 사용합니다. 

AIN 모델과 비교해서 Co-attention mechanism은 user, item사이의 richer interaction을 제공하고 이는 better performance를 제공합니다. 

또한, Entity2Vec을 소개하는데요. 이는 User review에서 학습한 embedding입니다. Random하게 initialized된 CCANN_rand보다 더욱 향상시켜주는 것을 확인할 수 있습니다. 

효율성인, Efficiency of CCANN는 Runtime을 다른 neural network model과 비교(ConvMF+, DeepCoNN, NFM, AIN, CCANN)해서 봤을 때 계산 효율성도 제공합니다.

 

Results and Discussion - Tuning Hyper-parameters

Hyperparameter 변경에 따른 성능 분석을 보여줍니다.

 

Conclusion and Future work

본 논문을 정리하자면 CCANN이라는 추천 시스템 모델을 제안합니다. 이는 Context aware recommendation method이며 Context, user, item 사이의 relation을 모델링합니다. 또한, Degree of matching을 측정하는데 이때 Co-attention mechanism을 활용해 each contextual situation의 item aspect와 User preference 사이의 degree of match을 측정합니다. 이 Degree of matching을 진행할 때 User와 item, context 사이에서 상호 학습하며 이는 User와 item의 context aware representation간의 rich interaction이 가능하도록 해줍니다.

 

또한, Entity2Vec을 소개합니다. User review에서 Different entities의 embedding을 jointly하게 학습하며 이를 통해 Performance boosts를 이끌어 냈습니다. 

 

당연히 성능이 좋게 나왔으며 training time에서도 acceptable할 만한 결과가 나왔습니다. 

 

Future work로는 다른 service domain에서 테스트해보고 아키텍처 수정 등이 있다고 합니다.

 


마무리

본 포스팅은 추천 시스템(RecSys, recommender system) 논문 중 Context-aware Co-Attention Neural Network for Service Recommendations (CCANN)이라는 논문을 리뷰한 포스팅입니다.

추천 시스템을 공부하시는 분들에게 도움이 되시길 바랍니다.

긴 글 읽어주셔서 감사합니다.

반응형
그리드형
Comments