본문 바로가기
추천시스템

[추천 시스템 입문] 추천 알고리즘 종류

by 나연하야 2023. 6. 10.

CHAPTER4. 추천 알고리즘 개요

 

4.1. 추천 알고리즘 분류

- 추천 시스템 알고리즘은 내용 기반 필터링과 협조 필터링 2가지로 나눌 수 있음

- 내용 기반 필터링은 책의 제목이나 저자, 장르 등과 같이 아이템의 내용을 나타내는 정보를 사용하며, 사용자가 선호하는 정보를 기반으로 내용이 비슷한 아이템을 계산함으로써 추천을 수행하는 알고리즘임

- 협조 필터링은 서비스 내에 있는 다른 사용자의 과거 행동 등을 통해 얻어진 기호 경향을 활요하여 추천하는 알고리즘임(입소문과 같음)

- 협조 필터링은 예측을 실행하는 방법 관점에서 메모리 기반 방법과 모델 기반 방법으로 나뉨

- 메모리 기반 방법은 추천 아이템이 사용될 때까지 시스템에 사용자의 데이터를 축적하기만 하고 예측을 위한 계산은 수행하지 않음(예측을 수행하는 시점에 축적된 데이터 중 필요한 데이터를 모두 사용해 예측 계산을 수행함)

- 모델 기반 방법에서는 추천 시스템을 사용하기 전에 미리 시스템 내 축적된 데이터의 규칙성을 학습한 모델을 만들어두고 예측 시 미리 만들어진 모델과 추천을 제공하는 대상 사용자의 데이터만 사용해 계산을 수행함

 

4.2. 내용 기반 필터링

 

4.2.1. 개요

- 내용 기반 필터링은 사용자가 어떤 내용의 아이템을 좋아하는지 나타내는 사용자 프로필과 아이템의 다양한 성질을 나타내는 특징을 추출한 아이템 특징과의 일치도, 즉 유사도를 계산함으로써 좋아할 만한 아이템을 사용자에게 추천하는 알고리즘임

 

4.2.2. 아이템 특징 획득

- 내용 기반 필터링에서 사용할 아이템의 특징을 획득하는 방법은 아이템의 성질에 따라 다양함

- 예를 들어 책과 같은 상품이라면 제목이나 장르, 문자 수, 작가, 출판일 등 다양한 속성 정보를 얻을 수 있음

-> 강의의 경우 강의시간, 문항 수 등이 있을 수 있을 것 같음

 

4.2.3. 사용자 프로필 획득

- 사용자 프로필 획득 방법은 크게 2가지가 있음

- 첫 번째는 사용자의 과거 행동 이력에 기반해 사용자 프로필을 작성하는 간접 지정형임(예를 들어 사용자의 구입 이력 중 가장 많이 나타난 아이템의 특징을 해당 사용자가 선호하는 것으로 하여 사용자 프로필을 만들 수 있음)

- 두 번쨰는 사용자에게 자신이 선호하는 아이템의 특징을 명시적으로 지정하도록 하는 직접 지정형임

 

4.3. 협조 필터링

 

4.3.1. 메모리 기반 방법 알고리즘 개요

- 사용자1에게 아이템 A와 B중에서 추천을 해주어야 하는 상황이라면, 서비스 내의 다른 사용자 중 사용자1과 선호도가 비슷한 사용자들이 선호하는 아이템을 추천해줌(사용자-사용자 메모리 기반 방법의 알고리즘)

- 아이템의 구처젝인 속성 정보 등을 사용하지 않는 것이 협조 필터링의 큰 특징임

 

4.3.2. 기호 데이터 획득과 평갓값 행렬

- 협조 필터링에서는 서비스 내 다른 사용자의 과거 행동 이력 등으로부터 선호도 경향을 추정하여 추천에 사용(사용자로부터 얻은 아이템에 대한 선호도 정보를 기호 데이터라고 부름)

- 기호 데이터를 획득하는 방법은 크게 명시적 피드백(사용자에게 5단계 평가)과 암묵적 피드백(사용자가 아이템을 구입하거나 찜으로 등록하고 열람)으로 나눌 수 있음

- 수집한 기호 데이터 등에 기반해 사용자가 해당 아이템의 선호도 정도를 정량적으로 나타낸 것을 평갓값이라고 하며, 그 평갓값을 성분으로 하는 사용자*아이템의 행렬을 평갓값 행렬잉라고 함

 

4.3.3. 모델 기반 방법 알고리즘 개요

- 협조 필터링 중에서도 모델 기반 방법은 이미 알고 있는 데이터의 규칙성을 학습한 모델을 미리 만들어둠으로써 모르는 아이템의 평갓값을 예측하여 추천하는 방법임

- 예측에 사용하는 모델에는 클러스터링을 사용한 모델이나 회귀 문제 및 분류 문제로 평가값을 직접 예측하는 모델, 토픽 모델을 사용한 모델, 행렬 분해를 상요한 모델 등 다양한 모델이 존재함

- 회귀 문제나 분류 문제로 직접 예측하는 모델에서는 선형 회귀 등의 회귀 모델을 사용해 과거 사용자로부터 얻은 아이템의 평갓값 데이터를 훈련 데이터로 하여 모델을 학습함으로써 모르는 아이템에 대한 평갓값을 예측함

- 토픽 모델을 사용하면 LDA 등의 방법을 적용해 평갓값 행렬을 차원 압축함으로써 'SF가 좋다' 등과 같은 잠재적인 의미를 표현하느 정보를 취득해 추천에 사용함

- 행렬 분해에서는 평갓값 행렬을 그 곱이 원래의 행렬을 최대한 재현하는 형태로 하여 사용자 행렬과 아이템 행렬로 분해함(분해된 행렬에서 얻은 사용자 벡터와 아이템 벡터의 유사도 계산을 통해 임의의 아이템에 대한 예측 평갓값을 계산하거나 분해에서 얻은 사용자 벡터와 아이템 벡터를 다른 알고리즘의 입력으로 사용함)

 

4.3.4. 메모리 기반 방법과 모델 기반 방법의 협조 필터링 비교

- 추천에 걸리는 시간 관점에서 살펴보면 메모리 기반 반법은 추천 시 매번 모든 데이터에서 비슷한 사용자나 아이템을 찾은 뒤 예측하므로 시간이 많이 걸림

- 운용성 관점에서 모델 기반 방법에서는 사용자나 아이템 데이터가 변경되고 그 변경을 반영해 추천하려면 모델을 새로 만들어야 하므로 모델 업데이터 시점이나 재학습에 결리는 계산 비용 등을 고려해야 하기 때문에 운용이 비교적 어려움

 

4.4. 내용 기반 필터링과 협조 필터링 비교

  협조 필터링 내용 기반 필터링
다양성 향상 O X
도메인 지식 취급 비용 O X
콜드 스타트 문제에 대한 대응 X 세모
사용자 수가 적은 서비스에서의 추천 X O
커버리지 향상 X O
아이템 특징 활용 X O
예측 정확도 O 세모

 

4.4.1. 다양성 향상

- 추천 결과에 포함된 아이템에 서로 비슷하지 않은 것을 다양성이라고 함

- 협조 필터링에서는 추천받은 사용자 자신이 모르더라도 서비스 낸의 다른 사용자가 알고 평가하면 그 정보를 기반으로 추천할 수 있음(예를 들어 사용자가 읽어본 적 없는 장르의 책이나 모르는 신인 작가의 책이라도 추천 대상이 될 수 있음)

 

4.4.2. 도메인 지식 취급 비용

- 서비스 운영자가 추천 시스템을 구축할 때 책의 장르나 출판사, 사용자 성별, 나이와 같은 서비스 내 아이템이나 사용자 고유의 지식 및 콘텍스트라는 도메인 지식을 적절하게 다루고 관리하는 데 드는 비용을 비교해보면 협조 필터링 쪽의 비용이 낮다고 할 수 있음

 

4.4.3. 콜드 스타트 문제에 대한 대응 / 4.4.4. 사용자 수가 적은 서비스에서의 추천

- 콜드 스타트 문제는 서비스에 사용자나 아이템에 관한 정보가 적은 경우 특히 신규 사용자나 신규 아이템에 관해 적절한 것을 추천하기 어려운 문제를 가리킴

- 내용 기반 필터링에서는 아이템 특징이나 사용자 프로필만 얻을 수 있다면 추천이 가능함

 

4.4.5. 커버리지 향상

- 커버리지는 서비스에 있는 모든 아이템 중 추천 시스템으로 사용자에게 추천할 수 있느 아이템의 비율을 나타냄

- 커버리지가 낮은 상황이란 일부 아이템에 치유쳐 추천되는 상황이며 서비스를 사용하는 사용자에게는 물론 제공자에게도 좋은 상태라고 할 수 없음

- 시스템 내에 있는 다른 사용자의 행동 이력을 기반으로 추천하는 협조 필터링으로는 추천을 받을 사용자와 비슷한 사용자가 아무도 시도하지 않은 즉, 평가하지 않은 아이템은 추천할 수 없음(서비스에 있는 아이템 중 추천할 수 있는 아이템이 제한됨)

 

4.4.6. 아이템 특징 활용

- 도메인 지식을 사용하지 않고 사용자의 과거 기호 데이터만 기초해 추천해주는 협조 필터링에서는 기본적으로 옷의 색상 등과 같은 아이템 속성 정보를 고려할 수 없음

 

4.4.7. 예측 정확도

- 어느 정도 규모가 있는 서비스의 경우 내용 기반 필터링보다 협조 필터링 똑이 높은 정확도로 예측

 

 

4.6. 기호 데이터의 특징

 

4.6.1. 명시적 획득과 암묵적 획득 비교

  명시적 획득 암묵적 획득
데이터양 적음 많음
데이터 정확성 정확 부정확
평가하지 않음과 기대하지 않음의 구별 명확 불명확
사용자 인지 인지 불인지

데이터 양

- 암묵적 획득에서는 사용자가 서비스를 사용하는 그 임의의 행동으로부터 기호 데이터를 계속해서 얻을 수 있음

 

데이터 정확성/평가하지 않음과 기대하지 않음의 구분

- 명시적 획득은 사용자가 아이템에 대한 선호도를 직접 입력하는 형태이므로 잘못된 기호 데이터인 경우가 별로 없음

- 암묵적 획득에서는 사용자의 선호도가 사용자의 행동에 그대로 나타나지 않는 경우가 많아 정확한 사용자의 기호 데이터를 얻기가 비교적 어려움

 

사용자 인지

- 사용자 인지는 자신의 기호 데이터가 언제, 어떻게 시스템에 반영되어 사용되고 있는지 아는가를 말함

 

4.6.2. 기호 데이터를 다룰 떄의 주의점

 

데이터의 희박함

- 사용자가 평생 시청할 수 있는 영화의 수에 비해 세상에 존재하는 영화의 수가 월등히 많은 것처럼 사용자가 평가할 수 있는 아이템 수에 비해 시스템 안에 존재하는 아이템 수가 훨씬 더 많음

 

평갓값의 변동이나 편향

- 같은 사용자가 동일한 아이템에 대해 리뷰를 남기고 평갓값을 제공했다고 해도 약간 시간을 두고 다시 리뷰를 했을 떄 그 평갓값이 동일할 것이라고 보장할 수 없음(이를 평갓값의 변동이라고 함)

- 사용자에 따라서는 평가를 후하게 남기기도 하고 반대로 낮은 평가가만 남기기도 함

- 위와 같은 경우를 인식하고 알고리즘을 적절하게 선택해야 함

 

 

CHAPTER5. 추천 알고리즘 상세

 

5.4. 통계 정보나 특정 규칙에 기반한 추천

 

- 다음과 같은 통계 정보나 규칙에 기반해 추천할 수 있음

가. 직전 1개월의 총 매출 수, 열람 수, 사용자에 따른 평갓값의 평균 등 서비스의 데이터 통계 정보를 사용해 아이템을 나열해서 사용자에게 추천

나. 아이템 가격이나 크기와 같이 특정 속성 순서로 나열해 사용자에게 추천

다. 사용자의 나이 등과 같은 특정 속성 정보에 기반해 다른 아이템 추천

- 비교적 단순한 알고리즘을 사용한 추천은 해당 아이템이 어떤 구조로 추천되는지 사용자가 알기 쉽다는 특징이 있음

- 사용자의 속성 정보를 기반으로 다른 아이템을 추천하는 경우, 사용자의 속성 정보를 기반으로 사용자를 몇 가지 세그먼트로 나눔으로써 각각의 사용자 세그먼트에 적합하게 추천을 진행함

- 사용자의 나이나 성별, 거주지 등의 인구 통계학적 데이터에 기반해 아이템을 추천하는 것을 '데모그래픽 필터링'이라고 함

- 데모그래픽 정보라는 것은 개발자가 특정 정보 사용을 의도하지 않았어도 공평성 관점에서 문제가 될 수 있어 사용 시 세심한 주의가 필요함

- 평가 수가 적으면 평가 신뢰성이 낮으므로 임곗값을 도입해 일정 이상의 평가 수가 있는 영화로 필터링해야 함

- 또한 집계기간과 다양성을 고려할 필요가 있음

-> 달마다 많이보는 강의가 다를 것 같음

 

5.5. 연관 규칙

 

- 연관 규칙에서는 대량의 구매 이력 데이터로부터 아이템 A와 아이템 B는 동시에 구입하는 경우가 많다는 규칙을 발견하는 것임

 

지지도

- 지지도란 어떤 아이템이 전체 중에서 출현한 비율임

- 지지도(A and B) = (A와 B의 동시 출현 수) / 전체 데이터 수 = 3/4 = 0.75

 

확신도

- 아이템 A가 나타났을 때 아이템 B가 나타날 비율

- 확신도(A->B) = (A와 B의 동시 출현 수)/(A의 출현 수) = 3/3 =1

 

리프트값

- 리프트값은 아이템 A와 아이템 B의 출현이 어느 정도 상관관계를 갖는지 나타내는 것

- 리프트(A -> B) = 지지도(A and B) / (지지도(A)*지지도(B)) = 0.75 /(0.75*0.75) = 1.333

- 아이템 A와 아이템 B가 나타나는 방법이 서로 전혀 관계가 없고 독립적이라면 리프트값은 1이 됨

- 반대로 한쪽 아이템이 나타나는 것과 다른 한쪽이 나타나는 것에 양의 상관관계가 있다면 리프트값은 1보다 커짐

- 리프트값의 로그를 취하면 점별 상호정보량(PMI)가 됨

 

Apriori 알고리즘을 활용한 고속화

- 아이템 수나 사용자 수가 커질수록 아이템의 조합 방법은 기하급수적으로 늘어나게 되는데 이를 해결하는 것이 Apriori 알고리즘임

- Apriori 알고리즘은 모든 아이템의 조합을 계산하는 것이 아니라 지지도가 일정 이상인 아이템이나 아이템의 조합만 계산 대상으로 하여 빠르게 계산함

 

5.6. 사용자-사용자 메모리 기반 방법 협조 필터링

 

- 사용자-사용자 메모리 기반 협조 필터링은 아래와 같은 방법으로 진행됨

가. 미리 얻은 평갓값을 사용해 사용자 사이의 유사도를 계산하고 추천받을 사용자와 기호 경향이 비슷한 사용자를 찾음

나. 기호 경향이 비슷한 사용자의 평갓값으로 추천받을 사용자의 미지의 아이템에 대한 예측 평갓값을 계사함

다. 예측 평갓값이 높은 아이템을 사용자에게 추천함

참고1) 사용자의 평갓값에 기반해 사용자 사이의 유사도를 계산할 때는 피어슨 상관 계수(0보다 크면 유사도가 높은 사용자로 정의)를 사용함

참고2) 예측 평갓값 계산에는 '사용자별 평균 평갓값에서 해당 아이템에 대한 평가가 얼마나 높은 평가인가라는 상대적인 평갓값에 주목해 해당 값의 가중 평균을 얻는 방법'을 사용

- KNN을 이용하여 유사도 상위 30명의 사용자를 유사 사용자로 정의해서 분석할 수도 있음

 

- 파이썬에서는 다양한 라이브러리를 통해 메모리 기반 방법 협조 필터링을 구현하는 기능을 제공하고 있음(예를 들어 Surprise가 있음)

 

5.7. 회귀 모델

- 랜덤 포레스트와 같은 모델을 사용해 평갓값을 예측할 수도 있음

 

5.8. 행렬 분해

 

5.8.1. 행렬 분해 개요

 

- 행렬 분해는 모델 기반형 협조 필터링 방법임

- 추천시스템에서 행렬 분해는 넓은 의미에서 평갓값 행렬을 저차원의 사용자 인자 행력과 아이템 인지 행렬로 분해하는 것을 나타냄(사용자와 아이템을 100차원 정도의 저차원 벡터로 표현하고 그 벡터의 내적값응 사용자와 아이템의 상성으로 함?)

- 행렬 분해 방법을 실무에서 사용할 때는 '결손값 취급', '평갓값이 명시적인가 암묵적인가'라는 관점이 매우 중요함

 

명시적 데이터에서 행렬 분해 방법

