본문 바로가기
카테고리 없음

추천 시스템 7장

by 도지선다형 2025. 5. 28.

행렬분해 : 평갓값 행렬을 저차원의 사용자 인자 행렬과 아이템 인자 행렬로 분해하는 것

행렬분해를 사용할 때는 라이브러리를 사용, 이들을 다루는 방법에 대해 이해한 뒤 적절한 데이터를 입력해 학습시켜야 한다.

평갓값이 명시적이다. = 사용자가 아이템에 대해 명시적으로 평가한 데이터를 말함.

ex) 각 영화와의 상성은 벡터의 내적을 사용해서 계산, 이렇게 정보를 압축해서 영화와 사용자를 저차원의 베터로 표현하고 그 벡터 공간 안에서 사용자의 상성을 측정하는 것이 행렬분해의 핵심

 

비음수 행렬 분해 : 행렬 분해 시 사용자와 아이템 각 벡터의 요소가 0 이상 되는 제약을 추가한다.

제약에 따라 각 사용자나 아이템의 벡터해석특성이 향상된다.

 

명시적인 평갓값에 대한 행렬 분해 : 결손값을 메꾸지 않고 관측된 평갓값만 사용해 행렬분해하는 방법

 

 

행렬분해에서는 잠재 인자 수와 에폭 수, 정규화 파라미터 조정이 중요하다.

파라미터들의 적절한 값은 그리드 서치나 베이즈최적화등을 이용해 찾는다.

 

암묵적인 평갓값에 대한 행렬 분해

암묵적인 평갓값이란 사용자가 명시적으로 평가하지 않은 사용자의 행동이력을 의미

 

 

암묵적인 평가의 특징

  • 음수의 예가 없다.
  • 클릭 수 등과 같이 평갓값을 가질 수 있는 범위가 넓다.
  • 노이즈가 많다.

 

실무에서는 행렬 분해를 사용할 때 스파크 등 라이브러리나 서비스에 구현되어있느 ㄴ행렬 분해가 명시적 행렬 분해인지 암묵적 행렬 분해인지 확인한 후 적절히 사용해야한다.

 

 

 

FM : 사용자나 아이템의 속성 정보를 사용함으로써 신규 아이템이나 사용자에 대한 추천이 불가능한 콜드 스타트 문제에도 대응할 수있다는 장점을 갖고 있다.

사용자와 아이템의 속성 정보 등의 보조 정보를 연결한 것.

좋은 점 - 특징량끼리의 조합도 고려할 수 있음.

 

FM 식

FM에서는 특징량 수를 늘려도 파라미터가 제곱에 비례해서 늘어나는 것이 아니라 선형으로 늘어난다.

 

 

자연어 처리 방법에 대한 추천 시스템 응용

상품 설명문이나 사용자 리뷰를 분석함으로써 콘텐츠 기반 추천으로 비슷한 상품을 찾을 수 있음

 

토픽 모델

토픽 할당에 디리클레 분포를 사전 분포로 가정해 베이즈 추정을 한 모델

1. LDA를 문장에 적용할 때는 먼저 MeCab 등의 형태소 분석 라이브러리를 사용해 문장을 분할

2. 다음으로 조사나 구두점을 제거하고 명사와 형용사만 남기는 등으로 전처리

3. 어떤 품사 를 남기고 삭제하는가에 관한 판단은 비즈니스 목적에 따라 다름.

 

이 데이터를 LDA에 입력하면 각 토픽별 단어 분포와문장 토픽 분포가 계산된다.

LDA에 데 이터를 입력할 때는 토픽 수라는 파라미터를 미리 결정해놓아야 한다.

 

 

 

 

 

 

 

LDA를 사용한 협조 필터링 추천

행동 이력에 LDA를 적용해 얻을 수 있는 장점은 추천 시스템을 만드는 목적 외에도 탐색적 데 이터 해석 (EDA)으로 사용자나 아이템에 대한 이해도를 높일 수 있다,

행동 이력을 기반 으로 각 아이템을 모아주기 때문에 상품의 설명문만 언뜻 보면 다른 것처럼 보여도 사실 함께 구입되기 쉬운 아이템임을 알 수 있다.

 

 

 

word2vec

'단어의 의미는 그 주변 단어에 따라 결정된다라는 가설이 있다. 이 가설을 분포 가설이 라고 한다,

이 분포 가설을 기반으로 단어의 의미를 벡터로 표현하는 방법 중 하나가 word2vec이다.

