추천 시스템 9장 : 시간과 위치에 민감한 추천 시스템

태환·2023년 8월 12일
0

Recommendation System

목록 보기
9/12
post-thumbnail

📌 개요

  • 많은 실제 시나리오에서 구매 평가와 시간 정보와 관련이 있다.

추천 시스템이 일반적으로 사용하는 사용자 활동의 시간적 정보

1. 명시적 평가 : 날짜는 명시적 평가와 관련이 있다.
 Ex> 날짜는 예측 방법을 사용하거나 주기적이거나 시즌 정보를 예측 프로세스의 정확성을 향상시키는 데 사용할 수 있다.
2. 암시적 피드백 : 아이템 구매 또는 웹 페이지 클릭과 같은 고객 행동에 해당한다.
 Ex> 과거의 사용자 행동 순서는 향후 행동을 예측할 때 사용한다.

시간은 두 가지 관점으로 볼 수 있다.

1. 최신성 및 예측 관점 : 최신 평점이 이전 평점보다 중요하다는 것이다.
2. 컨텍스트 관점 : 계절 또는 월과 같은 다양한 주기적인 측면을 사용할 수 있다.
  • 예측된 평점을 시간의 함수로 명시적으로 표현함으로써 시간을 모델링 변수로 취급할 수 있다.
  • 이 함수의 매개변수는 관측된 평점과 관련해 예측된 평점의 제곱 오차를 최소화해 데이터 기반 방식으로 학습할 수 있다.

📌 시간적 협업 필터링

예측의 효과를 향상시키기 위해 두 가지 방법 중 하나를 사용해 시간 정보를 사용할 수 있다.

1. 최신성 기반 모델 : 일부 모델은 최근 평점이 이전 평점보다 중요하다고 간주한다.
2. 주기적 컨텍스트 기반 모델 : 시간, 일, 주, 월 또는 계절의 특이성 수준의 시간과 같은 기간 특정 속성을 사용해 추천을 수행할 수 있다.
3. 시간을 독립변수로 명시적으로 사용하는 모델 : time-SVD++라고 하는 방식은 모델링 프로세스에서 시간을 독립변수로 사용한다.
  • 최신성 기반 모델은 다양한 환경에서 간단하고 구현하기 쉽다는 장점이 있는 반면,
    time_SVD++ 모델로 찾을 수 있는 정교한 시간적 특성을 포착할 수 없다.

📖 최신성 기반 모델

  • 최신성 기반 모델에서는 최근 평가가 이전 평가보다 중요하다.
  • 최근의 중요성은 감쇠 기반 방법이나 윈도우 기반 방법으로 해결할 수 있다.

1. 감쇠 기반 방법

  • 감쇠 기반 방법에서는 타임 스탬프 tuj는 m x n 평점 행렬 R에서 사용자 u의 각각의 관측된 평점 및 아이템 j와 관련 있다.
  • 모든 추천은 목표시간 tf로 작성돼야 한다고 가정한다.
  • 목표 시간 tf에서 평점의 가중치는 감쇠함수를 사용해 정의되며, tuj와 tf 사이의 더 큰 거리에 패널티를 준다.
    • 일반적으로 사용되는 감쇠함수는 지수함수다.
    • 감쇠율 λ는 시간의 중요도를 조절하는 사용자 정의 매개변수이며, λ가 클수록 오래된 평가가 더 크게 강조되지 않는다.
  • 최종 예측 함수를 변경함으로써 사용자 기반 이웃 방법을 수정할 수 있다.
  • 결과적으로 다른 이웃 기반 방법과의 유일한 차이점은 집계 프로세스 동안 다른 사용자의 평점에 wuj(tf)라는 가중치를 적용한다는 것이다.
    • 예측 함수의 가중치는 오래된 평가에 대한 중요도를 낮춰서 최신 트렌드에 유리하게 바이어스를 준다.
  • 최종 단계에서 약간 수정해 사용자 기반 모델과 아이템 기반 모델 모두에 쉽게 적용할 수 있다.

2. 윈도우 기반 방법

  • 윈도우 기반 방법에서는 특정 시간보다 오래된 평점을 고려하지 않는다.
  • 이 접근법은 컨텍스트 기반 모델에서 사전 필터링 또는 사후 필터링 방법의 특별한 경우로 볼 수 있다.

