KR102586569B1 - 아이템 임베딩 장치 및 방법 - Google Patents

아이템 임베딩 장치 및 방법 Download PDF

Info

Publication number
KR102586569B1
KR102586569B1 KR1020200151377A KR20200151377A KR102586569B1 KR 102586569 B1 KR102586569 B1 KR 102586569B1 KR 1020200151377 A KR1020200151377 A KR 1020200151377A KR 20200151377 A KR20200151377 A KR 20200151377A KR 102586569 B1 KR102586569 B1 KR 102586569B1
Authority
KR
South Korea
Prior art keywords
item
embedding
vector
sequences
recommendation
Prior art date
Application number
KR1020200151377A
Other languages
English (en)
Other versions
KR20220064833A (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 KR1020200151377A priority Critical patent/KR102586569B1/ko
Publication of KR20220064833A publication Critical patent/KR20220064833A/ko
Application granted granted Critical
Publication of KR102586569B1 publication Critical patent/KR102586569B1/ko

Links

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/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/69Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Finance (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

아이템 임베딩 장치 및 방법이 개시된다. 일 실시예에 따른 아이템 임베딩 방법은, 사전 학습된 아이템 추천 모델에 복수의 아이템 시퀀스(item sequence)를 입력하여 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 획득하는 동작; 복수의 아이템 시퀀스 중 제1 그룹의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터 및 아이템 추천 모델의 학습 파라미터 값에 기초하여 임베딩 추론 모듈을 학습시키는 동작; 및 학습된 임베딩 추론 모듈에 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 입력하여 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 추론하는 동작을 포함한다.

Description

아이템 임베딩 장치 및 방법{APPARATUS AND METHOD FOR EMBEDDING ITEM}
개시되는 실시예들은 효과적인 협업 필터링(CF; Collaborative Filtering)을 위해, 사용자에게 추천하고자 하는 아이템에 대한 임베딩을 수행하는 기술과 관련된다.
협업 필터링(CF; Collaborative Filtering)은 사용자들로부터 기호에 관련된 정보를 획득하여 사용자들의 관심사를 자동으로 예측하는 방법으로, 영화, 음악, 게임 등 다양한 아이템을 사용자들에게 추천함에 있어 각광받는 기술이다.
그런데, 최근 인공지능(AI; Artificial Intelligence)의 급속한 발전에 힘입어 협업 필터링에 인공지능을 접목하려는 시도가 많이 이루어지고 있다. 즉, 인공지능을 이용하여 협업 필터링을 위한 모델을 학습함으로써, 모델이 사용자들이 보다 필요로 하는 아이템을 추천하게끔 하려는 것이다.
그러나, 다양한 아이템 중에는 사용자가 많이 소비한 대중적인 아이템 뿐만 아니라 매니아 층을 겨냥한 니치 아이템 역시 있을 것인데, 이런 니치 아이템과 관련된 학습 데이터가 워낙 적다 보니, 인공지능을 통한 모델의 학습이 제대로 이루어지기 어려웠고, 결국 모델은 사용자에게 대중적인 아이템들을 주로 추천하게 되는 한계가 있었다.
대한민국 공개특허공보 제10-2020-0116760호(2020.10.13. 공개)
개시되는 실시예들은 협업 필터링을 위한 효과적인 아이템 임베딩 수단을 제공하기 위한 것이다.
개시되는 일 실시예에 따른 아이템 임베딩 방법은, 사전 학습된 아이템 추천 모델에 복수의 아이템 시퀀스(item sequence)를 입력하여 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 획득하는 동작; 복수의 아이템 시퀀스 중 제1 그룹의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터 및 아이템 추천 모델의 학습 파라미터 값에 기초하여 임베딩 추론 모듈을 학습시키는 동작; 및 학습된 임베딩 추론 모듈에 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 입력하여 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 추론하는 동작을 포함한다.
제1 그룹의 아이템 시퀀스는, 기 설정된 인기 아이템 및 사용자의 아이템 컨텍스트 상에서 인기 아이템과 함께 소비된 일련의 아이템들을 포함하는 아이템 시퀀스일 수 있다.
아이템 추천 모델은, 복수의 아이템 시퀀스를 입력 받아 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 생성하는 아이템 임베딩 레이어; 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터에 기초하여 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터와 각각 대응되는 현재 시점에서의 사용자 상태 벡터를 생성하는 시퀀스 모델링 레이어; 및 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터 및 사용자 상태 벡터에 기초하여 다음 시점에서의 복수의 추천 후보 아이템에 대한 확률 벡터를 생성하는 아이템 추천 레이어를 포함할 수 있다.
임베딩 추론 모듈은, 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 입력 받아 복수의 아이템 시퀀스 각각에 대응되는 복수의 컨텍스트 표현 벡터를 생성하는 컨텍스트 해석부; 및 복수의 컨텍스트 표현 벡터에 기초하여 복수의 추천 후보 아이템을 결정하고, 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 출력하는 집계부를 포함할 수 있다.
컨텍스트 해석부는, 트랜스포머(Transformer) 기반 네트워크 구조 또는 순환신경망(RNN; Recurrent Neural Network) 기반 네트워크 구조를 포함할 수 있다.
학습시키는 동작은, 제1 그룹의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 임베딩 추론 모듈에 입력하되, 입력되는 임베딩 벡터 중 기 설정된 인기 아이템 각각에 대한 임베딩 벡터를 정답으로 하여 임베딩 추론 모듈의 학습 파라미터 중 적어도 일부를 갱신할 수 있다.
학습시키는 동작은, 제1 그룹의 아이템 시퀀스 중 기 설정된 개수만큼 샘플링된 아이템 시퀀스에 기초하여 임베딩 추론 모듈을 퓨 샷 학습(Few-shot Learning)시킬 수 있다.
추가적인 실시예에 따른 아이템 임베딩 방법은, 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 아이템 추천 모델에 입력하여 복수의 추천 후보 아이템 중 추천 아이템을 결정하는 동작을 더 포함할 수 있다.
결정하는 동작은, 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터에 기초하여 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터와 대응되는 현재 시점에서의 사용자 상태 벡터를 생성하는 동작; 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터 및 사용자 상태 벡터에 기초하여 다음 시점에서의 복수의 추천 후보 아이템에 대한 확률 벡터를 생성하는 동작; 및 복수의 추천 후보 아이템에 대한 확률 벡터의 각 원소가 나타내는 확률 값 중 최대 확률 값에 대응되는 아이템을 추천 아이템으로 결정하는 동작을 포함할 수 있다.
개시되는 일 실시예에 따른 아이템 임베딩 장치는, 하나 이상의 프로세서; 및 하나 이상의 프로세서에 의해 실행되도록 구성되는 하나 이상의 프로그램을 저장하는 메모리를 포함하는 장치로서, 프로그램은, 사전 학습된 아이템 추천 모델에 복수의 아이템 시퀀스(item sequence)를 입력하여 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 획득하는 동작; 복수의 아이템 시퀀스 중 제1 그룹의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터 및 아이템 추천 모델의 학습 파라미터 값에 기초하여 임베딩 추론 모듈을 학습시키는 동작; 및 학습된 임베딩 추론 모듈에 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 입력하여 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 추론하는 동작을 실행하기 위한 명령어들을 포함한다.
제1 그룹의 아이템 시퀀스는, 기 설정된 인기 아이템 및 사용자의 아이템 컨텍스트 상에서 인기 아이템과 함께 소비된 일련의 아이템들을 포함하는 아이템 시퀀스일 수 있다.
아이템 추천 모델은, 복수의 아이템 시퀀스를 입력 받아 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 생성하는 아이템 임베딩 레이어; 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터에 기초하여 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터와 각각 대응되는 현재 시점에서의 사용자 상태 벡터를 생성하는 시퀀스 모델링 레이어; 및 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터 및 사용자 상태 벡터에 기초하여 다음 시점에서의 복수의 추천 후보 아이템에 대한 확률 벡터를 생성하는 아이템 추천 레이어를 포함할 수 있다.
임베딩 추론 모듈은, 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 입력 받아 복수의 아이템 시퀀스 각각에 대응되는 복수의 컨텍스트 표현 벡터를 생성하는 컨텍스트 해석부; 및 복수의 컨텍스트 표현 벡터에 기초하여 복수의 추천 후보 아이템을 결정하고, 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 출력하는 집계부를 포함할 수 있다.
컨텍스트 해석부는, 트랜스포머(Transformer) 기반 네트워크 구조 또는 순환신경망(RNN; Recurrent Neural Network) 기반 네트워크 구조를 포함할 수 있다.
학습시키는 동작은, 제1 그룹의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 임베딩 추론 모듈에 입력하되, 입력되는 임베딩 벡터 중 기 설정된 인기 아이템 각각에 대한 임베딩 벡터를 정답으로 하여 임베딩 추론 모듈의 학습 파라미터 중 적어도 일부를 갱신할 수 있다.
학습시키는 동작은, 제1 그룹의 아이템 시퀀스 중 기 설정된 개수만큼 샘플링된 아이템 시퀀스에 기초하여 임베딩 추론 모듈을 퓨 샷 학습(Few-shot Learning)시킬 수 있다.
추가적인 실시예에 따른 아이템 임베딩 장치는, 하나 이상의 프로세서; 및 하나 이상의 프로세서에 의해 실행되도록 구성되는 하나 이상의 프로그램을 저장하는 메모리를 포함하는 장치로서, 프로그램은, 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 아이템 추천 모델에 입력하여 복수의 추천 후보 아이템 중 추천 아이템을 결정하는 동작을 실행하기 위한 명령어들을 더 포함할 수 있다.
결정하는 동작은, 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터에 기초하여 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터와 대응되는 현재 시점에서의 사용자 상태 벡터를 생성하는 동작; 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터 및 사용자 상태 벡터에 기초하여 다음 시점에서의 복수의 추천 후보 아이템에 대한 확률 벡터를 생성하는 동작; 및 복수의 추천 후보 아이템에 대한 확률 벡터의 각 원소가 나타내는 확률 값 중 최대 확률 값에 대응되는 아이템을 추천 아이템으로 결정하는 동작을 포함할 수 있다.
개시되는 실시예들에 따르면, 대중적인 아이템의 임베딩 벡터에 기초하여 학습된 임베딩 추론 모듈을 이용하여 니치 아이템의 임베딩 벡터를 추론함으로써, 니치 아이템과 관련된 학습 데이터가 부족한 경우에도 아이템 추천의 정확도를 향상시킬 수 있다.
또한 개시되는 실시예들에 따르면, 추론된 니치 아이템의 임베딩 벡터를 다시 사전 학습된 아이템 추천 모델의 입력으로 사용함으로써, 대중적인 아이템의 추천에 사용되는 모델 구조와의 호환성을 제고할 수 있다.
도 1은 일 실시예에 따른 아이템 임베딩 시스템을 설명하기 위한 블록도
도 2는 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
도 3은 일 실시예에 따른 아이템 추천 모델을 설명하기 위한 블록도
도 4는 일 실시예에 따른 임베딩 추론 모듈을 설명하기 위한 블록도
도 5는 일 실시예에 따른 아이템 추천 과정을 개괄적으로 설명하기 위한 블록도
도 6은 일 실시예에 따른 아이템 임베딩 방법을 설명하기 위한 흐름도
도 7은 일 실시예에 따른 아이템 임베딩을 이용한 추천 아이템 결정 방법을 설명하기 위한 흐름도
도 8은 일 실시예에 따른 추천 아이템 결정 방법을 보다 상세히 설명하기 위한 흐름도
이하, 도면을 참조하여 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 개시되는 실시예들은 이에 제한되지 않는다.
실시예들을 설명함에 있어서, 관련된 공지기술에 대한 구체적인 설명이 개시되는 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 개시되는 실시예들에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 일 실시예에 따른 아이템 임베딩 시스템(100)을 설명하기 위한 블록도이다.
도시된 바와 같이, 일 실시예에 따른 아이템 임베딩 시스템(100)은 아이템 임베딩 장치(110), 아이템 추천 모델(120) 및 임베딩 추론 모듈(130)을 포함한다.
아이템 임베딩 장치(110)는 아이템 임베딩이 보다 효과적으로 수행되도록 아이템 추천 모델(120) 및 임베딩 추론 모듈(130)을 이용하는 장치이다.
이하의 실시예들에서, '아이템 임베딩'이란 아이템 추천 서비스의 제공자가 사용자에게 아이템 추천 서비스를 제공하기 위해 필수적으로 선행되어야 하는 작업으로서, 아이템 각각을 컴퓨팅 장치에서 식별할 수 있는 임베딩 벡터(Embedding vector)의 형태로 변환하는 작업을 의미한다.
구체적으로, 아이템 임베딩 장치(110)는 아이템 추천 모델(120)이 사용자의 아이템 선택 이력을 고려하여 사용자에게 아이템을 추천함에 있어서, 대중적인 아이템 뿐만 아니라 매니아 층이 형성된 니치 아이템(niche item)을 시의 적절하게 추천함으로써 사용자가 보다 만족도 높은 아이템 추천 서비스를 제공받을 수 있도록 한다.
예를 들어, '강아지'에 관심이 있는 사용자가 강아지에 관련된 영화 A와 영화 B를 시청한 경우, 이 사용자에게 강아지에 관한 매우 유명한 영화 C를 추천하는 것은 일견 적절해 보일 수 있다. 그러나, 만약 이 사용자가 영화 C를 이미 시청했다면, 또다시 영화 C를 추천하는 것은 영화 추천 서비스에 대한 사용자의 신뢰 및 만족도를 떨어뜨리는 요인이 될 것이다. 따라서, 보다 효과적인 영화 추천 서비스를 제공하기 위해서는, 이 사용자의 영화 시청 이력을 바탕으로 잘 알려지지는 않았지만 강아지에 관심이 있는 사용자들에게 높은 평점을 받은 영화 D를 추천하는 것이 적절할 것이다.
본래, 아이템 추천 모델은 아이템 추천 서비스를 제공하기 위해서 사전에 사용자의 아이템 선택 이력을 학습 데이터로 삼아 학습되는데, 대중적인 아이템과 관련된 선택 이력은 많이 존재하지만 니치 아이템과 관련된 선택 이력은 상대적으로 적으므로, 종래 아이템 추천 모델은 니치 아이템의 임베딩을 위해 충분히 학습되기 어려웠고, 자연히 니치 아이템을 높은 정확도로 추천하는 데 어려움이 있었다.
이를 극복하기 위해, 아이템 임베딩 장치(110)는 아이템 추천 모델(120)이 대중적인 아이템의 임베딩에 대해서는 충분히 학습된다는 점을 이용하여, 사전 학습된 아이템 추천 모델(120)이 생성한 대중적인 아이템에 대한 임베딩 벡터를 학습 데이터로 삼아 임베딩 추론 모듈(130)을 학습시키고, 이렇게 학습된 임베딩 추론 모듈(130)로 하여금 니치 아이템의 임베딩 벡터를 효과적으로 추론하도록 함으로써 니치 아이템에 대한 아이템 추천 서비스의 정확도를 향상시킬 수 있다.
아이템 추천 모델(120)은 아이템 각각을 임베딩 벡터의 형태로 변환하고, 여러 아이템에 대한 현재 시점까지의 사용자의 사용 이력을 고려하여 사용자에게 추천할 다음 시점에서의 추천 아이템을 결정하는 장치이다.
구체적으로, 아이템 추천 모델(120)은 아이템 각각을 임베딩 벡터의 형태로 변환하는 세부 모델, 여러 아이템에 대한 현재 시점까지의 사용자의 사용 이력을 고려하는 세부 모델 및 다음 시점에서의 추천 아이템을 결정하는 세부 모델을 포함할 수 있다.
일 실시예에 따르면, 아이템 추천 모델(120)을 구성하는 각 세부 모델은 각각 인공신경망(ANN; Artificial Neural Network) 기반의 네트워크 구조를 포함할 수 있다.
일 실시예에 따르면, 아이템 추천 모델(120)을 구성하는 각 세부 모델 중 적어도 일부는 아이템 임베딩 장치(110)와의 통신에 앞서 사전 학습될 수 있고, 이때 사전 학습에 이용되는 사용자가 선택한 일련의 아이템에 관한 정보는 아이템 추천 모델(120) 내부 또는 외부에 별도로 마련된 데이터베이스(미도시)에 기 저장된 데이터일 수 있다.
일 실시예에 따르면, 아이템 추천 모델(120)은 기 정의된 손실 함수(loss function)가 감소하는 방향으로 사전 학습될 수 있으며, 이때 손실 함수는 아이템 추천 모델(120)이 결정한 추천 아이템이 기 설정된 정답 아이템일 확률과 반비례하도록 정의된 함수일 수 있다.
예를 들어, 아이템 추천 모델(120)의 학습을 위한 손실 함수로는 Negative log-likelihood 손실 함수 또는 Bayesian personalized ranking 손실 함수가 이용될 수 있으나, 반드시 이에 한정되는 것은 아니다.
일 실시예에 따르면, 아이템 추천 모델(120)의 학습을 위해 레이어 정규화(layer normalization) 및 드롭아웃(dropout) 기법 중 적어도 어느 하나가 적용될 수 있으나, 아이템 추천 모델(120)의 학습 시 적용되는 기법은 이에 한정되는 것은 아니다.
임베딩 추론 모듈(130)은 여러 아이템 각각에 대한 임베딩 벡터를 입력으로 받아, 현재 시점까지의 사용자들의 아이템 선택 이력을 고려했을 때 다음 시점에서 사용자에게 추천할 여러 추천 후보 아이템 각각의 임베딩 벡터를 추론하는 장치이다.
일 실시예에 따르면, 임베딩 추론 모듈(130)은 기능별로 구분된 복수의 세부 모듈로 구성될 수 있으며, 각 세부 모듈은 인공신경망 기반의 네트워크 구조를 포함할 수 있다.
구체적으로, 임베딩 추론 모듈(130)을 구성하는 복수의 세부 모듈 중 적어도 일부는 추천 후보 아이템 각각의 임베딩 벡터를 추론하기에 앞서 아이템 추천 모델(120)이 생성한 대중적인 아이템에 대한 임베딩 벡터를 학습 데이터로 삼아 학습될 수 있다.
이하에서는, 도 1을 참조하여 아이템 임베딩 장치(110)가 아이템 추천 모델(120) 및 임베딩 추론 모듈(130)을 이용하여 효과적으로 아이템 임베딩을 수행하는 과정을 상세히 설명하기로 한다. 아울러 설명의 편의를 위해, 상술한 '대중적인 아이템'을 '인기 아이템'으로 명명하고, 아이템에 관련된 '선택 이력'을 '컨텍스트'로 명명하도록 한다.
아이템 임베딩 장치(110)는 사전 학습된 아이템 추천 모델(120)에 복수의 아이템 시퀀스를 입력하여 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 획득한다.
이하의 실시예들에서, '아이템 시퀀스(item sequence)'는 여러 사용자들이 선택한 이력에 따라 정렬된 일련의 아이템들에 대한 정보를 의미한다. 예를 들어, 사용자들이 '맥주'와 함께 소비한 아이템으로 구성된 아이템 시퀀스는 '팝콘-피자-맥주-땅콩-핫도그' 또는 '숯불-텐트-버너-장작-맥주' 등일 수 있다. 이러한 아이템 시퀀스는 사전에 여러 사용자들이 어떠한 환경에서 일련의 아이템을 선택 또는 소비했는지에 따라 다양하게 구성될 수 있음에 유의해야 한다.
이어서, 아이템 임베딩 장치(110)는 복수의 아이템 시퀀스 중 제1 그룹의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터 및 아이템 추천 모델(120)의 학습 파라미터 값에 기초하여 임베딩 추론 모듈(130)을 학습시킨다.
일 실시예에 따르면, 제1 그룹의 아이템 시퀀스는, 기 설정된 인기 아이템 및 사용자의 아이템 소비 컨텍스트 상에서 인기 아이템과 함께 소비된 일련의 아이템들을 포함하는 아이템 시퀀스일 수 있다.
일 실시예에 따르면, 아이템 임베딩 장치(110)는 제1 그룹의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 임베딩 추론 모듈(130)에 입력하되, 입력되는 임베딩 벡터 중 기 설정된 인기 아이템 각각에 대한 임베딩 벡터를 정답으로 하여 임베딩 추론 모듈(130)의 학습 파라미터 중 적어도 일부를 갱신할 수 있다.
구체적으로, 아이템 임베딩 장치(110)는 기 설정된 인기 아이템 각각에 대해 임베딩 추론 모듈(130)이 추론한 임베딩 벡터와 정답으로 설정된 해당 인기 아이템의 임베딩 벡터를 인수로 갖는 손실 함수(loss function)의 값이 감소하는 방향으로 임베딩 추론 모듈(130)의 학습 파라미터 중 적어도 일부를 갱신할 수 있다.
일 실시예에 따르면, 아이템 임베딩 장치(110)는 제1 그룹의 아이템 시퀀스 중 기 설정된 개수만큼의 아이템 시퀀스를 샘플링할 수 있다.
예를 들어, 아이템 임베딩 장치(110)는 제1 그룹의 아이템 시퀀스 중 기 설정된 니치 아이템에 관련된 아이템 시퀀스의 개수와 동일한 개수만큼의 아이템 시퀀스를 샘플링할 수 있다.
구체적으로, 아이템 임베딩 장치(110)는 제1 그룹의 아이템 시퀀스 중 일부를 샘플링함에 있어서, 매 학습 에폭(epoch)마다 기 설정된 범위 내의 자연수 중 하나를 무작위로 선택하여, 선택된 수만큼의 아이템 시퀀스를 샘플링할 수 있다.
또한 일 실시예에 따르면, 아이템 임베딩 장치(110)는 샘플링된 아이템 시퀀스에 기초하여 임베딩 추론 모듈(130)을 퓨 샷 학습(Few-shot learning)시킬 수 있다.
이하의 실시예들에서, '퓨 샷 학습'은 학습에 필요한 데이터의 수가 적은 경우, 데이터의 일부를 모델의 학습에 사용하는 서포트 데이터(support data)와 테스트에 사용하는 쿼리 데이터(query data)로 구분하여, 모델이 예측하는 방법을 학습하도록 하는 메타 학습(meta learning)을 의미한다.
구체적으로, 아이템 임베딩 장치(110)는 거리 학습(metric learning) 기반 방식 또는 그래프 신경망(GNN; Graph Neural Network) 기반 방식을 이용하여 임베딩 추론 모듈(130)을 퓨 샷 학습시킬 수 있다.
이어서, 아이템 임베딩 장치(110)는 학습된 임베딩 추론 모듈(130)에 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 입력하여 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 추론한다.
이어서, 실시예에 따라서는, 아이템 임베딩 장치(110)는 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 아이템 추천 모델(120)에 입력하여 아이템 추천 모델(120)로 하여금 복수의 추천 후보 아이템 중 추천 아이템을 결정하도록 할 수 있다.
구체적으로, 아이템 임베딩 장치(110)에 의해 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 입력 받은 아이템 추천 모델(120)은 다음의 과정을 통해 추천 아이템을 결정할 수 있다.
(1) 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터에 기초하여 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터와 대응되는 현재 시점에서의 사용자 상태 벡터를 생성
(2) 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터 및 생성된 사용자 상태 벡터에 기초하여 다음 시점에서의 복수의 추천 후보 아이템에 대한 확률 벡터를 생성
(3) 복수의 추천 후보 아이템에 대한 확률 벡터의 각 원소가 나타내는 확률 값 중 최대 확률 값에 대응되는 아이템을 추천 아이템으로 결정
일 실시예에 따르면, 임베딩 장치(110), 아이템 추천 모델(120) 및 임베딩 추론 모듈(130)을 포함한 아이템 임베딩 시스템(100) 내의 각 구성은 유/무선의 통신 네트워크를 통해 아이템 임베딩에 필요한 일련의 정보를 송수신할 수 있다.
이‹š, 통신 네트워크는 인터넷, 하나 이상의 로컬 영역 네트워크(local area networks), 광역 네트워크(wire area networks), 셀룰러 네트워크, 모바일 네트워크, 그 밖에 다른 종류의 네트워크들, 또는 이러한 네트워크들의 조합을 포함할 수 있다.
도시된 실시예에서, 각 구성들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 구성을 포함할 수 있다.
또한, 일 실시예에서, 아이템 임베딩 장치(110), 아이템 추천 모델(120) 및 임베딩 추론 모듈(130)은 물리적으로 구분된 하나 이상의 장치를 이용하여 구현되거나, 하나 이상의 프로세서 또는 하나 이상의 프로세서 및 소프트웨어의 결합에 의해 구현될 수 있으며, 도시된 예와 달리 구체적 동작에 있어 명확히 구분되지 않을 수 있다.
도 2는 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 아이템 임베딩 장치(100)일 수 있다. 또한, 컴퓨팅 장치(12)는 아이템 추천 모델(120)일 수 있다. 또한, 컴퓨팅 장치(12)는 임베딩 추론 모듈(130)일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
도 3은 일 실시예에 따른 아이템 추천 모델(120)을 설명하기 위한 블록도이다.
도시된 바와 같이, 일 실시예에 따른 아이템 추천 모델(120)은 아이템 임베딩 레이어(121), 시퀀스 모델링 레이어(122) 및 아이템 추천 레이어(123)를 포함한다.
아이템 임베딩 레이어(121)는 복수의 아이템 시퀀스를 입력 받아 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 생성할 수 있다.
일 실시예에 따르면, 아이템 임베딩 레이어(121)는 아이템과 임베딩 벡터를 매핑하는 임베딩 룩업 행렬(Embedding lookup matrix)를 포함할 수 있다.
한편 일 실시예에 따르면, 아이템 임베딩 레이어(121)는 아이템 시퀀스 각각에서 각 아이템의 위치에 대한 정보를 획득하기 위해, 각 아이템의 위치에 대한 정보를 임베딩 벡터의 원소 중 일부와 매핑하는 포지셔널 임베딩 행렬(Positional embedding matrix)를 포함할 수 있다.
시퀀스 모델링 레이어(122)는 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터에 기초하여, 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터와 각각 대응되는 현재 시점에서의 사용자 상태 벡터를 생성할 수 있다.
일 실시예에 따르면, 시퀀스 모델링 레이어(122)는 순차적 심층신경망(sequential deep neural network) 기반의 네트워크 구조를 포함할 수 있다.
구체적으로, 시퀀스 모델링 레이어(122)는 트랜스포머(Transformer) 기반 네트워크 구조 또는 순환신경망(RNN; Recurrent Neural Network) 기반 네트워크 구조를 포함할 수 있다.
예를 들어, 시퀀스 모델링 레이어(122)는 트랜스포머 기반 네트워크 구조의 일 예로서 BERT(Bidirectional Encoder Representation from Transformers) 기반 네트워크 구조를 포함할 수 있다.
일 실시예에 따르면, 시퀀스 모델링 레이어(122)가 BERT 기반 네트워크 구조에 기초하여 구현되는 경우, 시퀀스 모델링 레이어(122)는 복수의 적층된 셀프 어텐션 레이어(self-attention layer) 및 활성화 함수 레이어(activation function layer)를 포함할 수 있다.
구체적으로, 복수의 적층된 셀프 어텐션 레이어는 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 입력으로 하여 현재 시점에서의 사용자 상태에 관해 추출한 정보를 포함하는 은닉 표현(hidden representation) 벡터를 출력할 수 있다.
이어서, 활성화 함수 레이어는 은닉 표현 벡터에 가중치(weight) 및 바이어스(bias)를 적용하여, 현재 시점에서의 사용자 상태 벡터를 출력할 수 있다.
일 실시예에 따르면, 복수의 적층된 셀프 어텐션 레이어 각각은 두 종류의 서브 레이어-멀티 헤드 어텐션 레이어(MHA layer; Multi-Head Attention layer) 및 포지션 와이즈 피드 포워드 레이어(PWFF layer; Position-Wise Feed Forward layer)-로 구성될 수 있다.
한편 일 실시예에 따르면, 활성화 함수 레이어에서 적용되는 활성화 함수는 GELU(Gaussian Error Linear-Unit) 일 수 있다.
아이템 추천 레이어(123)는 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터 및 생성된 사용자 상태 벡터에 기초하여, 다음 시점에서의 복수의 추천 후보 아이템에 대한 확률 벡터를 생성할 수 있다.
일 실시예에 따르면, 아이템 추천 레이어(123)는 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터와 사용자 상태 벡터를 내적(inner product)하여 다음 시점에서의 복수의 추천 후보 아이템에 대한 확률 벡터를 생성할 수 있다.
도시된 실시예에서, 각 구성들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 구성을 포함할 수 있다.
또한, 일 실시예에서, 아이템 임베딩 레이어(121), 시퀀스 모델링 레이어(122) 및 아이템 추천 레이어(123)는 물리적으로 구분된 하나 이상의 장치를 이용하여 구현되거나, 하나 이상의 프로세서 또는 하나 이상의 프로세서 및 소프트웨어의 결합에 의해 구현될 수 있으며, 도시된 예와 달리 구체적 동작에 있어 명확히 구분되지 않을 수 있다.
도 4는 일 실시예에 따른 임베딩 추론 모듈(130)을 설명하기 위한 블록도이다.
도시된 바와 같이, 일 실시예에 따른 임베딩 추론 모듈(130)은 컨텍스트 해석부(131) 및 집계부(132)를 포함한다.
컨텍스트 해석부(131)는 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 입력 받아, 복수의 아이템 시퀀스 각각에 대응되는 복수의 컨텍스트 표현 벡터를 생성한다.
이하의 실시예들에서, '컨텍스트 표현 벡터'는 컨텍스트 해석부(131)로 입력된 임베딩 벡터가 컨텍스트 해석부(131) 내 일부 은닉층(hidden layer)을 거쳐 출력된 은닉 표현 벡터를 의미한다. 이로써, 컨텍스트 표현 벡터 각각은 대응되는 각 아이템 시퀀스 내 아이템의 순서(위치) 및 종류에 대한 정보를 포함할 수 있다.
일 실시예에 따르면, 컨텍스트 해석부(131)는 시퀀스 모델링 레이어(122)에 포함된 네트워크 구조 중 적어도 일부와 동일한 네트워크 구조를 포함할 수 있다.
구체적으로, 컨텍스트 해석부(131)는 트랜스포머 기반 네트워크 구조를 포함할 수 있다. 예를 들어, 컨텍스트 해석부(131)는 BERT 기반 네트워크 구조를 포함할 수 있다.
한편 구체적으로, 컨텍스트 해석부(131)는 순환신경망 기반 네트워크 구조를 포함할 수 있다. 예를 들어, 컨텍스트 해석부(131)는 GRU(Gated Recurrent Units) 기반 네트워크 구조를 포함할 수 있다.
일 실시예에 따르면, 컨텍스트 해석부(131)의 학습을 위한 학습 파라미터의 종류 및 각 학습 파라미터의 값은 상술한 시퀀스 모델링 레이어(122)의 사전 학습된 학습 파라미터 및 각 학습 파라미터의 값과 동일할 수 있다.
즉 다시 말하면, 임베딩 추론 모듈(130)이 학습되는 경우에도, 컨텍스트 해석부(131)의 학습 파라미터의 값은 동결(freeze)된 채로 유지될 수 있다.
집계부(132)는 컨텍스트 해석부(131)에서 생성된 복수의 컨텍스트 표현 벡터에 기초하여 복수의 추천 후보 아이템을 결정하고, 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 출력한다.
일 실시예에 따르면, 집계부(132)는 컨텍스트 해석부(131)의 학습 파라미터와는 독립적인 별도의 학습 파라미터를 갖는 셀프 어텐션 레이어를 포함할 수 있다.
도시된 실시예에서, 각 구성들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 구성을 포함할 수 있다.
또한, 일 실시예에서, 컨텍스트 해석부(131) 및 집계부(132)는 물리적으로 구분된 하나 이상의 장치를 이용하여 구현되거나, 하나 이상의 프로세서 또는 하나 이상의 프로세서 및 소프트웨어의 결합에 의해 구현될 수 있으며, 도시된 예와 달리 구체적 동작에 있어 명확히 구분되지 않을 수 있다.
도 5는 일 실시예에 따른 아이템 추천 과정을 개괄적으로 설명하기 위한 블록도(500)이다.
도시된 바에 따르면, 도시된 점선은 대중적인 아이템에 대한 추론 과정을 나타내며, 실선은 니치 아이템에 대한 학습 및 추론 과정을 나타낸다.
도 5를 참조하면, 대중적인 아이템의 경우 '배-생선-빵-햄버거-치즈'로 구성된 아이템 시퀀스가 아이템 임베딩 레이어(121)에 입력되면, 아이템 임베딩 레이어(121)가 입력된 아이템 시퀀스를 이와 대응되는 임베딩 벡터로 변환하여 시퀀스 모델링 레이어(122)에 전송한다.
이어서, 대중적인 아이템에 대해 충분히 사전 학습된 시퀀스 모델링 레이어(122)는 전송된 임베딩 벡터로부터 현재 시점에서의 사용자 상태 벡터를 출력하여 아이템 추천 레이어(123)로 전송한다.
이어서, 아이템 추천 레이어(123)는 시퀀스 모델링 레이어(122)로부터 전송된 현재 시점에서의 사용자 상태 벡터와, 아이템 임베딩 레이어(121)로부터 전송된 임베딩 벡터에 기초하여 '배-생선-빵-햄버거-치즈'의 다음에 소비될 대중적인 아이템으로 '우유'를 사용자에게 추천할 수 있다.
반면, 니치 아이템의 경우, 기존에 니치 아이템에 대해 시퀀스 모델링 레이어(122)가 충분히 학습되어 있지 않으므로, 학습 및 추론을 위해 별도의 임베딩 추론 모듈(130)이 필요하다.
구체적으로, 임베딩 추론 모듈(130)은 시퀀스 모델링 레이어(122)로부터 대중적인 아이템에 대한 충분한 학습으로 미세 조정(fine-tuning)된 학습 파라미터 값을 전달받고, 아이템 임베딩 레이어(121)로부터 여러 아이템 시퀀스와 대응되는 임베딩 벡터를 전달받는다.
이어서, 임베딩 추론 모듈(130)은 전달받은 학습 파라미터 값 및 임베딩 벡터에 기초하여 학습되고, 이렇게 학습된 임베딩 추론 모듈(130)은 '배-생선-빵-햄버거-치즈'로 구성된 아이템 시퀀스가 입력되는 경우, 이에 대응되는 추천 후보 아이템에 대한 임베딩 벡터를 출력하여 시퀀스 모델링 레이어(122)로 전송한다.
이어서, 시퀀스 모델링 레이어(122)는 전송된 임베딩 벡터로부터 현재 시점에서의 사용자 상태 벡터를 출력하여 아이템 추천 레이어(123)로 전송하고, 아이템 추천 레이어(123)는 시퀀스 모델링 레이어(122)로부터 전송된 사용자 상태 벡터와, 임베딩 추론 모듈(130)로부터 전송된 임베딩 벡터에 기초하여 '배-생선-빵-햄버거-치즈'의 다음에 소비될 니치 아이템으로 '아이스크림'을 사용자에게 추천할 수 있다.
도 6은 일 실시예에 따른 아이템 임베딩 방법을 설명하기 위한 흐름도이다.
도 6에 도시된 방법은 예를 들어, 상술한 아이템 임베딩 장치(110)에 의해 수행될 수 있다.
우선, 아이템 임베딩 장치(110)는 사전 학습된 아이템 추천 모델에 복수의 아이템 시퀀스(item sequence)를 입력하여 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 획득한다(610).
이후, 아이템 임베딩 장치(110)는 복수의 아이템 시퀀스 중 제1 그룹의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터 및 아이템 추천 모델의 학습 파라미터 값에 기초하여 임베딩 추론 모듈을 학습시킨다(620).
이후, 아이템 임베딩 장치(110)는 학습된 임베딩 추론 모듈에 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 입력하여 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 추론한다(630).
도 7은 일 실시예에 따른 아이템 임베딩을 이용한 추천 아이템 결정 방법을 설명하기 위한 흐름도이다.
도 7에 도시된 방법은 예를 들어, 상술한 아이템 임베딩 장치(110)에 의해 수행될 수 있다.
우선, 아이템 임베딩 장치(110)는 사전 학습된 아이템 추천 모델에 복수의 아이템 시퀀스(item sequence)를 입력하여 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 획득한다(710).
이후, 아이템 임베딩 장치(110)는 복수의 아이템 시퀀스 중 제1 그룹의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터 및 아이템 추천 모델의 학습 파라미터 값에 기초하여 임베딩 추론 모듈을 학습시킨다(720).
이후, 아이템 임베딩 장치(110)는 학습된 임베딩 추론 모듈에 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 입력하여 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 추론한다(730).
이후, 아이템 임베딩 장치(110)는 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 아이템 추천 모델에 입력하여 복수의 추천 후보 아이템 중 추천 아이템을 결정한다(740).
도 8은 일 실시예에 따른 추천 아이템 결정 방법을 보다 상세히 설명하기 위한 흐름도이다.
도 8에 도시된 방법은 예를 들어, 상술한 아이템 임베딩 장치(110)에 의해 수행될 수 있다.
우선, 아이템 임베딩 장치(110)는 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터에 기초하여 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터와 대응되는 현재 시점에서의 사용자 상태 벡터를 생성한다(810).
이후, 아이템 임베딩 장치(110)는 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터 및 생성된 사용자 상태 벡터에 기초하여 다음 시점에서의 복수의 추천 후보 아이템에 대한 확률 벡터를 생성한다(820).
이후, 아이템 임베딩 장치(110)는 복수의 추천 후보 아이템에 대한 확률 벡터의 각 원소가 나타내는 확률 값 중 최대 확률 값에 대응되는 아이템을 추천 아이템으로 결정한다(830).
상기 도시된 도 6 및 도 8에서는 상기 방법을 복수 개의 동작으로 나누어 기재하였으나, 적어도 일부의 동작들은 순서를 바꾸어 수행되거나, 다른 동작과 결합되어 함께 수행되거나, 생략되거나, 세부 동작들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 동작이 부가되어 수행될 수 있다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램, 및 상기 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 프로그램의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100: 아이템 임베딩 시스템
110: 아이템 임베딩 장치
120: 아이템 추천 모델
121: 아이템 임베딩 레이어
122: 시퀀스 모델링 레이어
123: 아이템 추천 레이어
130: 임베딩 추론 모듈
131: 컨텍스트 해석부
132: 집계부

Claims (18)

  1. 하나 이상의 프로세서에 의해 수행되며,
    사전 학습된 아이템 추천 모델에 복수의 아이템 시퀀스(item sequence)를 입력하여 상기 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 획득하는 동작;
    상기 복수의 아이템 시퀀스 중 제1 그룹의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터 및 상기 아이템 추천 모델의 학습 파라미터 값에 기초하여 임베딩 추론 모듈을 학습시키는 동작; 및
    상기 학습된 임베딩 추론 모듈에 상기 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 입력하여 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 추론하는 동작을 포함하는, 아이템 임베딩 방법.
  2. 청구항 1항에 있어서,
    상기 제1 그룹의 아이템 시퀀스는,
    기 설정된 인기 아이템 및 사용자의 아이템 컨텍스트 상에서 상기 인기 아이템과 함께 소비된 일련의 아이템들을 포함하는 아이템 시퀀스인, 아이템 임베딩 방법.
  3. 청구항 1항에 있어서,
    상기 아이템 추천 모델은,
    상기 복수의 아이템 시퀀스를 입력 받아 상기 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 생성하는 아이템 임베딩 레이어;
    상기 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터에 기초하여 상기 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터와 각각 대응되는 현재 시점에서의 사용자 상태 벡터를 생성하는 시퀀스 모델링 레이어; 및
    상기 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터 및 상기 사용자 상태 벡터에 기초하여 다음 시점에서의 상기 복수의 추천 후보 아이템에 대한 확률 벡터를 생성하는 아이템 추천 레이어를 포함하는, 아이템 임베딩 방법.
  4. 청구항 1항에 있어서,
    상기 임베딩 추론 모듈은,
    상기 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 입력 받아 상기 복수의 아이템 시퀀스 각각에 대응되는 복수의 컨텍스트 표현 벡터를 생성하는 컨텍스트 해석부; 및
    상기 복수의 컨텍스트 표현 벡터에 기초하여 상기 복수의 추천 후보 아이템을 결정하고, 상기 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 출력하는 집계부를 포함하는, 아이템 임베딩 방법.
  5. 청구항 4항에 있어서,
    상기 컨텍스트 해석부는,
    트랜스포머(Transformer) 기반 네트워크 구조 또는 순환신경망(RNN; Recurrent Neural Network) 기반 네트워크 구조를 포함하는, 아이템 임베딩 방법.
  6. 청구항 1항에 있어서,
    상기 학습시키는 동작은,
    상기 제1 그룹의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 상기 임베딩 추론 모듈에 입력하되, 상기 입력되는 임베딩 벡터 중 기 설정된 인기 아이템 각각에 대한 임베딩 벡터를 정답으로 하여 상기 임베딩 추론 모듈의 학습 파라미터 중 적어도 일부를 갱신하는, 아이템 임베딩 방법.
  7. 청구항 6항에 있어서,
    상기 학습시키는 동작은,
    상기 제1 그룹의 아이템 시퀀스 중 기 설정된 개수만큼 샘플링된 아이템 시퀀스에 기초하여 상기 임베딩 추론 모듈을 퓨 샷 학습(Few-shot Learning)시키는, 아이템 임베딩 방법.
  8. 청구항 1항에 있어서,
    상기 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 상기 아이템 추천 모델에 입력하여 상기 복수의 추천 후보 아이템 중 추천 아이템을 결정하는 동작을 더 포함하는, 아이템 임베딩 방법.
  9. 청구항 8항에 있어서,
    상기 결정하는 동작은,
    상기 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터에 기초하여 상기 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터와 대응되는 현재 시점에서의 사용자 상태 벡터를 생성하는 동작;
    상기 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터 및 상기 사용자 상태 벡터에 기초하여 다음 시점에서의 상기 복수의 추천 후보 아이템에 대한 확률 벡터를 생성하는 동작; 및
    상기 복수의 추천 후보 아이템에 대한 확률 벡터의 각 원소가 나타내는 확률 값 중 최대 확률 값에 대응되는 아이템을 상기 추천 아이템으로 결정하는 동작을 포함하는, 아이템 임베딩 방법.
  10. 하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행되도록 구성되는 하나 이상의 프로그램을 저장하는 메모리를 포함하는 장치로서,
    상기 프로그램은,
    사전 학습된 아이템 추천 모델에 복수의 아이템 시퀀스(item sequence)를 입력하여 상기 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 획득하는 동작;
    상기 복수의 아이템 시퀀스 중 제1 그룹의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터 및 상기 아이템 추천 모델의 학습 파라미터 값에 기초하여 임베딩 추론 모듈을 학습시키는 동작; 및
    상기 학습된 임베딩 추론 모듈에 상기 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 입력하여 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 추론하는 동작을 실행하기 위한 명령어들을 포함하는, 아이템 임베딩 장치.
  11. 청구항 10항에 있어서,
    상기 제1 그룹의 아이템 시퀀스는,
    기 설정된 인기 아이템 및 사용자의 아이템 컨텍스트 상에서 상기 인기 아이템과 함께 소비된 일련의 아이템들을 포함하는 아이템 시퀀스인, 아이템 임베딩 장치.
  12. 청구항 10항에 있어서,
    상기 아이템 추천 모델은,
    상기 복수의 아이템 시퀀스를 입력 받아 상기 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 생성하는 아이템 임베딩 레이어;
    상기 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터에 기초하여 상기 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터와 각각 대응되는 현재 시점에서의 사용자 상태 벡터를 생성하는 시퀀스 모델링 레이어; 및
    상기 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터 및 상기 사용자 상태 벡터에 기초하여 다음 시점에서의 상기 복수의 추천 후보 아이템에 대한 확률 벡터를 생성하는 아이템 추천 레이어를 포함하는, 아이템 임베딩 장치.
  13. 청구항 10항에 있어서,
    상기 임베딩 추론 모듈은,
    상기 복수의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 입력 받아 상기 복수의 아이템 시퀀스 각각에 대응되는 복수의 컨텍스트 표현 벡터를 생성하는 컨텍스트 해석부; 및
    상기 복수의 컨텍스트 표현 벡터에 기초하여 상기 복수의 추천 후보 아이템을 결정하고, 상기 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 출력하는 집계부를 포함하는, 아이템 임베딩 장치.
  14. 청구항 13항에 있어서,
    상기 컨텍스트 해석부는,
    트랜스포머(Transformer) 기반 네트워크 구조 또는 순환신경망(RNN; Recurrent Neural Network) 기반 네트워크 구조를 포함하는, 아이템 임베딩 장치.
  15. 청구항 10항에 있어서,
    상기 학습시키는 동작은,
    상기 제1 그룹의 아이템 시퀀스에 포함된 아이템 각각에 대한 임베딩 벡터를 상기 임베딩 추론 모듈에 입력하되, 상기 입력되는 임베딩 벡터 중 기 설정된 인기 아이템 각각에 대한 임베딩 벡터를 정답으로 하여 상기 임베딩 추론 모듈의 학습 파라미터 중 적어도 일부를 갱신하는, 아이템 임베딩 장치.
  16. 청구항 15항에 있어서,
    상기 학습시키는 동작은,
    상기 제1 그룹의 아이템 시퀀스 중 기 설정된 개수만큼 샘플링된 아이템 시퀀스에 기초하여 상기 임베딩 추론 모듈을 퓨 샷 학습(Few-shot Learning)시키는, 아이템 임베딩 장치.
  17. 청구항 10항에 있어서,
    상기 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터를 상기 아이템 추천 모델에 입력하여 상기 복수의 추천 후보 아이템 중 추천 아이템을 결정하는 동작을 실행하기 위한 명령어들을 더 포함하는, 아이템 임베딩 장치.
  18. 청구항 17항에 있어서,
    상기 결정하는 동작은,
    상기 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터에 기초하여 상기 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터와 대응되는 현재 시점에서의 사용자 상태 벡터를 생성하는 동작;
    상기 복수의 추천 후보 아이템 각각에 대한 임베딩 벡터 및 상기 사용자 상태 벡터에 기초하여 다음 시점에서의 상기 복수의 추천 후보 아이템에 대한 확률 벡터를 생성하는 동작; 및
    상기 복수의 추천 후보 아이템에 대한 확률 벡터의 각 원소가 나타내는 확률 값 중 최대 확률 값에 대응되는 아이템을 상기 추천 아이템으로 결정하는 동작을 포함하는, 아이템 임베딩 장치.
KR1020200151377A 2020-11-12 2020-11-12 아이템 임베딩 장치 및 방법 KR102586569B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200151377A KR102586569B1 (ko) 2020-11-12 2020-11-12 아이템 임베딩 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200151377A KR102586569B1 (ko) 2020-11-12 2020-11-12 아이템 임베딩 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20220064833A KR20220064833A (ko) 2022-05-19
KR102586569B1 true KR102586569B1 (ko) 2023-10-10

Family

ID=81801214

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200151377A KR102586569B1 (ko) 2020-11-12 2020-11-12 아이템 임베딩 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102586569B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240031513A (ko) 2022-08-30 2024-03-08 국민대학교산학협력단 전문어의 범용 공간 매핑을 위한 비선형 벡터 정렬 장치 및 방법
KR102593134B1 (ko) * 2022-12-16 2023-10-24 고려대학교산학협력단 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법 및 이를 위한 장치
KR102619044B1 (ko) * 2023-03-21 2023-12-27 쿠팡 주식회사 기계학습 기반 추천 방법 및 그 시스템

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102220273B1 (ko) * 2018-03-29 2021-02-26 네이버 주식회사 상품 추천 방법 및 이를 이용하는 서버
KR102413190B1 (ko) * 2019-01-08 2022-06-27 한국전자통신연구원 명시적 메모리 사용 신경망 기반의 패션 코디네이션 지식 제공 장치 및 방법
KR20200112647A (ko) * 2019-03-21 2020-10-05 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
KR102227939B1 (ko) 2019-04-02 2021-03-15 성균관대학교산학협력단 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법 및 장치

Also Published As

Publication number Publication date
KR20220064833A (ko) 2022-05-19

Similar Documents

Publication Publication Date Title
KR102586569B1 (ko) 아이템 임베딩 장치 및 방법
KR102604598B1 (ko) 캔버스 상의 연결된 위치가능 엘리먼트에 기초하여 통신 의사결정 트리들을 구성하기 위한 방법들 및 시스템들
US11669744B2 (en) Regularized neural network architecture search
US11514333B2 (en) Combining machine-learning and social data to generate personalized recommendations
JP6523498B1 (ja) 学習装置、学習方法および学習プログラム
US10783450B2 (en) Learning user preferences using sequential user behavior data to predict user behavior and provide recommendations
US11544743B2 (en) Digital content control based on shared machine learning properties
US9864951B1 (en) Randomized latent feature learning
US20180342004A1 (en) Cumulative success-based recommendations for repeat users
RU2725659C2 (ru) Способ и система для оценивания данных о взаимодействиях пользователь-элемент
JP2018517959A (ja) ビデオのための代表ビデオフレームの選択
CN107463701B (zh) 基于人工智能推送信息流的方法和装置
US10114824B2 (en) Techniques for providing a user with content recommendations
US20220277747A1 (en) System and method for digital content development using a natural language interface
KR102203253B1 (ko) 생성적 적대 신경망에 기반한 평점 증강 및 아이템 추천 방법 및 시스템
US11100406B2 (en) Knowledge network platform
US20170017655A1 (en) Candidate services for an application
JP2007058398A (ja) コンテンツ推薦装置、コンテンツ推薦方法及びコンピュータプログラム
CN115841366A (zh) 物品推荐模型训练方法、装置、电子设备及存储介质
US20240046922A1 (en) Systems and methods for dynamically updating machine learning models that provide conversational responses
US11416892B2 (en) Non-transitory computer-readable recording medium, determination method, and information processing apparatus
CN114556330A (zh) 评估数字内容的视觉质量
Aggarwal et al. Improving search through A3C reinforcement learning based conversational agent
US20230029590A1 (en) Evaluating output sequences using an auto-regressive language model neural network
US20230027078A1 (en) Systems and methods for generation and deployment of a human-personified virtual agent using pre-trained machine learning-based language models and a video response corpus

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant