KR102203253B1 - 생성적 적대 신경망에 기반한 평점 증강 및 아이템 추천 방법 및 시스템 - Google Patents

생성적 적대 신경망에 기반한 평점 증강 및 아이템 추천 방법 및 시스템 Download PDF

Info

Publication number
KR102203253B1
KR102203253B1 KR1020190026465A KR20190026465A KR102203253B1 KR 102203253 B1 KR102203253 B1 KR 102203253B1 KR 1020190026465 A KR1020190026465 A KR 1020190026465A KR 20190026465 A KR20190026465 A KR 20190026465A KR 102203253 B1 KR102203253 B1 KR 102203253B1
Authority
KR
South Korea
Prior art keywords
user
items
rating
item
model
Prior art date
Application number
KR1020190026465A
Other languages
English (en)
Other versions
KR20200107389A (ko
Inventor
김상욱
채동규
강진수
최재호
Original Assignee
네이버 주식회사
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 네이버 주식회사, 한양대학교 산학협력단 filed Critical 네이버 주식회사
Priority to KR1020190026465A priority Critical patent/KR102203253B1/ko
Publication of KR20200107389A publication Critical patent/KR20200107389A/ko
Application granted granted Critical
Publication of KR102203253B1 publication Critical patent/KR102203253B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0254Targeted advertisements based on statistics

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

GAN에 기반한 아이템 추천 방법에 있어서, 사용자에 의해 평점과 같은, 명시적 피드백이 부여되지 않은 아이템들 중에서 네거티브 아이템을 식별하여 바이어스 처리를 수행하고, 바이어스 처리가 고려된 복수의 아이템들에 대한 명시적 피드백 데이터 세트를 사용하여 GAN의 생성 모델 및 판별 모델을 훈련시키고, 훈련된 생성 모델을 사용하여 각 아이템에 대한 사용자에 의한 명시적 피드백을 추정하여 적어도 하나의 아이템을 사용자에게 추천하는 아이템 추천 방법이 제공된다.

Description

생성적 적대 신경망에 기반한 평점 증강 및 아이템 추천 방법 및 시스템{RATING AUGMENTATION AND ITEM RECOMMENDATION METHOD AND SYSTEM BASED ON GENERATIVE ADVERSARIAL NETWORKS}
아래의 설명은 생성적 적대 신경망(generative adversarial network, 이하 GAN) 기반의 협업 필터링 기술에 관한 것으로, 특히, 사용자로부터의 평점과 같은 명시적 피드백 데이터(explicit feedback data)에 대해 훈련(트레이닝)된 GAN을 통해 사용자의 선호도를 추정하는 기술에 관한 것이다.
협업 필터링(collaborative filtering, 이하 CF)은 추천 시스템에서 가장 널리 사용되는 방법 중 하나이다. 협업 필터링은 사용자가 부여한 평점을 기반으로 사용자의 취향과 상품에 대한 성향을 분석한 후, 사용자가 아직 구매하지 않은 상품들에 대해 부여할 평점 혹은 구매할 만한 상위 N개의 아이템을 예측할 수 있다.
예컨대, 한국 등록특허공보 제10-1030653호(등록일 2011년 04월 14일)에는 추천 대상 사용자 와 다른 사용자의 각 사용자 선호도 정보 엔트로피 간의 관계를 가중치로 하여 상기 추천 대상 사용자와 다른 사용자 간의 유사도를 보정함으로써 선호도 예측의 정확성이 개선된 협업 필터링 추천 기술이 개시되어 있다.
CF는 사용자의 이전 선호도 기록을 수집함으로써 사용자에게 개인화된 아이템 리스트를 제공하는 것을 목표로 한다. 사용자의 선호도 이력은 일반적으로 열이 사용자에 해당하고, 행이 아이템에 해당하며, 값이 아이템에 대한 사용자의 선호도에 해당하는 희소(sparse) 행렬 형태로 표현된다. 여기서, 사용자의 선호도(또는 피드백)는 1에서 5까지의 평점으로 제공되거나(즉, 명시적 피드백), 구매 또는 클릭과 같은 단항(unary) 방식으로 제공될 수 있다(암시적(implicit) 피드백).
많은 CF 방법들 중에서 아이템에 대한 사용자의 과거 선호도 패턴 학습 모델을 구축하는 모델 기반 CF 방법이 가장 성공적이라고 알려져 있다. 가장 널리 사용되는 모델 기반 CF 방법들 중 일부는 사용자와 아이템의 잠재된 특징 사이의 선형 상호 작용(linear interactions)을 학습하는 행렬 인수 분해(matrix factorization, MF)를 기반으로 한다.
최근 심층 신경망 기반의 CF 방법들이 최근 주목 받고 있다. 사용자와 아이템 간 잠재적인 요인의 비선형 상호 작용을 발견하고 임의의 연속 함수를 근사하는 DNN의 능력으로 인하여 DNN 기반 CF 모델은 평점 예측 및 top-N 추천 작업 모두에 대한 강력한 성과를 가진다.
GAN은 주어진 데이터의 분포에 대한 모방을 학습하는 DNN 중 하나에 해당된다. GAN은 다음과 같은 두 가지 모델로 구성된다: 하나는 생성 모델(G)이고, 다른 하나는 판별 모델(D)이다. 학습하는 동안, G는 사실적인 (그러나 가짜인) 데이터를 생성하여 D로 전달한다. D는 데이터가 G가 아닌 실측 자료(ground truth)에 대한 가능성을 평가한다. 훈련 과정은 G와 D 사이의 최소극대화(minimax) 게임이다: D가 가짜 데이터들로부터 실측 자료를 정확하게 구별하려고 시도하는 동안 G는 오류율(즉, fool)을 증가시키려고 노력한다. 이러한 적대적 과정의 결과로서, G는 적어도 인간의 눈에 진본인 것으로 보이는 사진과 같은 현실적인 데이터를 생성하는 방법을 학습한다.
학습 데이터로서 사용자로부터의 평점과 같은 명시적 피드백 데이터를 사용하는 경우에 있어서, 사용자-평점 행렬의 값들이 대부분 비어있는(missing) 데이터 희소성의 문제가 발생할 수 있다. 이러한 데이터 희소성의 문제는 추천 시스템이 사용자의 선호도를 정확하게 파악할 수 없게 만든다. 또한, 사용자로부터의 평점의 경우 낮은 값에 비해 상대적으로 높은 값으로 편향되는(bias) 경우가 많다.
따라서, 이러한 데이터 희소성의 문제 및 데이터 편향의 문제를 고려하여 사용자의 선호도를 추정할 수 있는 추천 시스템이 요구된다.
데이터 희소성의 문제 및 데이터 편향의 문제에 의한 왜곡 없이 사용자의 선호도를 정확하게 추정할 수 있는, 사용자로부터의 평점과 같은 명시적 피드백 데이터에 대해 훈련된 GAN 기반 협업 필터링 프레임워크를 제공할 수 있다.
일 측면에 있어서, 컴퓨터 시스템에 의해 수행되는, GAN(generative adversarial network)에 기반한 아이템 추천 방법에 있어서, 복수의 아이템들에 포함되는, 사용자에 의해 명시적 피드백(explicit feedback)이 부여되지 않은 아이템들 중에서 적어도 하나의 네거티브 아이템에 대한 바이어스 처리(bias treatment)를 수행하는 단계, 상기 바이어스 처리된 네거티브 아이템이 고려된, 상기 복수의 아이템들에 대한 상기 사용자와 연관된 명시적 피드백 데이터 세트를 사용하여 상기 GAN의 생성 모델(generative model) 및 판별 모델(discriminative model)을 훈련시키는 단계, 상기 훈련된 생성 모델을 사용하여 상기 사용자의 상기 복수의 아이템들의 각각에 대한 상기 사용자에 의한 명시적 피드백을 추정하는 단계 및 상기 복수의 아이템들의 각각에 대해 추정된 상기 명시적 피드백에 기반하여, 상기 복수의 아이템들 중 적어도 하나의 아이템을 상기 사용자에게 추천하는 단계를 포함하는, 아이템 추천 방법이 제공된다.
상기 명시적 피드백은 아이템에 대해 상기 사용자에 의해 부여되는 평점이고, 상기 복수의 아이템들에 대한 상기 사용자와 연관된 명시적 피드백 데이터 세트는 상기 복수의 아이템들 각각에 대한 상기 사용자가 부여한 평점을 각 엔트리로서 포함하는 사용자-평점 행렬에 대응할 수 있다.
상기 추정하는 단계에서 상기 생성 모델은 실수 값인 평점을 상기 명시적 피드백으로서 추정하고, 상기 판별 모델은 상기 추정된 평점이 상기 사용자에 의해 부여된 실측 자료(ground truth)에 해당되는 것인지 혹은 상기 생성 모델에서 생성된 것인지를 판별할 수 있다.
상기 바이어스 처리를 수행하는 단계는, 상기 사용자에 의해 평점이 부여되지 않은 아이템들에 대한 상기 사용자의 암시적(implicit) 피드백 데이터에 기반하여, 상기 복수의 아이템들 중 상기 적어도 하나의 네거티브 아이템을 식별하는 단계 및 상기 식별된 네거티브 아이템에 대해 상기 복수의 아이템들 중 나머지에 비해 상대적으로 더 낮은 평점을 부여하는 단계를 포함하고, 상기 GAN의 생성 모델(generative model) 및 판별 모델(discriminative model)은 상기 더 낮은 평점이 반영된 상기 사용자-평점 행렬을 사용하여 훈련될 수 있다.
상기 식별하는 단계는, 협업 필터링(Collaborative Filtering; CF) 모델을 사용하여, 상기 복수의 아이템들 중 상기 네거티브 아이템을 식별하고, 상기 CF 모델은 상기 암시적(implicit) 피드백 데이터에 기반하여, 상기 평점이 부여되지 않은 아이템들 중 사용자가 부정적인 선호도를 가지는 아이템을 상기 네거티브 아이템으로서 추정할 수 있다.
상기 CF 모델은 CDAE (Collaborative Denoising Auto-Encoder)를 사용하고, 바이너리화된 상기 복수의 아이템들에 대해 상기 사용자에 의해 부여된 평점을 사용하여 상기 CDAE가 훈련되고, 상기 훈련된 CDAE에 의해 파악된 상기 복수의 아이템들 각각에 대한 관심도에 기반하여 상기 네거티브 아이템이 추정될 수 있다.
상기 평점을 부여하는 단계는, 상기 네거티브 아이템과 연관된 상기 관심도를 상기 더 낮은 평점에 대응하는 소정의 범위 내의 값으로 정규화함으로써(normalized), 상기 네거티브 아이템에 상기 더 낮은 평점을 부여하고, 상기 정규화된 관심도는 상기 사용자-평점 행렬의 대응하는 엔트리에 삽입될 수 있다.
상기 네거티브 아이템은, 상기 평점이 부여되지 않은 아이템들 각각에 대해 결정된 상기 사용자의 관심 점수에 기반하여, 상기 관심 점수가 하위인 소정의 수 또는 소정의 비율에 해당하는 아이템으로서 결정될 수 있다.
상기 바이어스 처리는, 상기 복수의 아이템들에 대해 상기 사용자에 의해 부여된 평점들의 상대적으로 더 높은 값으로의 편중에 의한 상기 훈련된 생성 모델의 상기 복수의 아이템들의 각각에 대한 평점의 추정의 왜곡을 보정할 수 있다.
상기 생성 모델 및 상기 판별 모델은 상기 사용자에 대해 개인화된 사용자-특정 정보에 따라 상기 사용자에 대해 개인화되어 훈련될 수 있다.
상기 추천하는 단계에서는, 상기 훈련된 생성 모델에 의해 추정된 상기 복수의 아이템들의 각각에 대한 평점이 반영된 사용자-평점 행렬을 사용하여 훈련된 CF 모델에 의해 상기 복수의 아이템들 중 적어도 하나의 아이템이 상기 사용자에게 추천될 수 있다.
다른 일 측면에 있어서, 컴퓨터 시스템에 있어서, 메모리 및 상기 메모리와 연결되고, 상기 메모리에 포함된 컴퓨터 판독 가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 복수의 아이템들에 포함되는, 사용자에 의해 명시적 피드백(explicit feedback)이 부여되지 않은 아이템들 중에서 적어도 하나의 네거티브 아이템에 대한 바이어스 처리(bias treatment)를 수행하고, 상기 바이어스 처리된 네거티브 아이템이 고려된, 상기 복수의 아이템들에 대한 상기 사용자와 연관된 명시적 피드백 데이터 세트를 사용하여 GAN(generative adversarial network)의 생성 모델(generative model) 및 판별 모델(discriminative model)을 훈련시키고, 상기 훈련된 생성 모델을 사용하여 상기 사용자의 상기 복수의 아이템들의 각각에 대한 상기 사용자에 의한 명시적 피드백을 추정하고, 상기 복수의 아이템들의 각각에 대해 추정된 상기 명시적 피드백에 기반하여, 상기 복수의 아이템들 중 적어도 하나의 아이템을 상기 사용자에게 추천하는, 컴퓨터 시스템이 제공된다.
상기 명시적 피드백은 아이템에 대해 상기 사용자에 의해 부여되는 평점이고, 상기 복수의 아이템들에 대한 상기 사용자와 연관된 명시적 피드백 데이터 세트는 상기 복수의 아이템들 각각에 대한 상기 사용자가 부여한 평점을 각 엔트리로서 포함하는 사용자-평점 행렬에 대응할 수 있다.
상기 적어도 하나의 프로세서는, 상기 사용자에 의해 평점이 부여되지 않은 아이템들에 대한 상기 사용자의 암시적(implicit) 피드백 데이터에 기반하여, 상기 복수의 아이템들 중 상기 적어도 하나의 네거티브 아이템을 식별하고, 상기 식별된 네거티브 아이템에 대해 상기 복수의 아이템들 중 나머지에 비해 상대적으로 더 낮은 평점을 부여하고, 상기 GAN의 생성 모델(generative model) 및 판별 모델(discriminative model)은 상기 더 낮은 평점이 반영된 상기 사용자-평점 행렬을 사용하여 훈련될 수 있다.
또 다른 일 측면에 있어서, 컴퓨터 시스템에 의해 수행되는, GAN(generative adversarial network)에 기반한 복수의 아이템들에 대한 사용자로부터의 평점을 증강(rating augmentation)시키는 방법에 있어서, 상기 복수의 아이템들에 포함되는, 사용자에 의해 평점이 부여되지 않은 아이템들 중에서 적어도 하나의 네거티브 아이템에 대한 바이어스 처리(bias treatment)를 수행하는 단계, 상기 바이어스 처리된 네거티브 아이템이 고려된, 상기 복수의 아이템들에 대한 상기 사용자와 연관된 사용자-평점 행렬을 사용하여 상기 GAN의 생성 모델(generative model) 및 판별 모델(discriminative model)을 훈련시키는 단계, 상기 훈련된 생성 모델을 사용하여 상기 사용자의 상기 복수의 아이템들의 각각에 대한 상기 사용자에 의한 평점을 추정하는 단계 및 상기 추정된 평점을 사용하여 상기 사용자-평점 행렬의 값들을 업데이트함으로써 평점이 증강된 사용자-평점 행렬을 생성하는 단계를 포함하는, 사용자로부터의 평점을 증강시키는 방법이 제공된다.
상기 사용자로부터의 평점을 증강시키는 방법은 상기 증강된 사용자-평점 행렬을 사용하여 훈련된 CF 모델에 의해 상기 복수의 아이템들 중 적어도 하나의 아이템을 상기 사용자에게 추천하는 단계를 더 포함할 수 있다.
실시예들을 통해서는, 데이터 희소성의 문제 및 데이터 편향의 문제에 의한 왜곡 없이 사용자의 선호도를 정확하게 추정할 수 있고, 사용자의 선호도가 정확하게 반영된 아이템들을 추천할 수 있는 GAN 기반의 추천 시스템이 제공된다.
도 1은 일 실시예에 따른 RAGAN 프레임워크를 구성하는 생성 모델(G) 및 판별 모델(D)의 개요도를 나타낸다.
도 2는 일 실시예에 따른 RAGAN 프레임워크를 구성하는 판별 모델(D)의 개요도를 나타낸다.
도 3은 일 실시예에 따른 RAGANBT 프레임워크의 개요도를 나타낸다.
도 4는 사용자로부터의 평점이 높은 평점으로 편향됨에 따라 생성되는 평점들 역시 편향되는 예시를 나타낸다.
도 5는 일 실시예에 따른 부정적인(네거티브) 아이템들로 GAN을 훈련시키기 위한 알고리즘의 예시를 나타낸다.
도 6은 본 발명의 일 실시예에 따른 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다.
도 7은 일 실시예에 따른 아이템 추천 방법을 나타내는 흐름도이다.
도 8은 일 실시예에 따른 사용자로부터의 평점의 바이어스(편향)를 처리하는 방법을 나타내는 흐름도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
아래에서는, 협업 필터링(CF)에서 알려져 있는 데이터 희소성의 문제를 완화하여 궁극적으로 더 높은 추천 정확도를 달성할 수 있는 소위 RAGAN (Rating Augmentation GAN)이라는 GAN를 사용하는 평점 증강(rating augmentation) 프레임워크에 대해 설명한다.
평점 증강을 위해 GAN을 CF에 적용함에 있어서, 순수한 RAGAN은 높은 평점으로 편향된 값을 생성하는 경향이 있다. 따라서, 이러한 데이터 편향의 문제를 해결할 수 있는 소위 RAGANBT라는 개선된 버전의 RAGAN을 아래에서 설명한다. RAGANBT는 데이터 희소성의 문제 및 데이터 편향의 문제를 성공적으로 해결할 수 있으며, 실제 데이터 세트들에 대한 실험을 통해서도 그 효과가 입증될 수 있다. RAGANBT는 (1) 기본적인 top-N(상위 N개) 추천, (2) 롱-테일 아이템 추천 및 (3) 콜드-스타트 사용자들에 대한 추천과 같은 상황에서도 종래기술에 비해 정확한 개선된 CF 모델들을 제공할 수 있다.
RAGAN은 평점 행렬에서 관찰된 평점을 학습 데이터로 사용하여 먼저 GAN을 훈련시킨 다음, 생성 모델(G)가 원래의 평점 행렬에서 증강되어야 하는 관찰되지 않은 사용자-아이템 상호 작용에 대한 적절한(plausible) 평점들을 생성한다. 마지막으로, 기존의 CF 모델(예컨대, itemKNN, SVD 및 AutoRec)이 증강된 평점 행렬을 사용하여 훈련됨으로써 추천들을 생성할 수 있고, 이는 (증강이 없는) 데이터의 희소성을 갖는 원래의 평점 행렬에 의한 모델 학습과 비교하여 더 높은 정확도를 갖는 결과로 이어질 수 있다.
한편, 이러한 GAN에 의한 데이터 증강의 아이디어를 CF의 분야에 적용할 때, 평점 데이터의 선택에 있어서 데이터의 편향의 문제가 발생할 수 있다. 예컨대, 0 내지 5의 값으로 구성되는 평점에 대한 평점 데이터 중 단지 작은 부분(10~17%) 만이 낮은 값(1 또는 2)로 관찰되었고, 나머지(83~90%)는 3 내지 5의 높은 값으로 관찰될 수 있다. 이러한 데이터의 편향은 사람들이 높은 만족을 줄 것 같은 아이템들을 주로 선택하여 평점을 부여하는 경향이 있고, 낮은 만족을 줄 것 같은 아이템들은 선택하지 않고 무시하기 때문에 발생할 수 있다.
따라서, GAN이 이러한 높은 평점들로 왜곡되어 있는 평점 행렬로 훈련될 경우, 이는 평점 행렬에서 대부분의 관찰되지 않은 아이템에 대해 높은 평점을 생성하게 될 것이다. 그러나 관찰되지 않은 아이템의 대다수는 사용자의 부정적인 선호를 나타내는 경우가 많으므로 이러한 결과는 바람직하지 않을 수 있다(즉, 사용자는 관심이 없는 아이템에는 아예 평점을 부여하지 않음). CF 모델이 이러한 편향된 증강된 평점 행렬로 훈련되는 경우, 사용자의 상대적인 선호도를 올바르게 포착할 수 없으므로, 추천에 있어서의 정확성 역시 떨어지게 될 수 있다.
이러한 문제를 해결하기 위한 RAGAN의 개선된 버전인 RAGANBT는 GAN이 평점 증강을 위해 훈련될 때 사용자의 부정적인(네거티브)(negative) 아이템(즉, 사용자가 부정적인 선호도를 갖는 아이템)을 추가로 고려하는 것을 통해, G가 높은 평점으로 편향되는 것을 방지할 수 있다. 이 때 모든 사용자-아이템 쌍의 흥미(또는 무흥미)를 추론하기 위해, 알려진 일-분류 협업 필터링(One-Class Collaborative Filtering; OCCF)으로서 이러한 부정적인 아이템들을 식별하는 문제가 공식화될 수 있다.
원래의 평점 행렬과 함께 추가 소스로서 식별된 부정적인 아이템들을 사용하여 GAN를 훈련시킴으로써 RAGANBT는 높은 평점으로의 편향을 성공적으로 회피할 수 있고, 평점이 매겨지지 않은 아이템의 특성을 보다 잘 반영하는 가상의 평점들을 생성할 수 있다.
따라서, 결과적으로 RAGANBT는 평점 행렬에 대한 증강을 통해 인공적이지만 그럴듯한 등급을 신중하게 생성할 수 있고, 데이터 희소성의 문제를 효과적으로 해결할 수 있으며, CF의 추천 정확도를 크게 향상시킬 수 있다.
실험 결과로서도, (GAN를 훈련시키기 위해 부정적인 아이템들을 고려한) RAGANBT이 보다 현실적인 평점을 생성함에 있어서 매우 효과적이고, 추천 정확도가 높게 되는 것으로 나타났으며, 기본적인 top-N 추천, 롱-테일 아이템 추천 및 콜드-스타트 사용자들에 대한 추천과 같은 상황에서 높은 추천 정확도를 보이는 것으로 나타났다.
이하에서는 이러한 RAGANBT를 위한 관련된 작업들에 대해 설명한다.
모델 기반 CF(model-based CF)
Figure 112019023669628-pat00001
Figure 112019023669628-pat00002
각각은 m명의 사용자와 n개 아이템들의 세트를 나타낸다. 여기서, I u u로부터 평점들을 수신하는 아이템들의 세트로 정의된다. 아이템들에 대한 사용자의 평점들은 희소 행렬
Figure 112019023669628-pat00003
Figure 112019023669628-pat00004
에 의해 표현된다. 이때, 원소 r ui iI u 에 포함된 경우 평점 값이며 다른 경우는 비어 있다(즉, 관찰되지 않음). 개별적인 사용자 u와 아이템 i의 평점 벡터들을 각각 r ur i로 나타낸다.
CF의 목표는 j에 대한 u의 평점 지수를(
Figure 112019023669628-pat00005
로 나타냄,
Figure 112019023669628-pat00006
) 예측하고(u가 평점 j를 부여하고자 하는 정도를 반영), u에 대하여 가장 높은 예측 지수를 가지는 아이템의 서브 세트를 추천한다. 모델 기반 방법의 관점으로부터, CF는
Figure 112019023669628-pat00007
와 같이 공식화하여 나타낼 수 있는 모델을 사용하여
Figure 112019023669628-pat00008
를 계산한다. 여기서,
Figure 112019023669628-pat00009
는 모델을 나타낸다. 즉,
Figure 112019023669628-pat00010
에 의해 파라미터화된 함수이며, 주어진 사용자 u 및 아이템 j의 쌍을 선호 지수로 매핑한다. 모델 파라미터 세트
Figure 112019023669628-pat00011
Figure 112019023669628-pat00012
을 훈련 데이터로 이용한 목적 함수를 최적화함으로써 학습될 수 있다.
기존 모델 기반 CF 방법은 모델을 훈련시키는 데 사용되는 목적 함수의 유형에 따라 다음과 같이 분류될 수 있다: 포인트 단위(point wise) 방법과 쌍 단위(pair wise) 방법. 포인트 단위 방법은
Figure 112019023669628-pat00013
Figure 112019023669628-pat00014
의 오리지널 값인 r ui 사이의 평균 제곱 에러를 최소화시키는 것을 목적으로 한다. 반면에, 쌍 단위 방법은 더 선호되는(즉, 평점이 부여된) 아이템과 덜 선호되는 아이템(즉, 평점이 부여되지 않은) 사이의 예측된 선호도 차이를 최대화시킨다.
top-N 추천 작업과 관련하여, 쌍 단위 목적 함수를 사용하는 것이 더 유용한 것으로 일반적으로 알려져 있다. 그러나, 잘-설계된 쌍 단위 목적 함수를 사용하는 것이 top-N 추천을 위한 사용자의 상대적인 선호도를 모델링하기에 충분하다는 주장이 있고, 이는 이것은 경험적인 평가에 의해 정당화된다. WRMF, FISM, NCF, 및 CDAE는 대중적인 포인트 단위 방법들의 예시이며, BPR, GBPR, FISMauc, 및 CDR은 이러한 쌍 단위 방법들의 예시이다.
생성적 적대 신경망(GAN)
최근 기계 학습 모델을 학습하는 새로운 방법을 제안하는 생성적 적대 신경망(GAN)이 연구되고 있다. GAN은 생성 모델(G)과 판별 모델(D) 간의 경쟁 구조를 통해 G를 훈련시켜서 G가 그럴듯한 데이터를 생성하도록 만드는 기술이다. 다시 말해, G와 D를 포함하는 경쟁 과정을 통하여, G는 실측 자료의 분포를 포착하도록 학습되어 실측 자료와 특성이 다르지 않은 그럴듯한 합성 데이터를 생성할 수 있다. 공식으로, G와 D는 다음의 목적 함수
Figure 112019023669628-pat00015
을 이용하여 두 플레이어 최소극대화 게임을 플레이한다(수학식 1).
[수학식 1]
Figure 112019023669628-pat00016
여기서, D(x)는 x가 실측 자료가 되는 추정된 확률을 나타낸다. 일반적으로, G와 D는 모두 신경망이며 동일한 목적 함수를 최소화하고 최대화하면서 각각의 모델 파라미터를 최적화함에 있어서 반복된다.
이러한 초기 프레임워크에 기반하여, WGAN (Wasserstein GAN) 및 BEGAN (Boundary Equilibrium GAN)와 같은 다양한 변형들이 존재한다. GAN은 또한 섬세하고 불안정한 훈련 프로세스가 알려져 있다. 이러한 이유로, WGAN과 BEGAN은 GAN 밸런싱 및 안정성 개선에 중점을 둔 변형이다. WGAN의 경우 Wasserstein 거리의 합리적이고 효율적인 근사값을 최소화하여 GAN의 훈련 문제를 해결한다. BEGAN은 Wasserstein 거리에서 파생된 손실 외에도 새로운 평형 강요(equilibrium enforcing) 방법을 사용하여 보다 빠르고 안정적인 훈련 프로시저를 제공한다. 실시예에서는, 바닐라(vanilla) GAN을 기반으로 한 작업을 개발하고 개선된 GAN을 향후 작업을 위해 사용할 수 있다.
GAN에 기반한 추천 시스템(Recommender System)
GAN의 가장 성공적인 분야는 이미지 생성이지만, 음악 생성에 대한 WaveGAN, 문장 생성에 대한 SegGAN 등과 같이 다른 분야에서 더 유망한 결과를 얻을 수 있는 큰 잠재력을 가지고 있다. 최근 추천 시스템 분야에서 CF에 GAN을 적용한 방법들이 연구되고 있으며, CF 모델을 훈련시키기 위해 기존의 포인트 단위(point wise) 또는 쌍 단위(pair wise) 목적 함수를 최적화하는 것이 아니라, 적대적 훈련 방법을 적용하여 추천에서 만족스러운 정확성을 얻으려고 시도한다.
일례로, 추천 시스템에 적용된 GAN의 예시로서 IRGAN에 기반한 원리는 다음과 같다.
IRGAN에서 G는 주어진 사용자와 관련된 아이템의 인덱스를 생성(또는 샘플링)하려고 시도하며, D는 사용자의 실측 자료 아이템을 G가 종합적으로 생성한 아이템과 구별하려고 시도한다. 보다 구체적으로, G는 수학식 2의 softmax 함수로 구현된다.
[수학식 2]
Figure 112019023669628-pat00017
여기서,
Figure 112019023669628-pat00018
는 주어진 u 및 인덱스 k에서 아이템을 샘플링하는 G의 조건부 확률 분포이고,
Figure 112019023669628-pat00019
는 u가 i k 에 평점을 부여할 확률을 반영하는 스코어링 함수이다.
한편, D는 스코어링 함수의 sigmoid 함수
Figure 112019023669628-pat00020
를 사용하여, 주어진 사용자 u의 실측 자료에 속하는 각 아이템 i의 확률을 추정한다(수학식 3).
[수학식 3]
Figure 112019023669628-pat00021
여기서,
Figure 112019023669628-pat00022
iu의 관련성을 반영한다. 스코어링 함수
Figure 112019023669628-pat00023
Figure 112019023669628-pat00024
는 모두 행렬 인수 분해 모델, 공식으로,
Figure 112019023669628-pat00025
Figure 112019023669628-pat00026
에 기반한다. 이때, du와 di는 각각 D에 속하는 잠재(latent) 요인(factor)이다. 그리고, g u g i 는 G에 속하는 잠재 요인이다.
Figure 112019023669628-pat00027
Figure 112019023669628-pat00028
는 아이템 바이어스 조건이다.
목적 함수는 아래의 수학식 4와 같이 공식화된다:
[수학식 4]
Figure 112019023669628-pat00029
스토캐스틱(stochastic) 그라디언트 상승으로 D를 풀 수 있지만, G는 i의 샘플링이 이산적이므로 D로부터 그라디언트를 수신할 수 없다. 따라서, IRGAN은 G를 업데이트하기 위해 폴리시(policy) 그라디언트 기반 보강 학습을 사용하고, 폴리시 그라디언트는 아래 수학식 5에 의해 계산될 수 있다.
[수학식 5]
Figure 112019023669628-pat00030
보강 학습의 관점으로부터 항
Figure 112019023669628-pat00031
는 환경 u 내의 액션 i를 취하는 폴리시
Figure 112019023669628-pat00032
에 대한 리워드로서 기능한다.
이하에서는, 평점 증강(rating augmentation)을 위한 개선된 GAN인 RAGAN에 대해 자세하게 설명한다.
도 1은 일 실시예에 따른 RAGAN 프레임워크를 구성하는 생성 모델(G) 및 판별 모델(D)의 개요도를 나타내고, 도 2는 판별 모델(D)을 보다 자세하게 나타낸다.
실시예들은 평점 데이터로 GAN을 훈련하고, 그럴듯한 평점을 생성하고 생성된 값들을 평점 행렬에서 증강시키고자 하는 것이다. 이러한 목적의 직접적인 해결책은 기존의 GAN 기반 CF (IRGAN, GraphGAN 등)를 사용하여 전술한 프로세스를 수행하는 것에 의해 이루어질 수 있다. 그러나, IRGAN과 GraphGAN은 사용자의 암시적 피드백 데이터로부터만 학습될 수 있으며, 명시적인 피드백 데이터에 해당하는 사용자로부터의 평점(즉, 만족도)으로부터 학습되고 이러한 데이터를 생성하도록 하기 위해 상기의 방법을 확장하는 것은 적절하게 고려되고 있지 않다. 또한, 이들 두 프레임워크들에서 사용된 학습 방법은 적대적(adversarial) 프로세스의 이점을 충분히 활용하지 못한다. 이러한 이유로 적대적 프로세스의 이점을 최대한 활용하고 평점 데이터를 학습하고 그로부터 평점 데이터를 생성할 수 있는 새로운 GAN 기반 CF 방법이 요구된다.
신규한 평점 생성을 위한 개선된 GAN이 RAGAN으로서 제안된다. RAGAN에서는 주어진 사용자에 대해 G는 그럴듯한(plausible) 것으로 보이는 평점 벡터를 생성하도록 시도하고, D는 주어진 평점 벡터가 진짜인지 또는 G에 의해 생성된 페이크(fake) 값인지를 정확하게 결정하도록 시도할 수 있다.
RAGAN의 또 다른 주목할만한 점은 다음의 두 가지 특징들을 고려하여, 원래의 GAN(예컨대, 이미지)에 의해 일반적으로 고려되는 다른 데이터와는 매우 다른 것인, 평점 데이터로부터 학습하는 것을 적합하게 만든다는 것이다.
- 개인화: GAN는 학습 과정에서 개별 사용자의 개인화를 고려해야 하고, 따라서, G는 주어진 각 사용자에게 맞는 적절한 평점들을 생성할 수 있다.
- 희소성 인식: 고밀도 벡터로 표현된 원래의 GAN이 목표로 하는 이미지 데이터와는 달리, CF에서 사용자에 대한 평점 데이터는 일반적으로 많은 수의 관찰되지 않은 아이템(평가되지 않은 아이템)을 갖는 희소 벡터에 해당한다. 이러한 사실에 비추어, GAN은 이러한 맥락에서의 누락된 아이템을 처리할 수 있도록 구현되어야 한다.
첫 번째 특징과 관련하여, G와 D를 모두 훈련시킬 때 사용자-특정 정보를 조건으로 할 수 있다. 따라서, 각 사용자의 개인화를 고려하면서 G 및 D의 모델 파라미터들이 도출되는 것을 기대할 수 있다. 두 번째 특징과 관련하여, 관찰된 평점들에 관한 G의 결과만이 GAN의 전체 학습 과정에 기여할 수 있도록 하는 방식으로 CF를 위한 GAN로 마스킹 함수를 도입할 수 있다.
도 1 및 2는 실시예의 RAGAN을 구성하는 G 및 D의 개요도를 나타낸다. 주어진 사용자-특정 조건 벡터 c u 및 랜덤 노이즈 벡터 z에 대해, RAGAN의 G는 n 차원의 페이크 평점 벡터를 생성할 수 있다. 유사하게, c u 를 입력으로 받아서, D는 생성된 평점 벡터를 u의 실제의 것으로부터 구별하도록 학습된다. 공식으로서,
Figure 112019023669628-pat00033
는 아래 수학식 6에 의해 정의될 수 있다.
[수학식 6]
Figure 112019023669628-pat00034
여기에서,
Figure 112019023669628-pat00035
는 사용자 u에 대응하는 G에 의해 생성된 n 차원의 평점 벡터를 나타내고, ru는 실제 평점 벡터(즉, 실측 자료)를 나타낸다.
Figure 112019023669628-pat00036
Figure 112019023669628-pat00037
에 의해 도출되고, {}는 두 벡터들의 내부에서의 연결(concatenation)을 나타낸다. 유사하게, c u 를 입력으로 받아서, D는 그 입력이 G로부터가 아니라 실제 평점 데이터로부터의 온 것일 확률을 나타내는 싱글 스칼라 값을 출력한다. G 및 D는 멀티-레이어 신경망들에 의해 나타내어질 수 있다. e u 는 사용자 u가 아이템 i에 대해 평점을 부여했는지 여부를 나타내는 n 차원의 인디케이터 벡터일 수 있다(예를 들어, e ui 는 사용자 u가 아이템 i 에 평점을 부여했으면 1, 부여하지 않았으면 0으로 나타낼 수 있다).
Figure 112019023669628-pat00038
는 element-wise 곱셈을 나타낸다. e u 는 G의 출력
Figure 112019023669628-pat00039
를, 그것에 e u 를 곱하는 것을 통해, 마스킹하기 위해 사용되며, 이는 G가 모방하고자 하는 평점 데이터 내에서 관찰되지 않은 엔트리들을 다루게 된다.
즉, 관찰되지 않은 아이템에 해당하는 G의 출력 노드들을 드롭하여 D가 드롭된 노드들을 무시하고 G가 드롭된 노드들에 대해 D로부터의 손실 그라디언트를 얻지 못하게 한다. 이를 통해, 모델 파라미터들은 관찰된 평점들에 기반하여서만 학습되고, 이것이 나중에 잠재적인(그러나 아직 관찰되지 않은) 사용자-아이템 평점들을 생성하기 위해 사용될 것이다.
G(및 D)를 훈련시키기 위해 스토캐스틱(stochastic) 그라디언트 하강(및 상승)이 미니배치(minibatch)와 백-프로파게이션(back-propagation)과 함께 적용될 수 있다. G와 D의 모델 파라미터들은 교대로 업데이트되고 다른 모델을 훈련할 때 나머지 하나는 고정될 수 있다. GAN의 훈련이 완료된 후, 사용자 u에 대한 모든 아이템들에 대한 예측된 평점들을 포함하는, 사용자 u에 대한 모든 아이템들에 대한 예측된 평점들을 포함하는 밀도 평점 벡터
Figure 112019023669628-pat00040
를 생성하기 위해, G에 대해 zc u 를 공급할 수 있다. 예측된 모든 평점들 중에서,
Figure 112019023669628-pat00041
내에서 요소 j를 수집하고,
Figure 112019023669628-pat00042
이고, 즉, 관찰되지 않은 엔트리들에 대해서만 예측된 평점들을 수집하고, 이러한 수집된 평점들로 원래의 평점 행렬
Figure 112019023669628-pat00043
를 증강시킬 수 있다.
아래에서는 도 3을 참조하여 실시예에 따른 바이어스(즉, 편향) 처리(bias treatment)를 포함하는 RAGANBT에 대해 더 자세하게 설명한다.
도 3은 일 실시예에 따른 RAGANBT 프레임워크의 개요도를 나타낸다.
다음에서는, 예비적인 결과들을 보여주는 것을 통해 RAGAN에서 편향(bias)의 고유한 문제를 처리할 수 있도록 하는 방법에 대해 설명한다. 전술된 것과 같은 데이터 편향의 문제를 해결하기 위해 도시된 바와 같은 RAGANBT라는 솔루션이 사용될 수 있다. 이러한 데이터 편향의 문제를 해결하기 위해 평점 행렬에서 부정적인 아이템을 찾는 방법과 GAN을 훈련시키기 위해 이러한 부정적인 아이템들을 추출하는 방법에 대해 설명한다.
관련된 연구들에 따르면, 데이터 세트의 평점은 높은 평점(즉, '긍정적인' 선호도를 의미하는 3, 4 또는 5)으로 편향될 수 있다. 즉, 사람들은 좋아할 가능성이 있는 아이템만 선택하고(따라서, 평점을 부여하고) 관심이 없는 아이템에 대해서는 평점을 부여하지 않는다. 이러한 사용자의 편향된 평점은 높은 평점으로 편향되어 관찰되지 않은 엔트리들에 대한 값들을 생성하도록 훈련된 GAN가 형성되는 주요한 원인이 될 수 있다. 결과적으로, 이러한 편향되어 증강된 평점들을 학습한 CF 모델은 사용자의 선호도를 올바르게 반영할 수 없다.
이러한 문제점을 명확하게 이해하기 위해, 실제 데이터 세트 4 개를 사용하여 실험이 수행되었으며, 이에 대한 자세한 설명은 생략하고 실험 결과만을 아래 표 1과 도 4를 참조하여 설명한다. 여기에서는 CF 방법들에 의해 수행된 Top-5 추천의 2 가지의 정확도 값들을 비교하였다. 하나는 원래의 평점 행렬로부터의 학습에 의해 얻어진 것이고, 나머지 하나는 RAGAN에 의해 생성된 합성 평점들로 증강된 평점 행렬로부터의 학습에 의해 얻어진 것이다. CF 방법들로서는, 대중적인 메모리-기반 CF 방식에 해당하는, itemKNN, SVD 및 AutoRec가 사용되었고, MF-기반 CF 모델들 및 DNN 기반 CF 모델들이 각각 사용되었다.
[표 1]
Figure 112019023669628-pat00044
표 1에서 나타난 것처럼, 평점 증강의 효과는 긍정적인 것으로 보지이지 않는다: 평점 증강을 사용한 경우에 있어서 정확도는 모든 경우에서 개선되지 않았으며, 일부 경우에 있어서는 오히려 정확도가 악화되는 것으로 나타났다. 그 원인은 도 4에서 도시된 바에 의한 것일 수 있다. 먼저, 원래의 평점 행렬에서 낮은(즉, 1 또는 2) 평점과 높은 (즉, 3, 4 또는 5) 평점 사이의 심각한 불균형이 관찰된다. 모든 데이터 세트들에서, 평점의 작은 부분(즉, 10~17%) 만이 사용자의 부정적인 선호도를 나타내는 1과 2이고 나머지는 사용자의 긍정적인 선호도를 나타내는 3, 4 및 5가 됨을 확인할 수 있다. RAGAN이 높은 평점으로 편향된 데이터로 훈련되었기 때문에, 이는 도 4에서와 같은 높은 평점들을 생성하게 된다. 그러나, 이러한 결과는 현실과는 차이가 있다. 예컨대, 관찰되지 않은 아이템들의 대다수는 사용자의 부정적인 선호도(즉, 사용자는 관심이 없는 아이템에 평점을 부여하지 않음)를 나타낼 수 있다. 결과적으로, 증강된 평점 행렬을 학습하는 CF 방법은 향상된 정확도를 제공하지 못할 수 있다.
도 3에서 도시된 실시예에 따른 RAGAN BT 는 이러한 도 4에서와 같은 데이터 편향의 문제를 해결할 수 있다. 말하자면, 도 3에서 도시된 RAGAN BT 를 사용하는 평점 증강 프레임워크를 통해, GAN이 높은 평점들로 편향되어 정확한 CF를 위한 적절한 평점을 생성할 수 없게 되는 문제를 해결할 수 있다.
도 3에서 도시된 RAGAN BT 는 다음의 단계들을 통해, 평점들을 생성할 수 있다. 먼저, 평점 행렬 내에서 사용자들에 대한 부정적인(네거티브) 아이템들을 식별할 수 있다((a)). 그 다음으로, 부정적인 아이템들에 대해서는 낮은 평점들을 부여하고, 새로 부여된 평점들이 원래의 평점들과 함께 GAN을 훈련시키기 위해 사용될 수 있다((b)). 최종적으로, 훈련된 GAN 내의 G는 평점 행렬 내에서 증강되는 평점들을 생성할 수 있다((c)). 보다 자세한 내용에 관해서는 후술한다.
먼저 부정적인 아이템들을 식별하는 방법에 대해 설명한다.
아이템 i에 대한 사용자 u의 평점이 평점 행렬 내에 누락된 경우는 다음의 이유들 중 하나 때문일 수 있다.
- 인식의 결여: ui를 선호하지만 i의 존재를 인식하지 못한 경우, 따라서, ui를 평가할 수 없었음.
- 관심 부족: ui의 존재를 알고 있었지만 ui에 대한 선호도가 낮기 때문에 i에 관심이 없었고, 따라서 평가가 이루어지지 않았음.
분명하게, 사용자의 부정적인 아이템들은 후자의 이유로 평점이 매겨지지 않은 아이템들일 수 있다. 이러한 맥락에 따라, 평점이 매겨지지 않은 아이템들에 대한 사용자의 관심을 파악하고 관심이 적은 아이템들을 선택해야 할 수 있다. 이를 위해, 사용자의 암시적 피드백 데이터(예컨대, 클릭 수, 북마크, 평점 이력)을 학습하는 OCCF(One-Class Collaborative Filtering) 프레임워크가 사용될 수 있다. 사용자의 암시적 피드백은 평점들에 의해 주어진 아이템들에 대한 사용자의 궁극적인 선호도를 항상 나타내는 것은 아니지만, 자연스럽게 아이템들을 사용하기 전에 해당 아이템들에 대한 사용자의 관심을 암시할 수 있다. 따라서, OCCF는 평점이 매겨지지 않은 아이템들에 대한 사용자의 관심도를 분석한 다음 관심을 가질만한 Top-N의 아이템을 찾는 작업으로 간주될 수 있다. 다만, RAGAN BT 를 위해서는 상기와 같은 OCCF의 목적과는 반대되는 목표로, 즉, 사용자에게 가장 흥미로운 아이템들을 식별하는 것 대신에, 사용자가 가장 흥미롭지 않아 하는 아이템들(말하자면, 사용자가 관심을 갖지 않을 것 같은 것)이 식별되도록 할 수 있다. OCCF를 위한 방법으로는, 예컨대, BPR, FISM, 및 CDAE 등이 있을 수 있다. 이들 중에서, DNN 기반의 잠재 인자 모델(DNN-based latent factor model)인 CDAE (Collaborative Denoising Auto-Encoder)를 사용할 수 있고, 이는 OCCF 세팅 하에서 우수한 정확도를 낼 수 있다.
CDAE의 입력은 사용자 u의 희소성 암시적 피드백 벡터
Figure 112019023669628-pat00045
(즉, u의 바이너리화된 평점들)일 수 있다. 이러한 벡터는 마스킹 노이즈에 의해 먼저 오염될(corrupted) 수 있고, 오염된 입력 벡터
Figure 112019023669628-pat00046
Figure 112019023669628-pat00047
의 관찰된 엔트리들의 (각 사용자에 대해 랜덤으로 선택된) 어떤 일부를 형성함으로써 얻어질 수 있다.
다음으로, 오염된 입력 벡터
Figure 112019023669628-pat00048
가 공급되고, CDAE는 이를
Figure 112019023669628-pat00049
로서 히든 레이어에 맵핑할 수 있다. W1b 1 는 각각 가중치 행렬 및 제1 레이어의 바이어스 벡터일 수 있고, V u u의 잠재 특징 벡터이고,
Figure 112019023669628-pat00050
는 시그노이드 함수일 수 있다.
최종적으로, CDAE는
Figure 112019023669628-pat00051
에 의해 초기 입력을 재구성할 수 있다. W2b 2 는 각각 가중치 행렬 및 출력 레이어의 바이어스 벡터일 수 있다. CDAE의 모델 파라미터들(즉, W1, b 1 , W2, b 2 및 V)은 아래 수학식 7의 손실함수를 최소화함으로써 학습될 수 있다.
[수학식 7]
Figure 112019023669628-pat00052
Figure 112019023669628-pat00053
항은 손실함수이고,
Figure 112019023669628-pat00054
는 과적합(overfitting)을 회피하는 것을 돕기 위한 소위 L2 정규화를 나타낼 수 있다. 손실함수
Figure 112019023669628-pat00055
는 제곱 손실 또는 로지스틱(logistic) 손실일 수 있으며, 여기에서는 보다 우수한 실증 결과를 제공하기 위해 제곱 손실이 사용되었다.
Figure 112019023669628-pat00056
는 네트워크 내의 모든 에지 가중치들 및 바이어스들의 집합을 나타낸다.
Figure 112019023669628-pat00057
는 스토캐스틱 그라디언트 하강(Stochastic Gradient Descent; SGD) 및 백-프로파게이션 알고리즘을 사용하여 학습될 수 있다. CDAE는 또한 학습 프로세스 동안 스텝 사이즈를 자동적으로 조절하기 위해 AdaGrad를 적용할 수 있다.
Figure 112019023669628-pat00058
가 학습된 후, CDAE는 다시 희소성 암시적 피드백 벡터
Figure 112019023669628-pat00059
를 공급 받고, 사용자 u에 대한 모든 평점이 부여되지 않은 아이템들에 대한 관심의 예측을 포함하는 밀집 벡터를 재구성할 수 있다. 예측된 관심의 점수가 최하인 평점이 부여되지 않은 아이템들의 하위 S 퍼센트로서, u의 부정적인 아이템들을 N u 로 정의할 수 있다. S가 20으로 설정되면, 예측된 점수의 백분위 순위가 하위 20% 인 평점이 부여되지 않은 아이템들이 부정적인 아이템들로 간주될 수 있다.
아래에서는, 이러한 부정적인 아이템들을 사용하여 GAN을 훈련하는 방법에 대해 더 자세하게 설명한다.
이러한 부정적인 아이템들을 통해 GAN의 학습 프로세스를 어떻게 개선하는지에 관해 설명한다. 이를 통해, G가 높은 평점들로 편향되는 것이 방지될 수 있다. 이를 위해서는, G가 모방하고자 하는 새로운 실측 자료 벡터로서, 부정적인 아이템들에 대한 "낮은 평점"이 D로 공급되는 r u 에 추가될 수 있다. 이렇게 함으로써, G는 r u 내의 관찰된 엔트리들에 대해서는 높은 평점을 생성할 수 있을 뿐만 아니라 D를 속이기 위해 식별된 부정적인 아이템들에 대해서는 낮은 평점들을 생성할 수 있다.
따라서, G는 더 이상 높은 평점들로 편향되지 않을 것이며, 균형 잡힌 방식으로 사용자의 긍정적이거나 정적인 선호도를 함께 학습할 수 있게 된다. 도 5에서 도시된 알고리즘은 GAN을 부정적인 아이템들을 사용하여 훈련하는 교육하는 상세한 프로세스를 나타낼 수 있다.
r u 에 할당되는 낮은 평점에는, 예컨대, 0, 1 및 2의 3 가지의 선택 사항이 존재할 수 있다. 0의 평점이 할당되는 것은 사용자가 부정적인 아이템을 전혀 좋아하지 않는다는 강한 암시를 나타내고, 2의 평점이 할당되는 것은 부정적인 아이템들에 대해 사용자가 덜 심하게 무심하다는 것을 나타낼 수 있다. 실증적인 평가를 통해, 제안된 프레임워크는 낮은 평점들의 선택과 무관하게 잘 작동하지만 3, 4 및 5와 같은 높은 평점들을 사용하는 경우에는 제대로 작동하지 않음을 알 수 있었다.
아래에서는 추천 방법에 대해 더 자세하게 설명한다.
부정적인 아이템들을 사용한 GAN의 훈련이 완료된 후, 훈련된 G에 대해 zc u 를 공급하여 그럴듯한 평점들을 생성하고 이를 원래의 행렬
Figure 112019023669628-pat00060
에 대해 증강시킬 수 있다. 이러한 행렬은 증강된 평점 행렬로서
Figure 112019023669628-pat00061
로서 지시될 수 있다. ItemKNN, SVD, 및 AutoRec와 같은 여하한 CF 모델들은
Figure 112019023669628-pat00062
내의 관찰되지 않은 엔트리들에 대한 상대적인 선호도들을 예측하기 위해, 훈련 데이터로서 증강된 평점 행렬
Figure 112019023669628-pat00063
을 사용하여 훈련될 수 있다. 따라서, 각 사용자에 대해, 가장 높은 예측된 선호도를 갖는 상위 N개의 아이템들이 추천 리스트로서 선택될 수 있다.
아래의 표 2는 실시예의 RAGANBT의 추천 정확도를 평가하기 위해 MovieLens 100K, Watcha, Ciao, Movielens 1M의 데이터를 사용하여 시험한 결과를 나타낸다. 각 데이터 세트에서 임의로 선택한 80%의 구매 이력을 모델 학습을 위한 데이터로서 사용하였고, 나머지 20% 데이터를 추천 정확도를 평가하기 위한 데이터로서 사용하였다. 기존의 추천 모델과 제안된 RAGANBT를 사용한 모델을 각각 학습 데이터를 이용하여 훈련시키고, 평가 데이터를 이용해서 각 모델의 top-N 추천의 정확도를 계산하여 비교하였다. 정확도 계산을 위한 척도는 기존에 널리 이용되는 precision (P)가 이용되었고, 상위 5개(@5)에 대한 결과가 계산되었다. 또한, 더 어려운 추천 환경(롱-테일(long-tail), 콜드-스타트(cold-start))를 구성하여, 이러한 환경 하에서도 실험을 수행하였다.
표 2의 결과에서 볼 수 있는 것처럼, 실시예의 RAGANBT를 사용하여 사용자-아이템 행렬(사용자-평점 행렬)에 평점을 추가적으로 생성하여 채워 넣은 경우가, 그렇지 않은 경우에 비해 보다 더 높은 추천 정확도를 제공하는 것을 확인할 수 있다. 특히, 실시예는 비어 있는 아이템의 전부 또는 일부에 대해 단순히 0점을 채워 넣는 PureSVD, Zero-Injection에 비해서도 더 높은 추천 정확도를 제공함이 확인되었다. 즉, 이와 같이 0을 채워 넣는 것은 사용자의 개인화된 특성을 고려하지 않는 것인 바 부정확한 결과를 초래할 수 있다. 이에 비해, 실시예의 RAGANBT는 각 사용자마다 상이할 수 있는 아이템에 대한 선호도를 고려하여, 단순히 0점을 일괄적으로 채워 넣는 것에 그치지 않고 평점을 더 정교하게 추정할 수 있다.
[표 2]
Figure 112019023669628-pat00064
시스템 구현
도 6은 본 발명의 일 실시예에 있어서 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다. 예를 들어, 본 발명의 실시예들에 따른 GAN에 기반한 평점 증강 및 아이템 추천을 위한 시스템이 도 6의 컴퓨터 시스템(600)을 통해 구현될 수 있다. 도 6에 도시한 바와 같이, 컴퓨터 시스템(600)은 GAN에 기반한 아이템 추천 방법을 실행하기 위한 구성요소로서 프로세서(610), 메모리(620), 영구 저장 장치(630), 버스(640), 입출력 인터페이스(650) 및 네트워크 인터페이스(660)를 포함할 수 있다. 컴퓨터 시스템(600)은 도시된 것과는 달리 복수의 컴퓨터 시스템들로 구성될 수도 있다. 컴퓨터 시스템(600)은 예컨대, 옥션 등과 같은 온라인 쇼핑몰에서 사용자의 구매 이력을 분석하여 사용자가 관심 있어 할 만한 상품을 추천해주는 웹 서비스 제공 시스템 및/또는 추천 시스템일 수 있다.
프로세서(610)는 GAN에 기반한 평점 증강 및 아이템 추천 방법을 구현하기 위한 GAN 및 CF를 위한 구성요소로서 명령어들의 시퀀스를 처리할 수 있는 임의의 장치를 포함하거나 그의 일부일 수 있다. 프로세서(610)는 예를 들어 컴퓨터 프로세서, 이동 장치 또는 다른 전자 장치 내의 프로세서 및/또는 디지털 프로세서를 포함할 수 있다. 프로세서(610)는 예를 들어, 서버 컴퓨팅 디바이스, 서버 컴퓨터, 일련의 서버 컴퓨터들, 서버 팜, 클라우드 컴퓨터, 컨텐츠 플랫폼 등에 포함될 수 있다. 프로세서(610)는 버스(640)를 통해 메모리(620)에 접속될 수 있다.
메모리(620)는 컴퓨터 시스템(600)에 의해 사용되거나 그에 의해 출력되는 정보를 저장하기 위한 휘발성 메모리, 영구, 가상 또는 기타 메모리를 포함할 수 있다. 메모리(620)는 예를 들어 랜덤 액세스 메모리(RAM: random access memory) 및/또는 다이내믹 RAM(DRAM: dynamic RAM)을 포함할 수 있다. 메모리(620)는 컴퓨터 시스템(600)의 상태 정보와 같은 임의의 정보를 저장하는 데 사용될 수 있다. 메모리(620)는 예를 들어, GAN에 기반한 평점 증강 및 아이템 추천 방법의 수행을 위한 명령어들을 포함하는 컴퓨터 시스템(600)의 명령어들을 저장하는 데에도 사용될 수 있다. 컴퓨터 시스템(600)은 필요에 따라 또는 적절한 경우에 하나 이상의 프로세서(610)를 포함할 수 있다.
버스(640)는 컴퓨터 시스템(600)의 다양한 컴포넌트들 사이의 상호작용을 가능하게 하는 통신 기반 구조를 포함할 수 있다. 버스(640)는 예를 들어, 컴퓨터 시스템(600)의 컴포넌트들 사이에, 예를 들어, 프로세서(610)와 메모리(620) 사이에 데이터를 운반할 수 있다. 버스(640)는 컴퓨터 시스템(600)의 컴포넌트들 간의 무선 및/또는 유선 통신 매체를 포함할 수 있으며, 병렬, 직렬 또는 다른 토폴로지 배열들을 포함할 수 있다.
영구 저장 장치(630)는 (예를 들어, 메모리(620)에 비해) 소정의 연장된 기간 동안 데이터를 저장하기 위해 컴퓨터 시스템(600)에 의해 사용되는 바와 같은 메모리 또는 다른 영구 저장 장치와 같은 컴포넌트들을 포함할 수 있다. 영구 저장 장치(630)는 컴퓨터 시스템(600) 내의 프로세서(610)에 의해 사용되는 바와 같은 비휘발성 메인 메모리를 포함할 수 있다. 영구 저장 장치(630)는 예를 들어, 플래시 메모리, 하드 디스크, 광 디스크 또는 다른 컴퓨터 판독 가능 매체를 포함할 수 있다.
입출력 인터페이스(650)는 키보드, 마우스, 음성 명령 입력, 디스플레이 또는 다른 입력 또는 출력 장치에 대한 인터페이스들을 포함할 수 있다. 구성 명령들 및/또는 GAN 기반 CF을 위한 입력이 입출력 인터페이스(650)를 통해 수신될 수 있다.
네트워크 인터페이스(660)는 근거리 네트워크 또는 인터넷과 같은 네트워크들에 대한 하나 이상의 인터페이스를 포함할 수 있다. 네트워크 인터페이스(660)는 유선 또는 무선 접속들에 대한 인터페이스들을 포함할 수 있다. 구성 명령들 및/또는 GAN 기반 CF을 위한 입력이 네트워크 인터페이스(660)를 통해 수신될 수 있다.
또한, 다른 실시예들에서 컴퓨터 시스템(600)은 도 6의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요는 없다. 예를 들어, 컴퓨터 시스템(600)은 상술한 입출력 인터페이스(650)와 연결되는 입출력 장치들 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
이러한 컴퓨터 시스템(600)을 통해 구현되는 실시예들을 통해서는, 데이터 희소성의 문제 및 데이터 편향의 문제에 의한 왜곡 없이 사용자의 선호도를 정확하게 추정할 수 있는, 사용자로부터의 평점과 같은 명시적 피드백 데이터에 대해 훈련된 GAN 기반 협업 필터링 프레임워크가 제공될 수 있다.
도 7 및 8을 참조하여, 실시예들에 따른 평점 증강 및 아이템 추천 방법에 대해 보다 자세하게 설명한다.
도 7은 일 실시예에 따른 아이템 추천 방법을 나타내는 흐름도이다.
도 7을 참조하여 컴퓨터 시스템(600)에 의해 수행되는, GAN에 기반한 아이템 추천 방법을 보다 자세하게 설명한다.
단계(710)에서, 프로세서(610)는 복수의 아이템들에 포함되는, 사용자에 의해 명시적 피드백(explicit feedback)이 부여되지 않은 아이템들 중에서 적어도 하나의 네거티브 아이템에 대한 바이어스 처리(bias treatment)를 수행할 수 있다.
단계(720)에서, 프로세서(610)는 바이어스 처리된 네거티브 아이템이 고려된, 복수의 아이템들에 대한 사용자와 연관된 명시적 피드백 데이터 세트를 사용하여 상기 GAN의 생성 모델(generative model) 및 판별 모델(discriminative model)을 훈련시킬 수 있다. GAN의 생성 모델 및 판별 모델은 각 사용자에 대해 개인화된 사용자-특정 정보에 따라 사용자에 대해 개인화되어 훈련될 수 있다. 따라서, 훈련된 생성 모델 및 판별 모델에는 사용자의 개별적인 특성이 반영될 수 있다.
"명시적 피드백"은 아이템에 대해 사용자에 의해 부여되는 평점을 나타낼 수 있다. 복수의 아이템들에 대한 사용자와 연관된 명시적 피드백 데이터 세트는 복수의 아이템들 각각에 대한 사용자가 부여한 평점을 각 엔트리로서 포함하는 사용자-평점 행렬에 대응할 수 있다(즉, 데이터 세트는 이러한 행렬 또는 행렬이 나타내는 데이터일 수 있다). 평점은 예컨대, 0 내지 5 사이의 값이거나, 0 내지 10 사이의 값에 대응할 수 있다.
프로세서(610)는, 단계(710)에서, 복수의 아이템들에 포함되는 사용자에 의해 평점이 부여되지 않은 아이템들 중에서 적어도 하나의 네거티브 아이템에 대한 바이어스 처리(bias treatment)를 수행할 수 있고, 단계(720)에서, 바이어스 처리된 네거티브 아이템이 고려된 복수의 아이템들에 대한 사용자와 연관된 사용자-평점 행렬을 사용하여 GAN의 생성 모델 및 판별 모델을 훈련시킬 수 있다.
바이어스 처리는, 복수의 아이템들에 대해 사용자에 의해 부여된 평점들의 상대적으로 더 높은 값으로의 편중됨에 의한, 훈련된 생성 모델의 복수의 아이템들의 각각에 대한 평점의 추정의 왜곡을 보정하는 것일 수 있다.
단계(730)에서, 프로세서(610)는 훈련된 생성 모델을 사용하여 사용자의 복수의 아이템들의 각각에 대한 사용자에 의한 명시적 피드백(예컨대, 평점)을 추정할 수 있다. 일례로, 생성 모델은 실수 값인 평점을 명시적 피드백으로서 추정할 수 있다. 판별 모델은 추정된 평점이 상기 사용자에 의해 부여된 실측 자료(ground truth)에 해당되는 것인지 혹은 상기 생성 모델에서 생성된 것인지를 판별할 수 있다. 프로세서(610)는 추정된 평점을 사용하여 사용자-평점 행렬의 값들을 업데이트함으로써 평점이 증강된 사용자-평점 행렬을 생성할 수 있다.
단계(740)에서, 프로세서(610)는 복수의 아이템들의 각각에 대해 추정된 명시적 피드백에 기반하여, 상기 복수의 아이템들 중 적어도 하나의 아이템을 상기 사용자에게 추천할 수 있다. 예컨대, 추천은 추정된 평점의 상위 N개의 아이템의 리스트를 사용자에 제공하는 것일 수 있다. 단계(740)에서는, 훈련된 생성 모델에 의해 추정된 복수의 아이템들의 각각에 대한 평점이 반영된 사용자-평점 행렬(즉, 평점이 증강된 사용자-평점 행렬)을 사용하여 훈련된 CF 모델에 의해 복수의 아이템들 중 적어도 하나의 아이템이 상기 사용자에게 추천될 수 있다.
말하자면, RAGANBT의 G 모델과 D 모델이 학습된 후, 학습이 완료된 G 모델을 이용하여 각 사용자에 대응되는 평점 벡터가 생성될 수 있고, 생성된 평점 벡터의 각 평점이 사용자-평점 행렬(예컨대, 사용자-상품 평점 행렬)의 빈 곳(예컨대, 희소성 엔트리)에 채워지게 된다. 이와 같이 증강된 행렬은 예컨대, SVD, AutoRec 등과 같은 추천 모델을 통해 학습될 수 있고, 학습된 추천 모델을 이용하여 아이템들에 대한 추천이 이루어질 수 있다.
평점의 바이어스(편향)를 처리하는 보다 자세한 방법에 대해서는 후술될 도 8을 참조하여 보다 상세하게 설명된다.
이상 도 1 내지 도 6을 참조하여 전술된 기술적 특징들에 대한 설명은 도 7에 대해서도 그대로 적용될 수 있는 바, 중복되는 설명은 생략한다.
도 8은 일 실시예에 따른 사용자로부터의 평점의 바이어스(편향)를 처리하는 방법을 나타내는 흐름도이다.
전술된 단계(710)에서의 바이어스 처리는 후술될 단계들(810 및 820)에 따라 수행될 수 있다.
단계(810)에서, 프로세서(610)는 사용자에 의해 평점이 부여되지 않은 아이템들에 대한 사용자의 암시적(implicit) 피드백 데이터에 기반하여, 복수의 아이템들 중 상기 적어도 하나의 네거티브 아이템을 식별할 수 있다. 암시적 피드백 데이터는 예컨대, 클릭 수, 북마크 및 평점 이력 중 적어도 하나를 포함할 수 있다.
프로세서(610)는 CF 모델을 사용하여, 복수의 아이템들 중 네거티브 아이템을 식별할 수 있다. CF 모델은 사용자의 암시적 피드백 데이터에 기반하여, 평점이 부여되지 않은 아이템들 중 사용자가 부정적인 선호도를 가지는 아이템(즉, 부정적인 선호도를 가질 것으로 추정되는 아이템)을 네거티브 아이템으로서 추정할 수 있다. CF 모델은 네거티브 아이템을 결정하기 위해 CDAE (Collaborative Denoising Auto-Encoder)를 사용할 수 있다. CDAE는 딥러닝 기반의 일-분류 협업 필터링(One-Class Collaborative Filtering; OCCF) 모델일 수 있다. 바이너리화된 복수의 아이템들에 대해 사용자에 의해 부여된 평점을 사용하여 CDAE는 훈련될 수 있고, 훈련된 CDAE에 의해 파악된 복수의 아이템들 각각에 대한 관심도에 기반하여 네거티브 아이템이 추정될 수 있다. 말하자면, CDAE의 학습 및 관심도의 추정을 위해 명시적 피드백(explicit feedback) 데이터를 바이너리화하여 이를 암시적 피드백(implicit feedback) 데이터의 형태로 변환한 후 CDAE를 학습시킬 수 있다(본원 도 3 참조). 관심도는 (아이템에 대한) 사용 전 선호도에 대응할 수 있고 이를 추정하는 것은 암시적 피드백을 이용하는 협업 필터링과 같은 것으로 간주될 수 있다.
네거티브 아이템은, 평점이 부여되지 않은 아이템들 각각에 대해 결정된 상기 사용자의 관심 점수에 기반하여, 관심 점수가 하위인 소정의 수 또는 소정의 비율에 해당하는 아이템으로서 결정될 수 있다. 관심 점수는 예컨대, 전술된 관심도일 수 있다.
단계(820)에서, 프로세서(610)는 식별된 네거티브 아이템에 대해 복수의 아이템들 중 나머지에 비해 상대적으로 더 낮은 평점을 부여할 수 있다. 예컨대, 프로세서(610)는, 네거티브 아이템과 연관된 상기 관심도를 더 낮은 평점에 대응하는 소정의 범위 내의 값으로 정규화함으로써(normalized), 네거티브 아이템에 상기 더 낮은 평점을 부여하고, 정규화된 관심도는 사용자-평점 행렬의 대응하는 엔트리에 삽입될 수 있다.
GAN의 생성 모델 및 판별 모델은 이러한 더 낮은 평점이 반영된 사용자-평점 행렬을 사용하여 훈련될 수 있다. 이에 따라, 생성 모델은 높은 값으로 편향되지 않는 평점을 생성(추정)할 수 있게 된다.
일례로, 단계(810)에서 설명한 바와 같은 CDAE의 학습이 완료되면, 각 사용자의 각 아이템에 대한 관심도가 파악될 수 있다. 그 다음으로, 파악된 관심도를 기준으로, 하위 S 퍼센트의 관심도 값을 갖는 사용자-아이템 페어가 도출될 수 있다. 예컨대, S=25이면 하위 25퍼센트의 관심도를 갖는 사용자-아이템 페어가 도출될 수 있다. 그 다음으로, 도출된 관심도는 0과 A 사이의 값으로 정규화될 수 있다. 이 때, A는 1부터 2 사이(즉, 낮은 평점에 대응하는 값의 범위)의 실수 값을 사용할 수 있다. 정규화된 관심도 값은 해당 사용자-아이템 페어에 대응되는 사용자-평점 행렬(사용자-아이템 평점 행렬)에 삽입될 수 있다. 삽입 과정의 완료 후 이러한 행렬을 이용하여 RAGAN이 학습될 수 있다. 이에 따라, 평점의 편향(바이어스)의 문제가 해결될 수 있는 RAGANBT가 구현될 수 있다.
이상 도 1 내지 도 7을 참조하여 전술된 기술적 특징들에 대한 설명은 도 8에 대해서도 그대로 적용될 수 있는 바, 중복되는 설명은 생략한다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (18)

  1. 컴퓨터 시스템에 의해 수행되는, GAN(generative adversarial network)에 기반한 아이템 추천 방법에 있어서,
    복수의 아이템들에 포함되는, 사용자에 의해 평점이 부여되지 않은 아이템들 중에서 적어도 하나의 네거티브 아이템에 대한 바이어스 처리(bias treatment)를 수행하는 단계;
    상기 바이어스 처리된 네거티브 아이템이 고려된, 상기 복수의 아이템들에 대한 상기 사용자와 연관된 사용자-평점 행렬을 사용하여 상기 GAN의 생성 모델(generative model) 및 판별 모델(discriminative model)을 훈련시키는 단계;
    상기 훈련된 생성 모델을 사용하여 상기 사용자의 상기 복수의 아이템들의 각각에 대한 상기 사용자에 의한 평점을 추정하는 단계;
    상기 추정된 평점을 사용하여 상기 사용자-평점 행렬의 값들을 업데이트함으로써 평점이 증강된 사용자-평점 행렬을 생성하는 단계; 및
    상기 증강된 사용자-평점 행렬을 사용하여, 상기 복수의 아이템들 중 적어도 하나의 아이템을 상기 사용자에게 추천하는 단계
    를 포함하는, 아이템 추천 방법.
  2. 제1항에 있어서,
    상기 사용자-평점 행렬은 상기 복수의 아이템들 각각에 대한 상기 사용자가 부여한 평점을 각 엔트리로서 포함하는, 아이템 추천 방법.
  3. 제1항에 있어서,
    상기 추정하는 단계에서 상기 생성 모델은 실수 값에 해당하는 평점을 추정하고,
    상기 판별 모델은 상기 추정된 평점이 상기 사용자에 의해 부여된 실측 자료(ground truth)에 해당되는 것인지 혹은 상기 생성 모델에서 생성된 것인지를 판별하는, 아이템 추천 방법.
  4. 제2항에 있어서,
    상기 바이어스 처리를 수행하는 단계는,
    상기 사용자에 의해 평점이 부여되지 않은 아이템들에 대한 상기 사용자의 암시적(implicit) 피드백 데이터에 기반하여, 상기 복수의 아이템들 중 상기 적어도 하나의 네거티브 아이템을 식별하는 단계; 및
    상기 식별된 네거티브 아이템에 대해 상기 복수의 아이템들 중 나머지에 비해 상대적으로 더 낮은 평점을 부여하는 단계
    를 포함하고,
    상기 GAN의 생성 모델(generative model) 및 판별 모델(discriminative model)은 상기 더 낮은 평점이 반영된 상기 사용자-평점 행렬을 사용하여 훈련되는, 아이템 추천 방법.
  5. 제4항에 있어서,
    상기 식별하는 단계는, 협업 필터링(Collaborative Filtering; CF) 모델을 사용하여, 상기 복수의 아이템들 중 상기 네거티브 아이템을 식별하고,
    상기 CF 모델은 상기 암시적(implicit) 피드백 데이터에 기반하여, 상기 평점이 부여되지 않은 아이템들 중 사용자가 부정적인 선호도를 가지는 아이템을 상기 네거티브 아이템으로서 추정하는, 아이템 추천 방법.
  6. 제5항에 있어서,
    상기 CF 모델은 CDAE (Collaborative Denoising Auto-Encoder)를 사용하고,
    바이너리화된 상기 복수의 아이템들에 대해 상기 사용자에 의해 부여된 평점을 사용하여 상기 CDAE가 훈련되고, 상기 훈련된 CDAE에 의해 파악된 상기 복수의 아이템들 각각에 대한 관심도에 기반하여 상기 네거티브 아이템이 추정되는, 아이템 추천 방법.
  7. 제6항에 있어서,
    상기 평점을 부여하는 단계는, 상기 네거티브 아이템과 연관된 상기 관심도를 상기 더 낮은 평점에 대응하는 소정의 범위 내의 값으로 정규화함으로써(normalized), 상기 네거티브 아이템에 상기 더 낮은 평점을 부여하고,
    상기 정규화된 관심도는 상기 사용자-평점 행렬의 대응하는 엔트리에 삽입되는, 아이템 추천 방법.
  8. 제4항에 있어서,
    상기 네거티브 아이템은, 상기 평점이 부여되지 않은 아이템들 각각에 대해 결정된 상기 사용자의 관심 점수에 기반하여, 상기 관심 점수가 하위인 소정의 수 또는 소정의 비율에 해당하는 아이템으로서 결정되는, 아이템 추천 방법.
  9. 제2항에 있어서,
    상기 바이어스 처리는, 상기 복수의 아이템들에 대해 상기 사용자에 의해 부여된 평점들의 상대적으로 더 높은 값으로의 편중에 의한 상기 훈련된 생성 모델의 상기 복수의 아이템들의 각각에 대한 평점의 추정의 왜곡을 보정하는, 아이템 추천 방법.
  10. 제1항에 있어서,
    상기 생성 모델 및 상기 판별 모델은 상기 사용자에 대해 개인화된 사용자-특정 정보에 따라 상기 사용자에 대해 개인화되어 훈련되는, 아이템 추천 방법.
  11. 제2항에 있어서,
    상기 추천하는 단계에서는, 상기 훈련된 생성 모델에 의해 추정된 상기 증강된 사용자-평점 행렬을 사용하여 훈련된 CF 모델에 의해 상기 복수의 아이템들 중 적어도 하나의 아이템이 상기 사용자에게 추천되는, 아이템 추천 방법.
  12. 제1항 내지 제11항 중 어느 한 항의 아이템 추천 방법을 컴퓨터에서 실행시키기 위해 컴퓨터 판독 가능 기록매체에 저장된 컴퓨터 프로그램.
  13. 제1항 내지 제11항 중 어느 한 항의 아이템 추천 방법을 컴퓨터에서 실행시키기 위한 프로그램이 기록되어 있는 컴퓨터 판독 가능 기록매체.
  14. 컴퓨터 시스템에 있어서,
    메모리; 및
    상기 메모리와 연결되고, 상기 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    복수의 아이템들에 포함되는, 사용자에 의해 평점이 부여되지 않은 아이템들 중에서 적어도 하나의 네거티브 아이템에 대한 바이어스 처리(bias treatment)를 수행하고,
    상기 바이어스 처리된 네거티브 아이템이 고려된, 상기 복수의 아이템들에 대한 상기 사용자와 연관된 사용자-평점 행렬을 사용하여 GAN(generative adversarial network)의 생성 모델(generative model) 및 판별 모델(discriminative model)을 훈련시키고,
    상기 훈련된 생성 모델을 사용하여 상기 사용자의 상기 복수의 아이템들의 각각에 대한 상기 사용자에 의한 평점을 추정하고,
    상기 추정된 평점을 사용하여 상기 사용자-평점 행렬의 값들을 업데이트함으로써 평점이 증강된 사용자-평점 행렬을 생성하고,
    상기 증강된 사용자-평점 행렬을 사용하여, 상기 복수의 아이템들 중 적어도 하나의 아이템을 상기 사용자에게 추천하는, 컴퓨터 시스템.
  15. 제14항에 있어서,
    상기 사용자-평점 행렬은 상기 복수의 아이템들 각각에 대한 상기 사용자가 부여한 평점을 각 엔트리로서 포함하는, 컴퓨터 시스템.
  16. 제15항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 사용자에 의해 평점이 부여되지 않은 아이템들에 대한 상기 사용자의 암시적(implicit) 피드백 데이터에 기반하여, 상기 복수의 아이템들 중 상기 적어도 하나의 네거티브 아이템을 식별하고,
    상기 식별된 네거티브 아이템에 대해 상기 복수의 아이템들 중 나머지에 비해 상대적으로 더 낮은 평점을 부여하고,
    상기 GAN의 생성 모델(generative model) 및 판별 모델(discriminative model)은 상기 더 낮은 평점이 반영된 상기 사용자-평점 행렬을 사용하여 훈련되는, 컴퓨터 시스템.
  17. 컴퓨터 시스템에 의해 수행되는, GAN(generative adversarial network)에 기반한 복수의 아이템들에 대한 사용자로부터의 평점을 증강(rating augmentation)시키는 방법에 있어서,
    상기 복수의 아이템들에 포함되는, 사용자에 의해 평점이 부여되지 않은 아이템들 중에서 적어도 하나의 네거티브 아이템에 대한 바이어스 처리(bias treatment)를 수행하는 단계;
    상기 바이어스 처리된 네거티브 아이템이 고려된, 상기 복수의 아이템들에 대한 상기 사용자와 연관된 사용자-평점 행렬을 사용하여 상기 GAN의 생성 모델(generative model) 및 판별 모델(discriminative model)을 훈련시키는 단계;
    상기 훈련된 생성 모델을 사용하여 상기 사용자의 상기 복수의 아이템들의 각각에 대한 상기 사용자에 의한 평점을 추정하는 단계; 및
    상기 추정된 평점을 사용하여 상기 사용자-평점 행렬의 값들을 업데이트함으로써 평점이 증강된 사용자-평점 행렬을 생성하는 단계
    를 포함하는, 사용자로부터의 평점을 증강시키는 방법.
  18. 제17항에 있어서,
    상기 증강된 사용자-평점 행렬을 사용하여 훈련된 CF 모델에 의해 상기 복수의 아이템들 중 적어도 하나의 아이템을 상기 사용자에게 추천하는 단계
    를 더 포함하는, 사용자로부터의 평점을 증강시키는 방법.
KR1020190026465A 2019-03-07 2019-03-07 생성적 적대 신경망에 기반한 평점 증강 및 아이템 추천 방법 및 시스템 KR102203253B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190026465A KR102203253B1 (ko) 2019-03-07 2019-03-07 생성적 적대 신경망에 기반한 평점 증강 및 아이템 추천 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190026465A KR102203253B1 (ko) 2019-03-07 2019-03-07 생성적 적대 신경망에 기반한 평점 증강 및 아이템 추천 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20200107389A KR20200107389A (ko) 2020-09-16
KR102203253B1 true KR102203253B1 (ko) 2021-01-14

Family

ID=72670211

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190026465A KR102203253B1 (ko) 2019-03-07 2019-03-07 생성적 적대 신경망에 기반한 평점 증강 및 아이템 추천 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102203253B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102494782B1 (ko) * 2020-09-22 2023-02-01 한양대학교 산학협력단 사용자와의 거리를 기반으로 한 아이템 추천 방법 및 장치
US20220253721A1 (en) * 2021-01-30 2022-08-11 Walmart Apollo, Llc Generating recommendations using adversarial counterfactual learning and evaluation
CN113987332B (zh) * 2021-09-18 2024-06-25 华中师范大学 一种推荐模型的训练方法、电子设备及计算机存储介质
US20230139824A1 (en) * 2021-11-04 2023-05-04 Adobe Inc. Media content enhancement based on user feedback of multiple variations
KR102468206B1 (ko) * 2021-12-22 2022-11-18 주식회사 모노라이트 뉴럴 네트워크를 이용한 크리에이팅 보조 방법, 그 방법을 수행하는 서버 및 단말기
CN117591750A (zh) * 2024-01-19 2024-02-23 北京博点智合科技有限公司 内容推荐模型的训练方法、内容推荐的方法及相关产品

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101843066B1 (ko) * 2017-08-23 2018-05-15 주식회사 뷰노 기계 학습에 있어서 데이터 확대를 이용하여 데이터의 분류를 수행하는 방법 및 이를 이용한 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101442122B1 (ko) * 2012-12-10 2014-10-07 서울대학교산학협력단 콘텐츠 추천 장치 및 방법
KR101804170B1 (ko) * 2016-02-18 2017-12-05 한양대학교 산학협력단 비관심 아이템을 활용한 아이템 추천 방법 및 장치
KR102070049B1 (ko) * 2017-08-08 2020-04-01 한국과학기술원 보조정보를 이용하는 조건부 변분 오토인코더 기반의 협업 필터링 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101843066B1 (ko) * 2017-08-23 2018-05-15 주식회사 뷰노 기계 학습에 있어서 데이터 확대를 이용하여 데이터의 분류를 수행하는 방법 및 이를 이용한 장치

Also Published As

Publication number Publication date
KR20200107389A (ko) 2020-09-16

Similar Documents

Publication Publication Date Title
KR102203253B1 (ko) 생성적 적대 신경망에 기반한 평점 증강 및 아이템 추천 방법 및 시스템
CN109902222B (zh) 一种推荐方法及装置
US20220229981A1 (en) Generating message effectiveness predictions and insights
US10614381B2 (en) Personalizing user experiences with electronic content based on user representations learned from application usage data
CN109902706B (zh) 推荐方法及装置
US10489688B2 (en) Personalized digital image aesthetics in a digital medium environment
CN112313697A (zh) 用于生成描述角度增强的可解释的基于描述的推荐的***和方法
KR102203252B1 (ko) 생성적 적대 신경망에 기반한 협업 필터링을 위한 방법 및 시스템
US11403532B2 (en) Method and system for finding a solution to a provided problem by selecting a winner in evolutionary optimization of a genetic algorithm
CN110663049B (zh) 神经网络优化器搜索
CN112074857A (zh) 组合机器学习和社交数据以生成个性化推荐
US20150161529A1 (en) Identifying Related Events for Event Ticket Network Systems
KR20180011221A (ko) 비디오들에 대해 대표 비디오 프레임들 선택
CN112149824B (zh) 利用博弈论更新推荐模型的方法及装置
CN110879864A (zh) 一种基于图神经网络和注意力机制的上下文推荐方法
WO2023000491A1 (zh) 一种应用推荐方法、装置、设备及计算机可读存储介质
CN113656699B (zh) 用户特征向量确定方法、相关设备及介质
CN109582802B (zh) 一种实体嵌入方法、装置、介质及设备
CN117056595A (zh) 一种交互式的项目推荐方法、装置及计算机可读存储介质
CN110909146A (zh) 用于推送反问标签的标签推送模型训练方法、装置及设备
KR20200142871A (ko) 명시적 및 내연적 평가 정보를 이용한 아이템 추천 방법 및 장치
US20220405531A1 (en) Blackbox optimization via model ensembling
WO2019160691A1 (en) System and method for client application user acquisition
CN114463590A (zh) 信息处理方法、装置、设备、存储介质及程序产品
CN111400512A (zh) 一种筛选多媒体资源的方法及装置

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right