윈도우 모델링하는 방법

1. 목표 시간과 평가 시간 사이의 차이가 특정 임계값보다 크면 평점을 제외한다.
2. 기본 도메인에 따라 다양한 아이템의 활성 기간에 대한 통찰력을 얻을 수 있는 경우도 있다.

📖 주기적 컨텍스트 처리

  • 주기적 컨텍스트는 시간 차원이 하루 중 특정 시간, 요일, 계절, 특정 주기적 이벤트 근처의 시간 간격과 같은 특정 시간을 참조할 수 있는 경우를 처리하도록 설계됐다.
  • 이러한 경우 다차원 컨텍스트 모델을 사용해 처리하는 것이 가장 좋다.
  • 이 경우 추천을 만들 때 대상 추천 시간은 컨텍스트를 정의한다.

1. 사전 필터링

  • 사전 필터링에서는 추천이 수행되거나 실행되는 특정 목표 시간과 관련이 없는 평가 데이터의 상당 부분이 제거된다.
    Ex> 추수감사절 전 주말에 추천을 위한 모델을 구성하기 위해 매년 추수 감사절 2주 전의 평가만 사용할 수 있다.
  • 각 컨텍스트 안에서 예측을 위해 별도의 모델을 구성한다.
  • 필터링 후, 임의의 비컨텍스트적 방법을 사용해 각 세그먼트 내에서 가지치기된 데이터를 예측할 수 있다.
  • 사전 필터링 방법과 관련된 주요 문제는 가지치기된 데이터 세트가 원래 데이터보다 훨씬 희박하므로 추천 프로세스의 정확성에 부정적인 영향을 미친다는 것이다.
  • 많은 경우 추천의 정확성을 향상시키기 위해 주기적 컨텍스트에서 계층 구조를 사용하며, 이로 인해 더 많은 수의 평가를 사용하게 되어 과적합을 방지하는데 도움이 된다.

2. 사후 필터링

  • 사후 필터링에서 모든 데이터에 대한 추천을 생성하기 위해 컨텍스트적 방식을 고려하지 않고 사용한 후 컨텍스트를 기반으로 조정한다.
  • 사후 필터링 접근 방식 두 단계
1. 시간적 컨텍스트를 무시하고 모든 데이터에 대해 기존의 협업 필터링 접근 방식을 사용해 추천을 생성한다.
2. 사후 처리 단계에서 시간적 컨텍스트를 사용해 생성된 추천 목록의 순위를 조정하거나 컨텍스트상 관련이 없는 아이템을 제거할 수 있다.
  • 컨텍스트에 맞는 가중치를 결정하기 위해 종종 아이템의 콘텐츠 속성을 사용한다.
  • 예측이 필요한 특정 사용자 u에 대해 특정 관심 기간에 대한 평점이 사전 필터링되고 사전 필터링된 평점에 대해 기성 추천 모델이 구성돼 평점을 예측한다.

3. 시간적 컨텍스트의 직접적인 포함

  • 시간적 컨텍스트를 포함하기 위해 이웃 방법과 같은 기존 모델을 직접 수정할 수 있다.
  • 이러한 경우 사용자, 아이템 및 컨텍스트에 해당하는 3차원 표현으로 직접 작업할 수 있다.
  • 수정된 거리 계산을 사용하면 컨텍스트가 추천 프로세스에 자동으로 포함된다.
  • 시간적 컨텍스트를 직접 포함하기 위해 회귀 및 잠재 요인 모델을 수정할 수 있다.

📖 시간 함수로의 평점 모델링

  • 평점은 시간 함수로 모델링되며 모델의 매개변수는 데이터 종속적인 방식으로 학습된다.
  • 이러한 방법을 사용하면 장기 추세와 일시적이거나 잡음이 많은 추세를 지능적으로 분리할 수 있으며, 모델에는 자연스럽게 예측 요소가 내장돼 있다.

