CF model with visual information

2022. 3. 27. 19:19AI/Machine learning

    목차
반응형

 

Introduction

표지 디지안이 구매에 영향을 미치는 요인이 매우 크다. 

68%

 

이미지를 CNN을 사용하여 정형 데이터 화 한 후, CF에 적용한다. 

 

Nueral CF

초기 CF는 Nearest Neighbor 중심

이후 Matrix Factorization 기반 CF

 

행렬 분해법 기반 CF은 사용자-아이템의 평점 행렬 R을 사용

R을 U와 V로 분해하고 손실함수를 통해 학습하여 R'을 계산하여 추천

CF를 신경망으로 구현하여 성능을 높이고자 하는 시도들이 이뤄지고 있다. 

 

초기시도

Restricted Boltzmann Machine (RBM)을 CF에 적용한 RBM-CF

 

Auto-encoder 기반 모델 

AutoRec처럼 CF 알고리즘을 Auto encoder로 구현한 모델

 

Attention-based CNN

RNN

등 비정형 데이터 기반에 유용한 딥러닝 모델들이 추천 시스템에 적용하려는 연구들이 있어왔음

 

 

인공 신경망의 embedding 연산과 이를 내적하는 방식이 Matrix Factorization의 latent vector를 탐색하는 방식과 유사하여 행렬 분해법의 잠재 벡터를 탐색하는 방식과 유사함에 따라 행렬 부해 과정을 인공 신경망으로 구현하여 기존의 행열 분해법 기반의 CF의 성능을 개선하고자 하는 Wide & Deep 모델 등의 연구가 진행되고 있음

 

여전에 추천 시스템은 평점 또는 구매 이력 데이터가 중심

시각 정보같은 비정형 데이터를 반영해야 함

 

CNN 기반에서 이미지로부터 feature를 추출하고 이를 결합하는 방식

CNN 모델과 사용자 선호를 모델링하는 CNN 모델을 hybrid 방식으로 결합

 

POI 추천에 있어 CNN을 통해 image의 feature를 추출하고 행렬 분해법으로 이미지와 user/item 잠재 벡터간의 상호작용을 탐색하는 모델

 

CNN 기반으로 추출한 이미지 특성을 인공신경망과 결합하는 모델을 제안

시각 정보를 반영하여 모델을 개선할 수 있는 방법

 

Neural CF

NCF는 행렬 분해법이 CF 기반 추천 시스템에서 갖는 장점을 인공 신경망 형태로 구현한 모델

 

Input Layer의 Su와 Si는 사용자와 아이템을 one-hot encoding으로 표현한 것

입력은 sparse 형태임

 

NCF의 MLP layer는 사용자 잠재 벡터 U와 아이템 잠재 벡터 V의 상관관계를 표현하는 역할

NCF는 내적으로 예측하는 MLP와 행렬곱의 일반화 version으로 요소별곱 (element-wise product)를 구행하는 GMF (Generalized Matrix Factorization)을 지님

GMF 구조는 비선형 활성화 함수로 모델이 사용자와 아이템간 상관관계를 잘 표현할 수 있게 함

 

Pu와 Pi는 MLP 구조와 동일한 입력데이터 Su와 Si를 사용하나 사용자 잠재 벡터 U와 아이템 잠재 벡터 V로 구분되어 학습된 GMF의 벡터

 

GMF는 두 임베딩 벡터 Pu와 Pi의 요고별 곱 (외적)을 하여 가중치를 곱해 MLP보다 사용자와 아이템의 상관관계를 학습하는데 유연

 

NCF는 MLP와 GMF를 결합해 다음과 같은 구조를 지닌다. 

 

NCF는 GMF와 MLP의 ensemble로 최종 score를 예측하기에 기존 MF기반 CF 보다 사용자와 아이템의 상관 관계의 다각적인 반영을 통한 추천이 가능

NCF는 추가적인 데이터의 활용에 있어 유연한 특징을 지님

 

NeuMF Layer에 추가적인 특성 또는 모델의 결과를 emsemble 하는 것이 가능하다. 

 

시각 정보 반영

NCF에 시각 정보를 반영해보자 

이미지를 vector화

 

입력의 지역적인 특성과 전체적인 특성을 잘 인식하는 CNN 사용

이미지 벡터가 너무 큰 차원을 지녀 모델 학습에 방해하여 성능을 저하시키기에, 다음과 같이 차원을 줄임

 

 

2 x 2 크기의 작은 filter 연산을 수행하는 Convolution 층을 다층으로 구성

결합 가능하도록 Dense를 배치하여 이미지 벡터의 최종 크기를 조절

 

3가지 방식으로 모델에 적용

세 가지 방식 모두 이미지 벡터의 차원은 결합되는 층의 다른 벡터의 차원을 고려하여 결정

 

 

1) 이미지를 벡터를 MLP layer에 concatenate

 

MLP에 이미지 벡터를 결합

사용자와 아이템 벡터 간에 결합한것에 이미지 벡터를 추가

user-item-image간의 다각적인 상관관계를 학습하도록 한 것

 

위 결합의 수식

iv i는 이미지 벡터

mlp ui hat은 NCF 구조 중 MLP 구조

 

 

2) GMP layer로 product

GMF 구조에 이미지 벡터를 반영

GMF 사용자 벡터 pu와 GMF 아이템 벡터 pi의 요소별 곱에 앞서 GMF 아이템 벡터와 이미지 벡터의 요소별 곱을 먼저 수행

 

GMF의 아이템 벡터에 이미지 특성을 반영한 것

 

 

3) NeuMF로 concatenate

GMF와 MLP가 결합되어 emsemble 효과를 나타내는 NeuMF 층에 이미지 벡터를 추가한 것

 

 

NCF의 기본 행렬 분해 방식을 유지하면서 이미지 벡터를 부가적인 정보 (side information)으로 활용하여 성능 향상을 도모한 것

 

 

실험 및 결과

 

실험

온라인 서점의 고객 구매 transaction data 10만건 정도를 사용

outlier가 되는 특정 잡지 등 판매량이 저조한 것들은 제외

최소 2회 이상 구매한 사용자와 2번 이상 판매된, 2만명의 사용자와 1만2천개의 아이템을 사용

이미지는 128 x 128을 사용

 

학습 시 구매 item을 학습 시키기 위해서 구매하지 않은 item을 일부 sampling 하여 negative sampling을 수행

이는 필수적

 

보통 구매아이템이 구매하지 않은 아이템보다 훨씬 많음

구매하지 않은 아이템을 모두 학습하면 편향된 모델 학습이 됨 그래서, 

 

negative sample (구매하지 않은 아이템)과 postive sample(구매한 아이템)을 3:1로 섞을 시 가장 성능이 높았음

 

train 과 test set을 분리

7:3

 

성능 확인 지표

F-1 measure

precision과 recall 결과를 모두 반영하여 두 지표를 조화평균함

 

추천 상품 수 K가 커질수록 recall이 증가

precision이 감소

 

Hyperparameter

RMSProp (Mukkamala and Hein 2017)이 가장 높은 성능

목표 변수는 구매 여부이므로 

이진 범주이며 이것의 손실 함수로 binary cross-entropy를 사용

 

epoch

test data에 대한 성능이 가장 높게 나온 횟수로 지정

 

batch 

256로 설정

 

Env

Intel Xeon 4216 CPU (2.1 GHz

GeForce Titan XP 12GB GPU

Python 3.7

TensorFlow library

 

결과

F1@10 측정지표

NCF는 시각 정보를 반영하지 않음

시각정보를 반영한 MLP-Concat, NeuMF-Concat 방식이 높은 성능을 보임

즉, 표지 이미지가 추천 시스템의 성능을 향상시키는데 유의미한 결과를 산출

 

결합방식

GMP-Product는 NCF 보다 낮은 성능

요소별 곱은 효과가 좋지 않음을 의미

concatenate가 더 나았음을 의미

 

 

 

MeuMF-Conat 방식이 가장 우수한 성능

이미지 벡터를 NCF 의 행렬 분해를 담당하는 층에 반영하는게 아니라, 사용자와 아이템의 상관 관계의 모델링이 완료된 GMF와 MLP의 ensemble에 반영

즉, 기존 구조는 유지하고 최종 ensemble에서 활용하는 것이 가장 성능이 좋음

 

자기계발, 유아, 국내문학 카테고리에서 NCF 보다 시각 정보를 반영한 모델이 더 높은 성능을 보였음

 

성능 차이의 유의성 검증

t-검정 결과 p-value 값이 자기계발 0.083, 국내문학 0.098, 유아 0.168로 유의수준 10%에서 자기 계발과 국내문학 카테고리의 성능차이가 유의미

 

 

인문(0.0729), 해외문학(0.0119) 카테고리의 경우 기본 NCF와 본 연구에서 제안한 VizNCS가 동일한 추천 목 록을 제공하여 동일한 성능이 나타났다.

 

표지 이미지가 도서 구매의사결정에 영향을 미치 는 카테고리가 별도로 존재한다는 것을 의미한다

 

중고등학습서의 경우는 시각 정보가 오히려 모델 학습에 있어 잡음(noise)이 되어 추천 성 능을 저하시키는 것으로 판단할 수 있다

 

 

결론

현재 추천 시스템 분야에서 비정형 데이터의 활용은 텍스트 데이터를 중심으로 논의되고 있다

대표적인 시각 정보인 상품의 이미지는 소 비자의 구매 의사결정에 큰 영향을 미친다

기존의 추천 시스템에서 높은 성능을 나타내고 있는 협업 필터링 기법을 기반하여 시각 정 보를 반영할 수 있는 VizNCS를 제안하였다

 

상품 카테고리별로 시각 정보의 반영 효과를 살펴보기 위해 각 카테고리 별로 VizNCS의 성능을 측정하였다. 

구매 의사결정에 있어 시각 정 보가 영향을 주는 카테고리와 그렇지 않은 카테고리 를 발견한 것이라 할 수 있다

 

한계

시각 정보는 도서 뿐만 아니라 일반적인 상 품의 의사결정에도 큰 영향을 줄 수 있다

NCF에 기반

다른 딥러닝 기반의 추천 시스템의 확 장을 고려할 예정

반응형

'AI > Machine learning' 카테고리의 다른 글

Latent factor model: matrix factorization  (0) 2022.05.15
데이터 마이닝 1  (0) 2022.05.14
언어모델  (0) 2022.03.13
Matrix factorization 접근법  (0) 2022.03.13
검색 vs. 추천  (0) 2022.03.13