- 1명의 사용자는 영화 개수인 6673 차원의 벡터로 표현되는데 이를 XY좌표의 2차원 벡터로 표현할 수 있음

 

5.8.2. 특잇값 분해

 

- 단순한 방법으로 결손 부분에 0 또는 평균값을 대입하고 특입값 분해로 차원을 줄이는 방법이 있음(scipy 라이브러리를 사용해서 특잇값 분해를 할 수 있음) -> 0을 대입하는 것은 해당 사용자가 그 아이템에 대해 싫어한다고 의사 표시한 것과 같기 때문에 추천 성능이 나쁘다고 알려져 있음

- SVD에는 잠재 인자 수라는 중요한 파라미터가 있는데 잠재 인자 수가 높을수록 원래 행렬을 복구할 떄 충분한 표현력을 갖기 때문에 예측 정확도가 좋아짐(잠재 인자 수가 너무 높으면 과적합 가능성이 있음)

 

5.8.3. 비음수 행렬 분해

 

- SVD는 행렬 분해 후 행렬에 대해 음수값을 취하는 경우가 있지만 NMF는 행렬 분해 시 사용자와 아이템 각 벡터의 요소가 0 이상 되는 제약을 추가함(이 제약으로 인해 각 사용자나 아이템 벡터 해석 특성이 향상됨) -> 결손값을 0으로 채워서 추천 성능이 좋지 않음

 

5.8.4. 명시적인 평갓값에 대한 행렬 분해

 

- 추천 시스템 분야에서 행렬 분해는 결손값을 채우지 않고 관측된 평갓값만 사용해 행렬 분해하는 방법을 많이 사용함(라이브러리 Surprise를 사용하면 MF를 구현할 수 있음)

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

 

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

 

- 암묵적인 평가의 특징은 '음수의 예가 없다', '클릭 수 등과 같은 평갓값은 가질 수 있는 범위가 넓다', '노이즈가 많다' 등이 있음

- 위와 같은 특성을 고려하여 페이스북에서는 암묵적인 평갓값에 대한 행렬 분해(IMF)를 제안하였음(라이브러리 implicit이라는 라이브러리를 사용해 계산 가능)

- 관측값을 선호도와 그 선호도의 신뢰도로 분해하는 것이 암묵적인 평가에서 행렬 분해하는 기초적인 사고 방식

- 실무에서 행렬 분해를 사용할 때는 명시적 행렬 분해인지 암묵적 행렬 분해인지 확인한 후 적절히 사용해야 함

- 암묵적 행렬 분해의 경우 신뢰도의 튜닝도 중요

 

5.8.6. BPR

 

- 암묵적 평갓값을 사용한 다른 유명한 방법으로는 Bayesian Personalized Ranking이 있음

 

5.8.7. FM

 

- 이제부터는 평갓값뿐 아니라 사용자나 아이템의 속성 정보를 사용해 추천 시스템의 성능을 높이는 방법에 대해서 알아보겠음

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

- FM은 지금까지의 입력 데이터와 다른 형식을 가지는데 1개의 평가에 대한 정보를 1행으로 표시함(라이브러리 xlearn을 통해 구현할 수 있음)

- 행렬은 평갓값*특징량 수가 되며, 특징량은 사용자 ID를 원-핫 인코딩한 것과 아이템 ID를 원-핫 인코딩한 것, 사용자와 아이템의 속성 정보 등의 보조 정보를 연결한 것이 됨

- 예를 들어, 사용자 U1이 아이템 I1을 별 4개로 평가했을 경우 사용자 U1과 아이템 I1이 1이 되고 그에 추가한 보조 정보(사용자 나이나 아이템 추가 후 경과일수)는 a1, a2에 들어감 -> 이 데이터를 사용해 평갓값 y를 예측

- FM의 좋은 점은 특징량끼리의 조합도 고려할 수 있다는 점임(예를 들어 영화 추천의 경우 사용자 나이와 성별의 조합 등 중요한 특징량을 고려할 수 있음)

 

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

 

- 토픽 모델이나 word2vec 등 자연어 처리 분야에서 제안된 부분을 추천 시스템에 응용할 수 있으며, 이를 이용하면 사용자 리뷰를 분석함으로써 콘텐츠 기반 추천으로 비슷한 상품을 찾을 수 있음

- 사용자의 행동 이력에 적용함으로써 협조 필터링 기반 추천도 가능해짐

 

LDA를 사용한 콘텐츠 기반 추천

 