1. time-SVD++ 모델

  • time-SVD++ 모델은 SVD++ 모델을 시간적 측면으로 향상한 모델이라고 볼 수 있다.
  • 사용자 바이어스, 아이템 바이어스 및 요인 행렬로 평점 행렬 R을 표현하면 예측 평점은 다음과 같이 표현할 수 있다.
    • oi는 사용자 i에 대한 바이어스 변수이고,
      pj는 아이템 j에 대한 바이어스 변수이다.
  • 암묵적 피드백을 포함한 평점 예측 값은 다음과 같이 표현할 수 있다.
  • SVD++ 모델과 time-SVD++ 모델의 주요 차이점은 일부 time-SVD++ 모델의 매개변수는 시간 함수라고 가정하는 것이다.
  • 시간적 변수를 사용함으로써 시간 t에서 평점 행렬의 (i,j)번째 원소의 시간 변동 예측 값을 다음과 같이 얻는다.
  • time-SVD++ 모델은 직관적인 인수로 각 시간 매개변수화를 정당화할 수 있는 단순화된 접근법을 선택하지만 원칙적으로 이러한 변수를 일시적으로 매개변수화할 수도 있다.
  1. 아이템 바이어스 바이어스 pj(t)의 시간적 형태를 선택하는 직관은 아이템의 인기가 시간에 따라 크게 변할 수 있지만, 단기간에 걸쳐 높은 수준의 연속성과 안정성을 나타낸다는 것이다.
    • 시간 범위는 동일한 크기의 bin으로 분할될 수 있으며 특정 bin에 속하는 평점은 동일한 바이어스를 갖는다.
    • 아이템 바이어스 pj(t)는 일정한 부분과 오프셋 파라미터로 나눌 수 있으며, 이는 아이템 j가 평가되는 시간 t와 bin에 따라 다르다.
    • 상수 Cj 및 오프셋은 모두 데이터 중심 방식으로 학습해야 하는 매개변수이다.
    • 사용자와 달리 아이템은 일반적으로 평점이 충분하므로 아이템을 이 방법으로 저장소에 더 잘 넣을 수 있다.
  2. 사용자 바이어스 oi(t)를 매개변수로 지정하기 위해 기능적 형태를 사용하며, 이는 시간에 따른 사용자의 콘셉트 드리프트를 포착한다.
    • 사용자 i의 모든 평점의 평균 날짜를 vi로 표시하면, 시간 t에서 사용자 i의 콘셉트 드리프트는 다음과 같이 t의 함수로서 게산할 수 있다.
    • 매개변수 β는 교차 검증을 통해 선택하며 전형적인 값은 0.4이다.
    • 시간 t에서의 일시적인 노이즈는 파라미터 εit로 포착되며, 사용자 바이어스는 다음과 같이 상수 부분, 시간 종속적 부분 및 일시적인 노이즈로 분할한다.
    • 시간은 종종 하루 단위로 별개의 것이라고 구분하기 때문에 εit는 일시적인 일별 변동에 해당된다.
    • 파라미터 Ki, αit, εit는 데이터 드리븐 방식으로 학습돼야 한다.
    • 사용자는 현재 대부분의 아이템을 긍정적 또는 부정적으로 평가할 수 있지만 평균 평점은 몇 년 내에 감소할 수 있다.
      이런 변동 부분은 αi x devi(t)에 의해 포착된다.
    • 하루하루 일시적인 감정 변화는 갑작스럽고 예측 불가능한 평점의 급상승이나 하락으로 이어질 수 있다.
      이러한 변형은 εit에 의해 포착된다.
  3. 사용자 요인 uis(t)는 다양한 개념에 대한 사용자의 선호도에 해당한다.
    • 사용자 요인의 시간적 변화를 모델링하는 데 사용자 바이어스에 대한 유사한 접근 방식을 사용한다.
    • 사용자 바이어스의 경우와 같이 상수 효과, 장기 효과 및 일시적 효과는 세 가지 항으로 모델링한다.
  • 데이터에서 관찰된 모든 평점에 대해 제곱 오차 함수를 최소화하는 방향으로 최적화 문제를 설정할 수 있다.
    • 행렬 R에 평점이 지정된 사용자 아이템 피어 세트가 포함된 경우 다음 최적화 문제를 해결해야 한다.
    • 목적함수를 최적화하고 관련 매개변수를 학습하기 위해 경사하강법을 사용할 수 있다.

예측 모델 사용

  • 주어진 사용자 i 및 아이템 j에 대해 수식 9.7을 사용해 학습된 파라미터 값을 대체함으로써 미래 시간 t에서 예측한 평점을 결정할 수 있다.
  • 주요 문제는 ε 일별 매개변수가 있다는 것이다.
  • 이 매개변수는 과거 데이터에서 과거 일자를 위한 학습을 할 수 있지만, 미래에 대한 학습을 할 수 없다.
  • 따라서 이 값들은 노이즈가 없는 예측이 이루어지고 있다는 가정하에 미래의 날들에는 0으로 설정한다.
  • 이러한 매개변수는 최종 예측에 사용하지 않지만 평가 과정에서 일시적인 노이즈와 스파이크를 완화하기 때문에 모델링 프로세스에 여전히 중요하다.

📌 이산 시간 모델

  • 이산 시간 모델은 기본 데이터가 이상 시퀀스로 입수되는 경우와 관련이 있다.
  • 대부분은 명시적 평가가 아니라 암시적 사용자 피드백과 관련 있다.

애플리케이션 시나리오의 몇 가지 예

1. 웹 로그 및 클릭 스트림 : 웹 로그에 대한 사용자 액세스는 일반적으로 순차적 패턴으로 볼 수 있다.
2. 슈퍼마켓 거래 : 슈퍼마켓에서의 고객 구매 행동은 순차적 데이터의 한 형태이다.
3. 쿼리 추천 : 많은 웹사이트는 사이트에서 사용자 쿼리를 기록한다.
  • 이산 시간 모델의 두 가지 유형에 대해 정리한다.

📖 마르코프 모델

  • 이 접근 방식은 웹 페이지 액세스와 관련해 논의되지만 사용자 작업의 시간적 순서를 사용할 수 있는 한 모든 유형의 작업을 추천하도록 일반화할 수 있다.
  • 마르코프 모델에서 순차적 정보는 상태의 형태로 인코딩돼 예측을 목적으로 사용한다.
  • k번째 순서 마르코프 모델은 사용자가 마지막으로 수행한 k개의 행동들을 기반으로 상태를 정의한다.
    • 행동은 애플리케이션에 따라 다르다.
  • 다양한 영화를 보는 행위에 해당하는 경우 상태 Q는 다음과 같이 고려한다.
    • 이 상태는 특정 순서로 이 영화를 보는 사용자에 해당하는 세 가지 다른 행동이 있으며 이 상태는 order03 마르코프 모델에서 가져온다.
  • 일반적으로 시퀀스는 마르코프 체인의 전이를 정의하며 order-k 모델에서 현재 상태는 마르코프 체인의 마지막 k 행동으로 정의한다.
  • 마르코프 체인의 상태는 전이에 따라 선으로 연결된다.
  • |∑|가 있기 때문에 각각의 |∑|^k 상태에서 전이가 가능한 경우 order-k의 전체 마르코프 모델에서 총 에지 수는 |∑|^k과 같다.
  • 상태 외의 전이 확률의 합계는 항상 1이며, 전이 확률은 학습 데이터에서 학습된다.
  • 그림 9.1은 알파벳 {A, B, C, D}에 그려진 order-1 마르코프 체인이다.
    • 체인에는 4가지 상태와 4 x 4 = 16개의 선이 있다.
    • AABCBCA 동작 순서는 마르코프 체인의 다음 상태 경로에 해당한다.
    • order-2의 마르코프 모델은 4 x 4 = 16개의 상태와 4 x 4 x 4 = 64개의 선을 포함한다.
    • 동작 순서 AABCBCA에 해당하는 변환 순서는 다음과 같다.
  • 마지막 k 해동의 현재 상태를 고려해 행동 σi의 값을 추정한다.
  • 이는 order k의 마르코프 모델에 대한 학습 및 예측에 대한 다음과 같은 간단한 접근 방식을 제안한다.
  1. 학습 단계
    • S는 길이 k의 가능한 시퀀스|∑|^k의 집합이다.
    • 각 가능한 시퀀스 S에 대해 학습 데이터를 사용해 각 후보 행동 σi에 해당하는 확률P(σi|S)를 학습한다.
    • 총 |∑|^k+1 확률은 학습돼야 하며, 이는 order-k 마르코프 모델의 에지 수와 같다.
    • 학습된 각 확률은 마르코프 모델에서 에지의 전이 확률에 해당한다.
  2. 예측 단계
    • 사용자 행동의 시퀀스에 대해 사용자의 마지막 k 행동을 사용해 마르코프 체인에서 관련 상태 St를 결정한다.
    • 추천으로 P(σi|St)의 최댓값을 사용해 ∑의 최상위-r 행동을 제공한다.
  • 마르코프 방식은 일반적인 사용자 행동 시퀀스의 짧은 메모리 가정에 의존한다.
  • 이 아이디어는 사용자 행동이 바로 직전의 k 세트에만 의존한다는 것이다.
  • 가능한 시퀀스 중 하나인 시퀀스 S를 고려해야 한다.
  • 이 시퀀스가 학습 데이터에서 F(S)번 발생하고, 시퀀스 S 다음에 데이터에서 총 f(S,σi) <= F(S) 시간 동안 행동 σi가 나오면 확률 P(σi|s)는 다음과 같이 추정한다.
    • F(S)의 값이 작으면 이 추정이 어려울 수 있기 때문에 라플라시안 스무딩을 사용한다.
    • 이는 특정 시퀀스 이후 특정 행동에 대한 데이터가 충분하지 않을 때 매우 합리적이다.