word2vec을 학습시키면 출력으로 각 단어의 벡터를 얻을 수 있다.

그리고 그 단어의 벡터를 사용해 단어의 유사도를 설계할 수 있다.

 

 

 

 

 

word2vec을 사용한 협조 필터링 추천(item2vec)

이 방법은 item2vec 또는 prodZvec 이라 불리며 구현이 간단하고 추천 성능이 높아 에어비앤비Airbnb 등의 기업에서 사용되고 있다.

LDA의 경우와 마찬가지로 사용자의 행동 이력을 단어의 집합으로 간주하고 word2vec을 적용한다.

이때 사용자가 행동한 순서대로 아이템을 나열하는 것이 중요하다.

word2vec에 는 window.size라는 파라미터가 있으며 이 액션 순서까지 고려해 학습시킨다

이 벡터를 사용하면 아이템 간 유사도를 계산할 수 있으며 관련 아이템 추천을 구현한다,

그리고 이 아이템의 벡터를 사용하면 사용자에게 간단히 추천할 수 있다

 

 

 

 

딥러닝

딥 러닝Deep Learning은 2010년대 전반에 컴퓨터 비전이나 자연어 처리 등의 분야에서 기존 방법의 성능을 크게 뛰어넘으며 주목을 받았다.

오늘에 이르기까지 산업계와 학계에서 다양한 분 야의 딥 러닝 연구가 계속되고 있다

 

 

딥러닝을 활용한 추천 시스템 실무에서는 주로 다음과 같은 2가지 방법으로 딥러닝을 추천 시스템에 활용

• 이미지나 문장 등 비구조 데이터의 특징량 추출기로 활용

・ 복잡한 사용자 행동과 아이템 특징량 모델링

 

 

 

이미지나 문장 등 비구조 데이터의 특징량 추출기로 활용

딥러닝은 이미지 분석이나 자연어 처리 분야에서 많은 모델이 제안되었고 큰 성과를 남겼다,

그 모델들은 다층 레이어 구조로 되어 있어 분류 문제 등 태스크를 해결하는 데 필요한 특징이 각 레이어에서 추출된다.

즉, 입력 데이터로부터 불필요한 정보를 삭제하고 레이어를 경유해서 태스크를 해결하기 위해 필요한 정보로 압축한다고 생각할 수도 있다

 

 

 

 

복잡한 사용자 행동과 아이템 특징량 모델링 추천 시스템에서 딥러닝의 장점으로 다음 2가지를 들수 있다.

• 비선형데이터모델링

• 시계열데이터 모델링

 

 

 

비선형 데이터 모델링

 

DeepFM은 Factorization Ma사lines를 딥러닝화한 방법

아이템이나 사용자의 특징량 에 대해 특징량 엔지니어링이 필요 없으며 그대로 모델에 입력할 수 있다.

모델 안에서는 고차원의 각 특징량 조합도 학습해준다

 

 

 

 

시계열 데이터 모델링

RNN이나 LSTM은 자연어 처리 분야에서 제안된 방법

단어 예를 입력하면 다음에 만들어질 것으로 예상되는 단어를 알려준다.

이전 절의 자연어 처리 추천 시스템 응용 부분에서도 소개했지만 사용자가 클릭한 아이템 리스트를 단어 계열로 봄으로써 이 자연어 처리 방법들을 응용할 수 있다

 

 

 

 

 

 

 

추천 시스템 평가

3가지평가 방법

오프라인 평가

오프라인 평가로 실제 서비스상에서의 열람, 구매 등 사용자 행동 이력에서 얻은 과거의 로그 서비스 로그를 사용해 모델의 예측 정밀도 등을 평가한다.

서비스 로그를 사용하는 온라 인 평가의 장점은 평가 비용이 낮고 데이터양이 풍부하기 때문에 평가 결과의 분산이 적다는 것이다.

한편 오프라인에서 성능이 좋았던 추천 모델을 실제로 배포해봐도 비즈니스 목표인 사용자 만족도나 매출에 기여하지 않는 경우도 있다.

그러므로 오프라인 평가에서는 비즈 니스 목적의 대체 지표인 오프라인 평가 지표를 적절히 설정해야 합니다. 이번 장에서 평가 지 표란 학습한 모델의 성능이나 예측값의 좋고 나쁨을 측정하는 지표를 나타낸다.

 

 

 

온라인 평가