- 서적 전자상거래 사이트에서 서적의 다양한 텍스트 데이터를 사용해 추천해주는 상황이라고 가정

- 줄거리 문장을 LDA에 입력하면 공포, 연애, SF와 같은 주제가 나타나고 각 문장에는 토픽의 벡터가 할당됨

- 이 벡터를 사용해 코사인 유사도 등의 거리 계산을 함으로써 각 서적 사이의유사도를 측정할 수 있음

- 예를 들어 사용자가 최근 가장 높이 평가한 10개의 토픽을 확인하여 해당 토픽의 영화를 추천해 줄 수 있음

 

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

 

- LDA를 통해 토픽 1은 item23이 0.3, item4가 0.2와 같은 아이템 분포와 User1은 토픽1: 0.8, 토픽2: 0.1과 같은 결과를 얻을 수 있음

- 이 벡터를 사용할 경우 User1은 토픽 1의 성분이 강하므로 토픽 1에서 나오기 쉬운 아이템을 추천할 수 있음

- 아이템에 대해서도 각 토픽에서의 출현 확률을 나열한 벡터를 만들어 코사인 유사도 등을 사용해 유사도를 계산할 수 있으므로 관련 아이템을 추천할 수 있음

- 예를 들어, 각 사용자별로 가장 큰 토픽을 추출하고 해당 토픽에서 나오기 쉬우면서도 해당 사용자가 아직 평가하지 않은 영화를 상위 10개 추천해줄 수 있음

 

word2vec

 

- '단어의 의미는 그 주변 단어에 따라 결정된다'라는 가설이 있음(이를 분포 가설이라고 함)

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

 

word2vec을 사용한 콘텐츠 기반 추천

 

- 온라인 쇼핑 사이트에서 서적을 추천하는 상황을 가정

- 서적의 줄거리에 나오는 단어의 벡터 평균을 해당 서적의 벡터로 간주하고, 각 서적들의 벡터 간 유사도를 계산함으로써 관련 아이템을 추천할 수 있음

-  doc2vec는 단어를 벡터화할 뿐 아니라 문장 자체에도 벡터를 부여해주며, 여러 태스크에서 높은 성능을 발휘하는 것으로 알려져 있음(그러나 실무에서는 계산 속도가 빠르고 하이퍼 파라미터 조정이 간편한 word2vec를 많이 사용함)

- 사용자 벡터는 최근 가장 높게 평가한 영화 5개의 영화 벡터 평균으로 정의하며, 그 사용자의  벡터와 코사인 거리가 가장 가까운 영화를 찾아서 추천해 줄 수 있음

 

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

 

- 사용자가 열람하거나 구매하는 등의 행동 이력을 word2vec에 적용하는 방법이 있으며, 이 방법은 item2vec, prod2vec이라고 불림(구현이 간단하고 추천 성능이 높아 야후, 에어비앤비 등의 기업에서 사용되고 있음)

- LDA이 경우와 마찬가지로 사용자의 행동 이력을 단어의 집합으로 간주하고 word2vec을 적용(사용자가 행동한 순서대로 아이템을 나열하는 것이 중요 -> word2vec에 window_size라는 파라미터가 있으며 이 액션 순서까지 고려해 학습하기 때문)

 

5.10. 딥러닝

 

- 딥러닝을 활용한 추천 시스템에 관해 궁금하다면 'Deep Learning based Recommender System: A Survey and New Perspectives'라는 설문 조사 논문을 참고하면 좋음

 

5.10.1. 복접한 사용자 행동과 아이템 특징량 모델링

 

비선형 데이터 모델링

 

- 행렬 분해를 딥러닝화한 것이 'Neural Collaborative Filterinf'임

 

-  DeepFM은 FM을 딥러닝화한 방법으로 아이템이나 사용자의 특징량에 대해 특징량 엔지니어링이 필요 없으며 그대로 모델에 입력할 수 있

 

- 구글이 발표한 Wide and Deep은 Wide 부분에서 아이템이나 사용자의 특징량을 입력으로 하여 1층의 선형 모델을 거치며(자주 함께 발생하는 특징량의 조합을 학습함), Deep 부분에서는 임베딩층을 내장해 다층으로 함으로써 보다 일반화된 추상적인 표현을 얻을 수 있음

 

시계열 데이터 모델링

 

출처: 가자마 마사히(2023). 추천 시스템 입문.