1. 선택적 마르코프 모델

  • 선택적 마르코프 모델에서는 모델 구성 중에 관련이 없는 많은 상태가 가지치기 된다.
  • 가지치기는 여러 가지 방법으로 수행할 수 있다.
1. 지지-가지치키 마르코프 모델 : 상태 지지는 학습 데이터에 존재하는 빈도로, 지지도가 낮은 상태는 보이지 않는 테스트 데이터에 대한 예측 능력 측면에서 신뢰할 수 없다는 것이기에 제거한다.
2. 신뢰도-가지치키 마르코프 모델 : 신뢰도 가지치기 마르코프 모델은 한 상태에서 벗어나는 에지 확률이 가장 높은 상태를 선호하는 경향이 있다.
3. 오류-가지치기 마르코프 모델 : 오류 가지치기 마르코프 모델에서 검증 세트는 학습 데이터에서 가져오며 이 검증 세트는 모델의 정확성을 테스트하는데 사용한다.
                          상위 상태의 오류율이 하위 대체 대안의 오류율보다 크면 제거한다.

2. 다른 마르코프 대안

  • 보다 정교안 대안은 HMM(Hidden Markov Modules)을 사용하는 것이다.
  • 이러한 경우, 비연속성을 사용해 예측할 수 있다.

📖 순차 패턴 마이닝

  • 연관 규칙 마이닝의 지지도 및 신뢰도 정의는 순차 규칙 마이닝에 적용된다.
  • 다음 조건이 모두 충족되는 경우 규칙 σ1 . . .σk -> σk+1은 최소 지지도 및 최소 신뢰도 c에서 유효하다.
  • 순차 패턴이 결정된 후, 원하는 최소 지지도 및 신뢰도 수준에서 규칙을 결정할 수 있다.
  • 순차 패턴 마이닝 방법의 학습 단계는 지정된 최소 지지도 및 신뢰도 수준에서 모든 규칙을 찾는다.
  • 규칙이 결정된 후, 현재의 테스트 시퀀스 T에 대한 관련 순위가 매겨진 아이템 목록을 예측하는 데 다음 접근법을 사용한다.
1. 테스트 시퀀스 T에 대한 모든 일치 규칙을 식별한다.
2. 매칭 규칙의 결과에서 신뢰도 를 내림차순으로 아이템 순위를 매긴다.
   휴리스틱 방법을 사용하면 여러 규칙에 동일한 아이템이 포함된 경우 예측을 집계할 수 있다.

