Post

User-controllable Recommendation Against Filter Bubbles, (SIGIR'22)

Abstract

추천시스템은 filter bubbles 문제를 겪는다. Filter bubbles는 user에게 유사한 상품을 너무 많이 추천해주는 것을 말한다.

Challenges
  1. Filter bubbles를 완화하려는 기존의 방법들 대부분은 accuracy와 관련없는 loss term(e.g. diversity, fairness)을 추가해, model fidelity와 user experience에 악영향을 끼친다.
  2. User들은 추천된 결과를 수동적으로 받아들이고, 추천 시스템이 user의 의도를 파악할 때까지 feedback을 줘야한다는 단점이 있다.
Address
  1. User에게 filter bubbles이 있다는 알람을 제공해서, user가 직접적으로 추천 결과를 control하여 filter bubbles를 완화할 수 있는 4가지 command를 제안한다.
  2. Counterfactual inference를 사용해, 추천 시스템이 user의 command에 빠르게 adaptation할 수 있도록하고, accuracy의 희생을 최소화하도록 만든다.

1. Introduction

추천 시스템을 구축할 때, 기본적으로 user의 feature와 interaction data를 통해 user의 선호도를 학습한다. 단순히 model를 data에 fitting 시키기 때문에, 유사한 item을 너무 많이 추천하고 다양한 content로부터 user를 분리시키는 filter bubbles이 발생한다.

Fig. 1과 같이, 추천된 상품들에 대해서 feedback을 제공하는 feedback loop 때문에, filter bubbles은 더욱 심화된다. 그 결과, 장기적으로 filter bubbles은 user의 활동성과 item의 독창성을 떨어뜨리게 된다.

Filter bubbles를 완화하기 위해, 기존의 방법들은 단순히 추가적인 objectives를 결합함으로써 interaction data를 학습했다. 하지만 이러한 방법은 다양한 objectives 간의 trade-off를 형성하게 된다. 즉, accuracy를 희생하여 filter bubbles를 완화하게 된다.

Feedback loop에서는 추천 시스템이 user의 의도를 파악할 때까지 user가 지속적으로 feedback을 제공해야 한다는 불편함이 있다. 예를 들어, 이전에는 파란색이 좋았지만 현재는 파란색이 싫고 빨간색이 좋아졌다면, 이를 반영하도록 feedback을 제공해야 한다.

저자들은 user가 filter bubbles을 완화할 것인지 결정하고, 어떤 bubbles를 완화할 것인지 결정할 수 있어야 한다고 주장한다. 그래서 본 논문에서는 새로운 추천 시스템 prototype인 User-Controllable Recommender System (UCRS)를 제안한다.

  1. User에게 filter bubbles이 생기면 이를 알려준다.
    • Filter bubbles를 측정하는 metric을 정의하고, 이를 통해 user에게 filter bubbles 발생 유무를 알려준다.
  2. User가 자신의 의도를 control할 수 있는 command를 제공한다.
    • 2가지 level: fine/coarse-grained level에서 user와 item의 feature를 고려하는 command를 정의한다.
    • 총 4가지 command: (Fine-grained, user), (Fine-grained, item), (Coarse-grained, user), (Coarse-grained, item)를 정의한다.
  3. 추천 시스템은 command에 즉각 응답한다.
    • Retraining이나 fine-tuning 없이 inference 할 때, command를 반영해 추천 결과를 조정한다.
    • Interaction data로 학습된 out-of-date user representation의 영향으로, filter bubbles이 발생하도록 user 선호도를 표현하기 때문에 어려운 문제이다.

저자들은 3번을 만족시키기 위해 causality-enhanced User-Controllable Inference (UCI) framework를 제안한다. Out-of-date user representation의 효과를 완화하기 위해, causal view 관점으로 추천을 생성하는 절차를 조사하고, counterfactual inference를 활용한다.

  • Out-of-date user representation
    1. UCI는 out-of-date user representation이 없는 counterfactual 세계를 상상하고, out-of-date user representation 효과를 factual 세계와 counterfactual 세계의 차이로 추정합니다.
    2. Out-of-date user representation의 효과를 제거 후, UCI는 command를 반영한 inference를 수행한다.
  • Control command
    1. User-feature control 상황에서는 user의 feature를 수정한 뒤 inference를 진행한다.
    2. Item-feature control 상황에서는 item category에 관한 user-controllable ranking policy를 사용한다.

논문 참고.

3. Preliminary on filter bubbles

Filter bubbles를 직관적으로 이해하기 위해 몇가지 실험을 진행한다. 저자들은 Factorization Machine으로 user group 별로 filter bubbles 현상을 분석한다.

  • User group은 user feature와 user interaction을 반영해 나뉜다.

Fig. 2 (a), (b), (c)는 DIGIX-Video dataset에서 user feature인 gender를 바탕으로 filter bubbles 현상을 살펴본다. Fig. 2 (a)은 interaction에서 성별에 따라 소비한 영화 category 비율로, 여성은 romance를 그리고 남성은 action을 더 많이 소비하였다. Fig. 2 (b)은 여성의 interaction 그리고 추천 결과로 등장한 영화 category에 대한 비율로, romance가 많이 추천된 결과를 볼 수 있다. 마찬가지로, Fig. 2 (c)는 남성의 경우로 action이 많이 추천되었다.

Fig. 2 (d), (e)는 user interaction을 바탕으로 많이 소비한 category를 기준으로 filter bubbles 현상을 살펴본다. Fig. 2 (d)는 Amazon-Book dataset으로 과거에 많이 소비했던 category가 추천 결과에 더 많이 나타나는 것을 볼 수 있다. Fig. 2 (e)는 Ml-1M dataset으로 (d)와 유사한 결과를 살펴볼 수 있다.

4. User-Controllable Recommendation

4.1. Formulation of UCRS

4.1.1. User-controllable Recommender Systems.

저자들은 Fig. 3과 같이 2개의 module: detection and control을 결합한 새로운 loop를 제안한다. 먼저, filter bubbles를 탐지하고, user가 control command를 통해 filter bubbles를 완화한다.

User의 과거 interaction $D$가 주어지면, 기존의 추천 시스템은 $P(R|D)$를 통해 추천 $R$을 예측한다. UCRS는 user controls $C$를 추가로 고려하고, user interventions $do(C)$로 $P(R|D, do(C))$를 추정한다.

  • Intervention은 causal view로부터 4가지 control을 formulate한다.
  • Intervention으로 빠르게 user command를 추천 결과에 반영해 filter bubbles를 완화할 수 있다.

4.1.2. User-feature Controls

User $u$의 $N$개 features를 $x_u=[x_u^1, \cdots, x_u^n, \cdots, x_u^N]$으로 나타낸다. $u$가 n번째 feature를 가지면 $x_u^n=1$ 그렇지 않으면 $x_u^n=0$이다.

  • Fine-grained user-feature controls
    User가 다른 group이 선호하는 item을 더 많이 추천 받도록 한다. 예를 들어, 30대 user가 10대 user들이 선호하는 영화에 관심이 있을 수 있다.
  • Coarse-grained user-feature controls
    User가 특정 group이 선호하지 않고, 단순히 filter bubbles을 없애고 싶을 수 있다. 이땐, user는 자신의 group에서 벗어나야 한다. 예를 들어, 30대 user가 30대가 선호하는 영화에서 벗어나고 싶을 수 있다.

4.1.3. Item-feature Controls

User feature와 연관된 filter bubbles는 user-feature controls로 완화할 수 있지만, user interactions으로 생기는 filter bubbles를 완화할 수 없다. Fig. 2 (d)와 같이 추천 시스템은 과거에 주로 소비한 category에 속한 items를 더 많이 노출시킨다. 그래서 item-feature와 연관된 filter bubbles를 완화해 추천 결과를 조정해야 한다.

  • 예를 들어, 남성은 주로 action을 선호하지만 특정 남성은 romance를 더 선호할 수 있다. 따라서 남성에 의해 생성되는 action bubble과 interaction에 의해 생성되는 romance bubble를 완화해야 한다.

Itemr $i$의 $M$개 features를 $h_i=[h_i^1, \cdots, h_i^m, \cdots, h_i^M]$으로 나타낸다. $i$가 m번째 feature를 가지면 $h_i^m=1$ 그렇지 않으면 $h_i^m=0$이다.

  • Fine-grained item-feature controls
    User가 선호하는 target item categories를 더 많이 추천 받도록 한다.
  • Coarse-grained item-feature controls
    과거 interaction에서 user가 가장 많이 소비한 item categories의 추천을 감소시킨다. 이는 target item categories를 지정해야 하는 fine-grained item-feature controls의 부담감을 감소시킨다.

4.2. Instantiation of UCRS

4.2.1. Detection of Filter Bubbles

Diversity, isolation 관점으로 filter bubbles의 정도를 측정한다.

  • Coverage
    Diversity를 측정할 때 많이 사용되는 metric으로 추천 목록에 있는 item categories의 수를 의미한다.
  • Isolation Index
    User groups 간의 분리(segregation) 정도를 측정한다. 사회학에서 ideological segregation을 측정하는 metric으로 많이 사용된다. 저자들은 이를 추천 시스템에 적용시키기 위해 약간 수정했다.
\[\begin{equation} s = \sum_{i\in\mathcal{I}} \bigg(\frac{a_i}{a_n} \cdot \frac{a_i}{a_i+b_i}\bigg) - \sum_{i\in\mathcal{I}} \bigg(\frac{b_i}{b_n} \cdot \frac{a_i}{a_i+b_i}\bigg) \end{equation}\]
  • 해당 값이 높으면 분리성이 높은 것으로 filter bubbles이 심한 경우이다.
  • $\mathcal{I}$는 item set을 의미하고, $a, b$는 서로 다른 user group을 의미한다.
  • $a_i, b_i$는 각 group에서 item $i$를 추천 받은 user의 수를 의미한다.
  • $a_n = \sum_{i\in\mathcal{I}} a_i$는 user group $a$에게 노출된 items의 total frequency이다. $b_n$도 같은 의미이다.
  • $s\in [0,1]$는 group $a$의 item exposure에서 group $b$의 item exposure를 뺀 값을 weight average한 것이다.
  • Weight는 $\frac{a_i}{a_i+b_i}$이다.
  • Weight의 분자가 $a_i$이기 때문에 group $a$에서 group $b$를 빼고, 그 값이 높으면 filter bubbles이 심하다고 판단할 수 있다.

  • Majority Category Domination (MCD)
    Isolation index는 user features 관점에서 group segregation을 측정하기에 적절하기 때문에, Item features 관점에서 group segregation을 측정하기 위한 metric인 MCD를 활용한다. MCD는 과거 interaction에서 가장 많이 소비한 category가 추천 목록에 있는 비율이다. 즉, 해당 값이 높으면 가장 많이 소비한 category가 여전히 많이 추천된 것으로 filter bubbles이 심하다고 판단할 수 있다.

4.2.2. Response to User-feature Controls

Fine-grained user-feature controls은 $do(C=c_u(+\hat{x},\alpha))$로 표현한다. 바꿔진 user feature에 기반해 추천을 생성해야 하는데, 이는 factual 세계와 다르다. 예를 들어, 30대 user의 feature를 10대 user의 feature로 변경되는 것이다. Coarse-grained user-feature controls도 유사하다.

따라서 counterfactual를 반영해야 하기 위해, UCI framework는 user feature와 recommendation 간의 causal 관계를 파악하고, counterfactual inference를 수행해야 한다.

User-feature controls를 전체적인 순서는 아래와 같다.

  1. Command에 따라 user의 feature를 수정한다.
  2. Counterfactual inference를 수행해서 out-of-date의 효과를 완화한다.

Causal view of generating recommendations.

추천 시스템은 과거 interaction과 user의 feature를 바탕으로 user representations를 학습한다. 그 뒤, user와 item의 representation은 소비할 확률($Y_{u,i} \in [0,1]$)을 예측할 때 사용된다. $Y_{u,i}$는 개인의 선호도와 다양한 그룹끼리 공유되는 선호도가 융합되어 있다.

Fine-grained user-feature controls는 user의 feature를 변경하고, coarse-grained user-feature controls는 user의 feature를 0으로 만든다. Fig. 4를 보면, training 동안 user interaction은 user ID와 user의 feature representation에 영향을 끼치는 confounders이다. 그렇기 때문에 user ID와 user의 feature 사이에 correlation이 존재하게 되고, user의 feature가 변경되더라도 기존의 feature 정보(out-of-date interests of original features)가 user id representation에 남아있다.

본 논문에서는 inference 동안 $Y_{u,i}$에 user ID의 causal effect를 줄이는 것을 제안해 out-of-date representation 영향을 효과적으로 감소시킨다.

  • Causal effect란 user ID에 user feature의 정보가 저장되는 것을 말한다.

Implementation of counterfactual inference.

  1. Counterfactual inference를 통해 user ID representation의 effect를 추정한다.
  2. 1번에서 구한 effect를 original prediction $Y_{u,i}$에서 deduct한다.

직관적으로, counterfactual world는 user ID representation이 없을 때, $Y_{\hat{u}, i}$의 값을 예측하는 것으로 볼 수 있다.

  • $\hat{u}$는 ID representation이 없는 user $u$의 representation이다.

User ID representation의 effect는 $(Y_{u,i} - Y_{\hat{u},i})$로 추정한다. 이를 original prediction $Y_{u,i}$에서 뺀다.

\[\begin{equation} \begin{split} Y_{u,i} &- \alpha \cdot (Y_{u,i} - Y_{\hat{u},i}) \\ &= f(u,i) - \alpha \cdot (f(u,i) - f(\hat{u}, i)) \\ &= (1 - \alpha) \cdot f(u,i) + \alpha \cdot f(\hat{u}, i) \end{split} \end{equation}\]
  • $f(\cdot)$은 추천 model로, FM 등이 될 수 있다.
  • $\alpha \in [0,1]$은 user ID representations의 effect를 완화하려는 정도를 나타낸다.

4.2.2. Response to Item-feature Controls

Fine-grained controls에서는 target item category를 더 많이 추천해야 하고, coarse-grained controls에서는 가장 많이 소비한 item category를 덜 추천해야 한다. UCI framework를 아래의 ranking policy를 활용해 앞의 내용을 수행한다.

\[\begin{equation} Y_{u,i}^\prime = Y_{u,i} + \beta \cdot r(i) \end{equation}\] \[\begin{equation} r(i) = \begin{cases} 2, & \text{ if } \hat{h}_i=1 \text{ for item } i \text{ with fine-grained controls} \\ 0, & \text{ if } \bar{h}_i=1 \text{ for item } i \text{ with coarse-grained controls} \\ 1, & \text{ otherwise} \end{cases} \end{equation}\]
  • $\beta = [0, 1]$

Target category prediction

Item category가 너무 많을 때, fine-grained item-feature controls에서 user가 원하는 target categories를 지정하는건 부담스러운 일이다. 그래서 target categories를 예측하는 model을 학습한다.

Coarse-grained item-feature controls로 부담을 줄일 수 있다. 그래도 예측된 target categories로 fine-grained controls을 함께 수행하면, filter bubbles를 더 많이 완화할 수 있다.

  1. 시간 순으로 training data를 2 부분으로 나눈다.
  2. 첫 번재 category distribution(시간 상 오래된 것)을 입력으로 두 번째 category distribution(시간 상 최신)을 예측하는 model을 학습니다.

이를 통해 시간이 지남에 따라 user의 interest가 어떻게 이동하는지 예측할 수 있게 된다. 예를 들어, 몇몇 categories에 대한 선호도가 증가하는 것을 파악할 수 있다.

그리고 item categories간 관계도 파악할 수 있다. 예를 들어, 액션 영화를 좋아하는 사용자가 범죄 영화도 좋아하는 경우를 관찰할 수 있다.

Inference에서는 두 번째 category distribution을 model의 입력으로 줘서 예측을 진행한다. 그리고 coarse-grained item-feature controls과 함께 top-K target categories로 fine-grained item-feature controls를 수행한다.

5. Experiments

논문 참고.

This post is licensed under CC BY 4.0 by the author.