온라인 평가는 새로운 테스트 대상의 추천 모델이나 새로운 사용자 인터페이스를 일부 사용자 에게 실제로 표시함으로써 평가를 수행한다.

따라서 매출 등 비즈니스 목표에 얼마나 기여했 는지 직접 알 수 있어 오프라인 평가보다 정확한 평가를 수행하기 쉽다.

 

 

 

사용자 스터디

사용자 스터디에 의한 평가는 사용자에게 인터뷰나 설문을 하는 것으로 추천 모델이나 사용자 인터페이스의 정성적인 성질을 조사한다.

추천 모델의 예측 정도뿐 아니라 아이템 제공 방법 이나 사용성 등 사용자 경험에 관한 피드백을 직접 얻을 수 있어 서비스 로그만으로는 알 수 없 는 개선점을 발견할 수 있다.

하지만 설문이나 인터뷰 조사로 얻은 대답은 주관에 기반한 경우가 많으므로 개인 취향에 따른 대답의 분산이 크고 데 이터의 양을 충분히 얻기 어려워 재현성이 떨어진다는 문제도 있다.

 

오프라인 평가

모델 정밀도평가

추천 시스템에서 모델의 주요 목적은 과거의 사용자 행동을 학습하고 미지의 사용자 행동에 대 해 높은 정밀도로 예측을 수행하는 것. 미지의 데이터에 대한 예측 능력은 모델의 일반 화 성능이라고도 불린다.

 

모델 밸리데이션

학습 데이터와 테스트 데 이터로 나눠지지 않은 데이터셋은 우선 데이터를 학습 데이터와 테스트 데이터로 나눈다.

추천 시스템의 서비스 형태에 따라서는 아이템 소비에 관한 시계열 정보가 추천 정밀도에 크게 기여하기도 한다.

 

모델 튜닝

모델 튜닝이란 예측 성능이 높아지도록 모델이 가진 파라미터를 조정하는 것. 이 튜닝은 학습 데이터 안의 밸리데이션(valid) 데이터에 대한 밸리데이션을 통해 수행하며 테스트 데이터만 가지고 수행하지 않도록 주의!

테스트 데이터로 튜닝을 수행하면 원래 목적인 '미지의 데이터에 대한' 일반화 성능을 평가할 수 없게 되기 때문.

 

 

평가 지표

평가 대상의 데이터셋을 설계하고 모델 학습이 완료된 뒤에는 평가 지표를 사용해 추천 모델을 평가.

평가 지표란 학습한 모델의 성능이나 예측값의 좋고 나쁨을 측정하는 지표.

 

집합 평가 지표

모델이 사용자에게 클릭된다고 예측한 아이템 집합(예측 아이템 집합)과 사용자 가 실제로 클릭한 아이템 집합(적합 아이템 집합)을 입력으로 하는 Precision, Recall, Fl measure 지표를 소개.

여기서는 어떤 사용자에 대해서만 값을 계산하는 예를 소개하지 만 일반적으로 추천 시스템 평가에서는 각 사용자에 대해 지표를 계산하고 평가 대상 전체 사 용자에 대한 평균을 구해 평가.

 

Precision(적합률)은 예측 아이템 집합 안에 존재하는 적합 아이템의 비율입니다. 순위의 길이가 K일 때 Precision@K로 표현

 

Recall (재현율)은 예측 아이템 집합의 요소가 얼마나 적합 아이템 집합의 요소를 커버할 수 있는가의 비율

 

Fl measure(F1 값)는 Precision과 Recall의 조화 평균으로 표현

 

 

 

순위 평가 지표

추천 시스템은 일반적으로 추천 대상 아이템에 점수를 부여하여 그 점수가 높은 순으로 아이템 을 정렬한 순위를 만든다.

이 순위에 대해 각 아이템의 배열을 고려하여 좋고 나쁨을 평가하 는 지표가 순위 평가 지표.

 

 

PR 곡선

Top@K를 Top@l, Top@2, …, Top@N으로 바꾸면 대응하는 Recall과 Precision의 여러 조합을 얻을 수 있다. 이 점들에 대해 Recall을 가로 축, Precision을 세로 축으로 플롯해 서 각 점을 연결하는 것이 PR 곡선이다

 

 

 

 

 

기타 지표

카탈로그 커버리지

카탈로그 커버리지의 분자는 실제로 추천한 상품의 수이고 분모는 모든 상품의 수.

이처럼 커버리지는추천 범위(폭)를측정하는 지표.