📌 위치 인식 추천 시스템

  • 위치는 다양한 방식으로 추천 프로세스에 영향을 줄 수 있으며 특히 두 가지 방법을 일반적으로 사용한다.
  1. 사용자의 전 세계 지리적 위치는 취향, 문화, 의복, 식습관 등의 측면에서 선호도에 큰 영향을 줄 수 있으며, 이 속성을 선호 지역성이라고 한다.
    • 이 경우 지역성은 본질적으로 사용자와 관련이 있지만 아이템과는 관련이 없다.
    • 사용자는 공간적인 반면 아이템은 공간적이지 않다.
  2. 모바일 사용자는 종종 자신의 현재 위치 근처에서 식당이나 레저 장소를 찾으려고 하며, 이 속성을 여행 지역성이라고 한다.
    • 이 경우 아이템은 공간적인 반면 사용자는 공간적이지 않다.
  3. 사용자와 아이템이 공간적인 시나리오를 상상해볼 수 있다.
    Ex> 하와이에서 휴가를 보내고 있는 보스턴의 사용자가 하와이의 레스토랑에 대한 평점을 지정하는 경우 사용자와 아이템 모두 공간 선택이 가능하므로 식당 선택은 원래 위치의 영향을 받는다.
  • 위치 인식 추천 시스템은 선호 지역을 처리하기 위해 유사한 축소 기반 접근 방식을 사용한다.
  • 그리드 영역의 계층적 분류를 나타내기 위해 다차원 색인 구조를 사용한다.
  • 이 색인 구조는 평점을 점진적으로 추가하는 것이 가능하므로 확장성이 필요한 환경에서 잘 작동할 수 있다.

📖 선호 지역

  • 선호 지역의 개념은 추천 시스템의 축소 기반 다차원 모델의 많은 특성을 공유한다.
  • LARS 접근법은 파라미드 트리 또는 쿼드 트리를 사용해 전체 공간 영역을 계층적 방식으로 나눈다.
  • 이 접근 방식은 공간의 모든 지점이 파티션 중 하나에 포함되도록 데이터를 지점이 아닌 공간으로 분할하며, 이를 통해 새로운 테스트 위치가 데이터에 표시되지 않더라도 쿼리 단계에서 효과적으로 처리될 수 있다.
  • 피라미드 트리는 공간을 H 레벨로 분해하며, h = 0의 최상위 레벨에는 하나의 셀만 포함하고 전체 데이터 공간이 포함된다.
  • 최상위 그리드 셀에는 모든 평점이 포함된 기존의 협업 필터링 모델이 포함된다.
  • 피라미드의 계층적 분할의 예가 그림 9.2에 나와 있다.
    • 그림에서 셀 식별자는 CID로 표시되며 왼쪽의 테이블 항목에는 해당 셀의 관련 협업 필터링 모델에 대한 포인터가 포함돼 있다.
    • 이 데이터 구조는 동적으로 유지되므로 평점을 시스템에 삽입하거나 삭제할 수 있다.
    • 동적 프로세스의 한 가지 문제점은 업데이트 중에 셀의 동적 병합 또는 분할로 인해 셀의 하위 집합에 대한 모델을 유지 관리할 수 없는 경우가 있다.
    • 새로운 평점이 나오면 모델을 증분 업데이트 해야하므로 증분 업데이트가 가능한 기본 모델을 선택하는 것이 중요하다.
    • 사용자는 추천 프로세스가 실행돼야 하는 세분화된 지리적 수준을 선택적으로 지정할 수도 있다.

📖 여행 지역

  • 이 경우 검색에서 지정한 위치에 가까운 결과를 제공하는 것이 바람직하기 때문에 위치는 사용자가 아닌 아이템과 연관이 있다.
  • 이것은 LARS에서 여행 패널티라는 개념으로 사용한다.
  • 사용자 i의 쿼리 위치와 아이템 j의 위치 사이의 거리를 계산한다.
    • 먼저 아이템 j에 대한 사용자 i의 평점은 전체 데이터에 대한 전통적인 협업 필터링 모델로 예측하며, 예측된 평점은 △(i , j) 함수 F(•)로 패널티를 받는다.
    • 조정된 평점은 다음과 같이 계산한다.
    • F(•)는 거리 △(i , j)의 비감소함수이므로 패널티는 평점의 스케일로 정규화한다.

📖 선호도와 여행 위치 조합

  • 위치가 사용자 및 아이템과 연관된 컨텍스트를 가질 수 있다.
  • 이 경우 선호 지역 및 여행 지역과 관련된 방법을 조합할 수 있다.
  • 우선 평점을 예측하기 위해 주요 사용자 위치에 따라 피라미드 트리 구조를 사용한 뒤, 검색하고 있는 위치는 위에서 언급한 여행 패널티와 함께 사용한다.
profile
연세대학교 컴퓨터과학과 석사 과정

0개의 댓글