이 카탈로그 커버리지를 측정함으로써 인기 상품에 치우친 추천을 검출할 수 있다.

 

 

사용자 커버리지

사용자 커버리지는 어느 정도의 시용자에게 추천되었는지를 측정하는 지표이다,

분자는 실제로 추천이 수행된 사용자 수, 분모는 모든 사용자이다.

사용자 커버리지는 콜드 스타트 문제 검출에 사용할 수 있습니다.

서비스를 이제 막 시작한 초 기 사용자로 필터링해 사용자 커버리지를 측정함으로써 초기 사용자에게 어느 정도 추천했는 지 측정할 수 있다.

이 초기 사용자에 대한 사용자 커버리지가 낮을 경우 초기 사용자에 대 해 추천이 수행되지 않는 콜드 스타트 문제가 발생했다는 것을 의미.

커버리지를 일 단위로 측정하는 것은 시스템 이상 검출에도 도움이 된다

 

 

 

 

 

평가 지표 선정 방법

1. Precision@K, Recall@K, MAP@K, nDCG@K 등 각 지표에서 가장 좋았던 모델을 실제로 릴리스하고 매출 등의 지표가 높은 모델을 조사

2. 온라인 평가와 일치하도록 여러 오프라인 지표를 조합해 새로운 오프라인 지표를 만드는 접근 방법

3. 사용자의 행동 이력을 가정해 지표를 선택하는 방법

 

 

 

 

 

 

온라인 평가

: 시스템의 변경점을 실제로 사용자에게 제시해 평가하는 방법

 

 

 

 

A/B 테스트

A/B 테스트는 무작위 비교 시험이라고 불리는 평가 방법 중 하나.

A/B 테스트는 테스트 대상의 기능 에 변경을 주가한 결과를 보여 주는 그룹(실험군)과 변경하지 않은 결과를 보여주는 Control 그룹(대조군)의 2개 그룹으로 사용자를 나눈 후 평가를 수행하는 방법

 

 

 

가설

이 템플릿에서는 사전에 지표를 정의하고 비즈니스 목표와의 연결을 명확하게 하도록 한다.

이 템플릿을 사용하면 가설과 비즈니스 목표의 연결이 명확해지므로 비즈니스 관점에서 이니셔티브의 우선 순위를 결정할 수 있다.

또한 실험을 마친 뒤에 목표 수치를 바꾸는 등 잘못된 의사 결정으로 이어지는 행위를 피할 수도 있다.

 

 

 

지표의 역할

A/B 테스트 평가에서는 어떤 지표를 사용하는 것이 좋을까?

 

OEC 지표 : 서비스/비즈니스의 성공을 위해 시스템을 움직이는 것을 돕기 위하여 정 의된 지표

 

가드레일 지표 : 저하되어서는 안 되는 제약을 표시

 

 

인터리빙

온라인 평가의 또 다른 방법.

A/B 테스트에서는 테스트 대상 의 수만큼 사용자 그룹을 나눠야 한다.

결국 테스트 대상이 늘어남에 따라 테스트 사용자 수 도 선형적으로 늘어나 평가 효율이 문제될 수 있다.

평가 대상 의 각 순위를 하나의 순위로 섞어 사용자에게 제시.

뒤섞인 순위에 대한 클릭으로 원래 순위끼리 평가합니다 2개의 순위를 섞어 평가하는 방법을 인터리빙이라고 하고 3개 이상의 순위를 섞어 평가하는 방 법을 멀티리빙이 라고 한다.

 

 

 

인터리빙의 각방법은 순위를 섞는 방법과 사용자의 클릭을 집계하는 종류에 따라 다양하다.

대표적인 인터리빙(멀티리빙) 방법의 특징은 다음과같다.

 

Team Draft M니tileaving(TDM)

2개의 검토 결과를 선택할 때마다 선공/후공을 무작위로 결정하면서 양 순위에서 하나씩 아직 사용되지 않은 검색 결과를 상위부터 순서대로 선택한다.

Probabilistic M니tileaving(PM)

가능한 한 각 순위 안의 검토 결과 순서를 유지하면서 상대적으로 낮은 확률로 임의의 순서에 서 검토 결과를 선택하도록 허용한다.

Optimized M니tileaving(OM)

먼저 출력 후보가 되는 순위를 다수 준비한다. 그리고 최적화 문제를 풀어냄으로써 출력 후 보의 순위 출력 확률을 조정한다.