KR20230044885A - 추천 콘텐트를 제공하는 서버 및 방법 - Google Patents

추천 콘텐트를 제공하는 서버 및 방법 Download PDF

Info

Publication number
KR20230044885A
KR20230044885A KR1020210127552A KR20210127552A KR20230044885A KR 20230044885 A KR20230044885 A KR 20230044885A KR 1020210127552 A KR1020210127552 A KR 1020210127552A KR 20210127552 A KR20210127552 A KR 20210127552A KR 20230044885 A KR20230044885 A KR 20230044885A
Authority
KR
South Korea
Prior art keywords
user
users
content
contents
vectors
Prior art date
Application number
KR1020210127552A
Other languages
English (en)
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 KR1020210127552A priority Critical patent/KR20230044885A/ko
Priority to PCT/KR2022/014391 priority patent/WO2023048537A1/ko
Priority to US17/974,089 priority patent/US20230100788A1/en
Publication of KR20230044885A publication Critical patent/KR20230044885A/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/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4668Learning process for intelligent management, e.g. learning user preferences for recommending movies for recommending content, e.g. movies
    • 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
    • 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
    • G06N3/09Supervised learning
    • 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44204Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4532Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4662Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms
    • H04N21/4666Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms using neural networks, e.g. processing the feedback provided by the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Artificial Intelligence (AREA)
  • Marketing (AREA)
  • Evolutionary Computation (AREA)
  • Strategic Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Tourism & Hospitality (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Development Economics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Primary Health Care (AREA)
  • Human Resources & Organizations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

서버가 사용자에게 콘텐트를 추천하는 방법이 개시된다. 구체적으로, 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 따라, 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 피드백 벡터를 획득하는 동작; 복수의 사용자들이 이용한 복수의 콘텐트들에 관한 피드백 정보를 획득하는 동작; 피드백 정보에 기초하여, 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성하는 동작; 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들 및 복수의 사용자 그룹들에 대응되는 복수의 사용자 그룹들의 중심 사용자들을 결정하는 동작; 중심 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을, 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델에 입력하는 동작; 인공 신경망 모델에 의해 출력되는, 복수의 콘텐트들에 대한 중심 사용자들의 예측된 선호도를 나타내는 중심 사용자들의 선호도 벡터들을 획득하는 동작; 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 사용자에게 추천될 적어도 하나의 추천 콘텐트들을 결정하는 동작; 및 결정된 적어도 하나의 콘텐트들을 사용자에게 추천하는 동작; 을 포함하는 서버가 사용자에게 콘텐트를 추천하는 방법이 개시된다.

Description

추천 콘텐트를 제공하는 서버 및 방법{SYSTEM AND METHOD FOR PROVIDING recommendation contents}
본 개시는 추천 콘텐트를 제공하는 서버 및 방법에 관한 것으로서, 보다 상세하게는 복수의 사용자들을 군집화(grouping)함으로써 결정된 복수의 사용자 그룹들의 중심 사용자들에 기초하여, 추천 콘텐트를 제공하는 서버 및 방법에 관한 것이다.
최근 다양한 인터넷 환경을 통해, 사용자는 영화, 음악 등을 포함하는 다양한 멀티 미디어 콘텐트를 스트리밍할 수도 있고, 다양한 상품을 인터넷을 통해 구매할 수 있게 되었다. 사용자가 적절한 멀티미디어 콘텐트를 스트리밍하거나, 애플리케이션을 다운로드 받거나, 또는 원하는 상품을 구매하도록 하기 위해, 사용자에게 맞춤형 추천 콘텐트, 추천 애플리케이션 혹은 추천 상품을 제공하기 위해 다양한 기법들이 개발되고 있다.
종래의 사용자 맞춤형 콘텐트 제공 기법에는, 사용자의 정보에 기초하여 사용자가 선호할 만한 콘텐트를 추측함으로써 사용자에게 적합한 특정 항목을 선택하여 제공하는 협업 필터링 기법과 사용자가 이용한 콘텐트 이력 정보에 기초하여 유사한 콘텐트를 사용자에게 추천하는 콘텐트 기반 필터링 기법이 있다.
하지만, 5G 통신 환경이 보급되고, 인터넷 환경 상의 다양한 콘텐트의 개수가 크게 증가하고, 사용자가 이용한 콘텐트 이력 정보가 부족한 경우가 발생함에 따라, 사용자에게 적절한 추천 콘텐트를 제공해주기 힘든 문제가 있었다. 또한, 인터넷 환경 상의 다양한 콘텐트가 생성되고 있는 바, 저장 공간의 문제 혹은 사용자에게 적절한 추천 콘텐트를 제공하기까지 긴 시간이 걸리는 문제가 있었다. 이에 따라, 사용자에게 적절한 추천 콘텐트를 제공함과 동시에 사용자에게 적절한 시간 안에 추천 콘텐트를 제공하는 기술이 요구되고 있다.
본 개시의 일 실시예는, 사용자에게 적절한 추천 콘텐트를 제공함과 동시에 사용자에게 적절한 시간 안에 추천 콘텐트를 제공하기 위해, 복수의 사용자들을 군집화(grouping)함으로써 결정된 복수의 사용자 그룹들의 중심 사용자들에 기초하여, 사용자에게 추천 콘텐트를 제공하는 것을 목적으로 한다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제1 측면은, 상기 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 따라, 복수의 콘텐트들 중 적어도 하나에 대한 상기 사용자의 피드백 벡터를 획득하는 동작; 복수의 사용자들이 이용한 상기 복수의 콘텐트들에 관한 피드백 정보를 획득하는 동작; 상기 피드백 정보에 기초하여, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성하는 동작; 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 상기 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들 및 상기 복수의 사용자 그룹들에 대응되는 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하는 동작; 상기 중심 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을, 사용자의 콘텐트에 대한 선호도를 예측(estimation)하기 위한 인공 신경망 모델에 입력하는 동작; 상기 인공 신경망 모델에 의해 출력되는, 상기 복수의 콘텐트들에 대한 상기 중심 사용자들의 예측된 선호도를 나타내는 상기 중심 사용자들의 선호도 벡터들을 획득하는 동작; 기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정하는 동작; 및 기 결정된 적어도 하나의 콘텐트를 상기 사용자에게 추천하는 동작; 을 포함하는 서버가 사용자에게 콘텐트를 추천하는 방법을 제공할 수 있다.
또한, 본 개시의 제2 측면은, 통신 인터페이스; 나 이상의 인스트럭션을 저장하는 메모리; 및 기 하나 이상의 인스트럭션을 실행하여, 상기 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 따라, 복수의 콘텐트들 중 적어도 하나에 대한 상기 사용자의 피드백 벡터를 획득하고, 복수의 사용자들이 이용한 상기 복수의 콘텐트들에 관한 피드백 정보를 획득하고, 상기 피드백 정보에 기초하여, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성하고, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 상기 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들 및 상기 복수의 사용자 그룹들에 대응되는 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하고, 상기 중심 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을, 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델에 입력하고, 상기 인공 신경망 모델에 의해 출력되는, 상기 복수의 콘텐트들에 대한 상기 중심 사용자들의 예측된 선호도를 나타내는 상기 중심 사용자들의 선호도 벡터들을 획득하고, 상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정하고, 상기 결정된 적어도 하나의 콘텐트를 상기 사용자에게 추천하는 프로세서; 를 포함하는, 사용자에게 콘텐트를 추천하기 위한 서버를 제공할 수 있다.
또한, 본 개시의 제3 측면은, 제1 측면의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
도 1은 본 개시의 일 실시예에 따른 사용자에게 콘텐트를 추천하기 위한 방법을 나타내는 도면이다.
도 2는 본 개시의 일 실시예에 따른 사용자에게 추천 콘텐트를 제공하는 방법에 관한 순서도이다.
도 3은 본 개시의 일 실시예에 따른 복수의 사용자들로부터 획득되는 피드백 정보의 예시를 나타내는 도면이다.
도 4는 본 개시의 일 실시예에 따른 피드백 정보에 기초하여, 생성된 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들의 예시를 나타내는 도면이다.
도 5는 본 개시의 일 실시예에 따른 도 4에서의 사용자1의 사용자 임베딩 벡터 및 사용자2의 임베딩 벡터를 나타내는 도면이다.
도 6은 본 개시의 일 실시예에 따른 복수의 사용자 그룹들 및 복수의 사용자 그룹들의 중심 사용자들을 결정하는 방법에 관한 순서도이다.
도 7은 본 개시의 일실시예에 따른 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들의 중심 사용자들을 결정하는 예시를 나타내는 도면이다.
도 8은 본 개시의 일 실시예에 임베딩 공간 상에서, 복수의 사용자 그룹들의 중심 사용자들을 결정하는 예시를 나타내는 도면이다.
도 9는 본 개시의 일 실시예에 따른 인공 신경망 모델을 훈련하는 예시를 나타내는 도면이다.
도 10은 본 개시의 일 실시예에 따른 인공 신경망 모델을 설명하기 위한 도면이다.
도 11은 본 개시의 일 실시예에 따른 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정하는 방법에 관한 순서도이다.
도 12는 본 개시의 일 실시예에 따른 사용자에게 추천될 적어도 하나의 추천 콘텐트의 예시를 나타내는 도면이다.
도 13은 본 개시의 일 실시예에 따른 중심 사용자들의 차이 값에 기초하여, 사용자에게 추천될 적어도 하나의 추천 콘텐트의 예시를 나타내는 도면이다.
도 14는 본 개시의 일 실시예에 따른 복수의 사용자 그룹들의 수에 따른 사용자에게 추천 콘텐트를 제공하기까지의 소요 시간 및 콘텐트 선호도 예측의 차이 값에 대한 도면이다.
도 15는 본 개시의 일 실시예에 따른 복수의 사용자 그룹들의 수를 조정하고, 조정된 복수의 사용자 그룹들의 수에 기초하여, 사용자 및 복수의 사용자들을 재군집화하는 방법에 대한 순서도이다.
도 16은 본 개시의 일 실시예에 따른 선택된 중심 사용자의 유사도 값에 기초하여, 복수개의 사용자 그룹들의 수를 조정할지 여부를 결정하고, 복수개의 사용자 그룹들의 수를 조정하는 경우, 조정된 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화하는 방법에 대한 흐름도이다.
도 17은 본 개시의 일 실시예에 따른 도 16에서의 복수개의 사용자 그룹들의 수를 줄이는 경우, 조정된 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화하는 예시를 나타내는 도면이다.
도 18은 본 개시의 일 실시예에 따른 도 16에서의 복수개의 사용자 그룹들의 수를 유지하는 경우, 복수의 사용자 및 사용자를 재군집화하는 예시를 나타내는 도면이다.
도 19는 본 개시의 일 실시예에 따른 도 16에서의 복수개의 사용자 그룹들의 수를 늘리는 경우, 조정된 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화하는 예시를 나타내는 도면이다.
도 20은 본 개시의 일 실시예에 따른 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수개의 사용자 그룹들의 수를 조정할지 여부를 결정하고, 복수개의 사용자 그룹들의 수를 조정하는 경우, 조정된 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화하는 방법에 대한 흐름도이다.
도 21는 본 개시의 일 실시예에 따른 서버를 설명하기 위한 블록도이다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 개시에서 사용되는 용어에 대해 간략히 설명하고, 본 개시의 일 실시예에 대해 구체적으로 설명하기로 한다.
본 명세서에서 콘텐트는 영화, 음악 등을 포함하는 멀티미디어 콘텐트, 애플리케이션 스토어에서 다운로드 가능한 애플리케이션 및 인터넷 상에서 구매 가능한 다양한 제품 등을 포함하는 콘텐트일 수 있다. 본 개시의 일 실시예에 따르면, 사용자에게 맞춤형 콘텐트가 추천될 수 있다. 예를 들어, 애플리케이션 스토어에 접속할 때 첫 화면 노출되는 애플리케이션들은 사용자에게 제공되는 맞춤형 추천 콘텐트들(또는, 맞춤형 추천 애플리케이션들) 일 수 있다. 또한, 음악을 듣기 위한 플레이어의 추천 버튼을 클릭할 때 상단에 노출되는 음악들은 사용자에게 제공되는 맞춤형 추천 콘텐트들(또는, 맞춤형 추천 음악들) 일 수 있다.
또한, 피드백 벡터는 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 선호도를 나타내는 벡터일 수 있다. 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 선호도는 "긍정"(positive), "부정"(negative), "선호 없음"(No preference)를 포함할 수 있고, "긍정"(positive), "부정"(negative), "선호 없음"(No preference)에 대응되는 피드백 벡터의 요소 값을 획득할 수 있다. 예를 들어, 콘텐트에 대한 사용자의 선호도가 긍정인 경우 피드백 벡터의 요소 값인 1에 대응되고, 콘텐트에 대한 사용자의 선호도가 부정인 경우 피드백 벡터의 요소 값인 0에 대응되고, 콘텐트에 대한 사용자의 선호도가 선호 없음인 경우 피드백 벡터의 요소의 공란(blank)에 대응될 수 있다. 또한, 예를 들어, 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 선호도는 "긍정"(positive), "부정"(negative)만을 포함할 수 있고, 사용자의 선호도가 "선호 없음"(No preference)인 경우는 "긍정"(positive) 및 "부정"(negative) 중 하나에 대응되게 판단될 수 있다.
또한, 선호도는 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 행위, 행동 또는 반응에 기초하여 결정될 수 있다. 예를 들어, 사용자가 콘텐트를 클릭하거나 일정 시간이상 응시하는 경우, 콘텐트에 대한 사용자의 선호도를 긍정으로 결정할 수 있다. 반대로, 사용자가 콘텐트를 스크롤하거나 콘텐트에 대해 일정 점수 이하의 낮은 평점을 매긴 경우, 콘텐트에 대한 사용자의 선호도는 부정으로 결정할 수 있다. 또한, 본명세서에서 피드백 정보는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도를 나타내는 복수의 피드백 벡터들을 포함하는 정보일 수 있으며, 예를 들어, 복수의 피드백 벡터들을 포함하는 매트릭스를 포함할 수 있다.
또한, 임베딩 벡터는 사람이 쓰는 자연어를 컴퓨터가 이해할 수 있는 숫자 형태로 나타낸 벡터일 수 있다. 본 명세서에서 임베딩 벡터는 잠재 벡터(Latent Vector) 혹은 잠재 팩터(Latent Factor)일 수 있고, 임베딩 벡터는 수학적인 값만을 나타낼 수 있다.
사용자 임베딩 벡터는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 기초하여, 사용자를 구별하기 위하여 생성된 임베딩 벡터이고, 콘텐트 임베딩 벡터는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 기초하여, 콘텐트를 구별하기 위하여 콘텐트에 대하여 생성된 임베딩 벡터일 수 있다. 예를 들어, 사용자 임베팅 벡터들의 매트릭스 및 콘텐트 임베딩 벡터들의 매트릭스의 곱이, 사용자들의 콘텐트들에 대한 피드백 벡터들을 포함하는 매트릭스와 유사하도록, 사용자 임베딩 벡터들 및 콘텐트 임베딩 벡터들이 생성될 수 있다.
본 명세서에서 사용자 임베딩 벡터들 간의 유클리드 거리(Euclidean distance)가 가까울수록, 복수의 사용자들의 복수의 콘텐트들에 대한 선호도가 유사하다고 결정할 수 있다. 예를 들어, 사용자 1의 사용자 임베딩 벡터가 사용자2의 사용자 임베딩 벡터보다 사용자3의 사용자 임베딩 벡터와의 거리가 더 가까운 경우, 사용자 1과 사용자 3의 복수의 콘텐트들에 대한 선호도가 유사하다고 결정할 수 있다.
임베딩 벡터의 차원은 서버의 메모리, 추천 콘텐트를 제공하기까지의 소요 시간 등을 고려하여 결정될 수 있고, 기 설정되어 서버에 저장되어 있을 수 있다. 예를 들어, 서버의 메모리가 증가하는 경우, 임베딩 벡터의 차원도 증가될 수 있다. 또한, 본 명세서에서 임베딩 벡터는 복수의 사용자에 대한 복수의 사용자 임베딩 벡터 및 복수의 콘텐트들에 대한 복수의 콘텐트 임베딩 벡터를 포함할 수 있고, 사용자에 대한 복수의 사용자 임베딩 벡터 및 복수의 콘텐트들에 대한 복수의 콘텐트 임베딩 벡터는 피드백 정보에 기초하여 결정될 수 있다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1은 본 개시의 일 실시예에 따른 사용자에게 콘텐트를 추천하기 위한 방법을 나타내는 도면이다.
도 1을 참조하면 서버(1000)는 복수의 사용자들(예를 들어, 사용자 1(1001), 사용자 2(1002), 사용자 3(1003)을 포함할 수 있다.)의 복수의 콘텐트들 중 적어도 하나에 대한 행동, 동작, 반응 등을 획득할 수 있다. 예를 들어, 사용자 1(1001)의 디바이스(예를 들어, 휴대용 단말기)는 사용자 1(1001)의 복수의 콘텐트들 중 적어도 하나에 대한 행동, 동작, 반응 등을 획득할 수 있고, 사용자 1(1001)의 디바이스의 통신 인터페이스를 통해 사용자 1(1001)의 복수의 콘텐트들 중 적어도 하나에 대한 행동 등이 사용자 1(1001)의 디바이스로부터 서버(1000)에게 업로드 또는 송신될 수 있다. 도 1에서는 복수의 사용자들 중 사용자 1(1001), 사용자 2(1002) 및 사용자 3(1003)을 도시하고 있지만, 이에 한정되는 것은 아니다.
또한, 서버(1000)는 획득된 복수의 사용자들의 복수의 콘텐트들 중 적어도 하나에 대한 행동 등에 기초하여, 피드백 정보(1010)를 획득할 수 있다. 예를 들어, 피드백 정보 1010)는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도를 나타내는 테이블 또는 행렬 형태의 정보일 수 있고, 테이블의 m행, n열에 대응되는 값은 사용자 m의 콘텐트 n에 대한 선호도에 대응되는 값일 수 있다. 또한, 복수의 사용자들의 일부 콘텐트들에 대한 행동 등에 기초하여, 피드백 정보(1010)를 획득할 수 있고, 테이블의 m행, n열에 대응되는 값은 공란일 수 있다. 공란은 사용자 m의 콘텐트 n에 대한 행동, 반응에 대한 데이터가 없다는 것을 의미할 수 있다.
또한, 서버(1000)는 피드백 정보(1010)에 기초하여, 복수의 사용자들의 사용자 임베딩 벡터들 1020)(사용자 임베딩 벡터들(1020)은 사용자 1(1001)의 사용자 임베딩 벡터(1021), 사용자 2(1002)의 사용자 임베딩 벡터(1022), 사용자 3(1003)의 사용자 임베딩 벡터(1023), 사용자 4(미도시)의 사용자 임베딩 벡터(1024), 사용자 5(미도시)의 사용자 임베딩 벡터(1025), 사용자 6(미도시)의 사용자 임베딩 벡터(1026)를 포함할 수 있으나, 이에 한정된 것은 아니다.) 및 복수의 콘텐트들의 콘텐트 임베딩 벡터들(1030)(콘텐트 임베딩 벡터들(1020)은 콘텐트 1의 콘텐트 임베딩 벡터(1031), 콘텐트 2의 콘텐트 임베딩 벡터(1032), 콘텐트 3의 콘텐트 임베딩 벡터(1033), 콘텐트 4의 콘텐트 임베딩 벡터(1034), 콘텐트 5의 콘텐트 임베딩 벡터(1035)를 포함할 수 있으나, 이에 한정된 것은 아니다.)을 생성할 수 있다.
또한, 서버(1000)는 복수의 사용자들의 사용자 임베딩 벡터들(1020) 및 복수의 콘텐트들의 콘텐트 임베딩 벡터들(1030)에 기초하여, 인공 신경망 모델을 훈련(1040)할 수 있다. 인공 신경망 모델(1040)은 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델일 수 있다.
또한, 서버(1000)는 사용자 임베딩 벡터들(1020)에 기초하여, 복수의 사용자들을 그룹화 및 복수의 사용자 그룹들의 중심 사용자들을 결정(1050)할 수 있다. 사용자 임베딩 벡터들 간의 유클리드 거리(Euclidean distance)가 가까울수록, 복수의 사용자들의 복수의 콘텐트들에 대한 선호도가 유사한 바, 복수의 사용자 그룹들 내의 적어도 하나의 사용자들의 복수의 콘텐트들에 대한 선호도는 유사하다고 예측될 수 있다. 또한, 복수의 사용자 그룹들의 중심 사용자들은 복수의 사용자 그룹들의 적어도 하나의 사용자들의 복수의 콘텐트들에 대한 선호도를 대표하는 사용자일 수 있다. 예를 들어, 중심 사용자들의 사용자 임베딩 벡터들(1060)은 사용자 1의 사용자 임베딩 벡터(1061) 및 사용자 2의 사용자 임베딩 벡터(1062)를 포함할 수 있다.
또한, 서버(1000)는 중심 사용자들의 사용자 임베딩 벡터들(1060), 콘텐트 임베딩 벡터들(1030)에 기초하여, 기 훈련된 인공 신경망 모델(1070)에 기초하여 추천 콘텐트를 결정(1080)할 수 있다. 구체적으로, 중심 사용자들(예를 들어, 사용자 1(1001) 및 사용자 2(1002))의 사용자 임베딩 벡터들 및 콘텐트 임베딩 벡터들(1030)에 기초하여, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 값을 나타내는 선호도 벡터들을 생성할 수 있다. 생성된 선호도 벡터들과 콘텐트 추천 요청을 한 디바이스의 사용자(1004)의 피드백 벡터(1014) 및 선호도 벡터들에 기초하여, 사용자(1004)에게 추천 콘텐트(1090)을 제공할 수 있다. 예를 들어, 중심 사용자 중 사용자 1(1001)과 사용자(1004)의 복수의 콘텐트들에 대한 선호도가 비슷하다고 결정되는 경우, 사용자 1(1001)이 선호하는 콘텐트3 및 콘텐트 4를 포함하는 추천 콘텐트(1090)을 제공할 수 있다.
도 2는 본 개시의 일 실시예에 따른 사용자에게 추천 콘텐트를 제공하는 방법에 관한 순서도이다.
동작 S1210에서, 서버는 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 따라, 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 피드백 벡터를 획득할 수 있다.
본 개시의 일 실시예에 따르면, 사용자의 디바이스는 서버(1000)로 콘텐트 추천 요청을 송신할 수 있다. 사용자는 도1에서의 사용자(1004)일 수 있다. 구체적으로, 사용자(1004)의 디바이스는 콘텐트 추천 요청은 기 설정된 주기에 따라 서버(1000)로 송신되거나 사용자로부터의 입력에 기초하여 디바이스의 통신 인터페이스를 통해 서버(1000)로 송신될 수 있다. 예를 들어, 사용자(1004)의 디바이스는 사용자(1004)가 콘텐트 추천을 위한 사이트, 애플리케이션 다운을 위한 애플리케이션 스토어 또는 멀티미디어 콘텐트 스트리밍 사이트에 접속하는 것 등을 사용자의 입력으로 식별하고, 서버(1000)로 콘텐트 추천 요청을 송신할 수 있다.
본 개시의 일 실시예에 따르면, 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 따라, 사용자의 디바이스는 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 피드백 벡터를 획득할 수 있다. 예를 들어 피드백 벡터는 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 선호도를 나타내는 벡터(예를 들어, 사용자(1004)의 피드백 벡터(1014))이고, 사용자의 콘텐트에 대한 선호도에 따라 대응되는 피드백 벡터의 값도 달라질 수 있다. 예를 들어, 사용자(1004)가 콘텐트 1을 선호하는 경우(예를 들어, 사용자가 콘텐트 1을 클릭한 이력이 있는 경우), 피드백 벡터의 첫번째 요소(element)의 값은 1이될 수 있다. 또한, 예를 들어, 사용자(1004)가 콘텐트 2를 선호하지 않는 경우(예를 들어, 사용자가 콘텐트 2를 스크롤한 이력이 있는 경우), 피드백 벡터의 두번째 요소의 값은 0이될 수 있다. 예를 들어, 사용자(1004)의 콘텐트 3에 대한 반응 또는 행동이 없는 경우, 피드백 벡터의 세번째 요소의 값은 공백일 수 있다. 피드백 벡터의 요소의 값은 사용자의 복수의 콘텐트들에 대한 선호도에 따라 1, blank 혹은 0일 수 있고, 또는 피드백 벡터의 요소의 값은 사용자의 복수의 콘텐트들에 대한 선호도에 따라 1, 0 혹은 -1일 수 있으나, 이에 한정된 것은 아니다. 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 피드백 벡터는 미리 생성되어 사용자의 디바이스 내에 저장될 수 있다. 또한, 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 피드백 벡터는 사용자의 요청에 따라, 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 대한 데이터에 기초하여, 생성될 수 있다.
동작 S1220에서, 서버는 복수의 사용자들이 이용한 복수의 콘텐트들에 관한 피드백 정보를 획득할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도를 나타내는 피드백 정보를 획득할 수 있다. 구체적으로, 피드백 정보는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도를 나타내는 복수의 피드백 벡터들을 포함할 수 있다. 예를 들어, 피드백 정보는 복수의 피드백 벡터들의 집합으로, 피드백 벡터로 구성된 행렬 형태일 수 있다. 본원의 피드백 정보에 대해서는 도 3에서 보다 상세히 설명하기로 한다.
동작 S1230에서, 서버는 피드백 정보에 기초하여, 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성할 수 있다.
본 개시의 일 실시예에 따르면, 사용자 임베딩 벡터는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 기초하여, 사용자를 구별하기 위하여 생성된 임베딩 벡터이고, 콘텐트 임베딩 벡터는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 기초하여, 콘텐트를 구별하기 위하여 콘텐트에 대하여 생성된 임베딩 벡터일 수 있다.
본 개시의 일 실시예에 따르면, 임베딩 벡터들(복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 포함.)은 피드백 정보에 기초하여 다양한 방법으로 생성될 수 있다. 구체적으로, 서버(1000)는 행렬 분해(Matrix Factorization), 특정 아키텍처(architecture)로 구성된 인공 신경망 모델을 통한 학습 또는 원-핫 인코딩(one-hot encoding)에 기초한 임베딩 벡터 생성 방법 등을 통해 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성할 수 있고, 이에 한정되는 것은 아니다. 예를 들어, 행렬 분해에 따라, 피드백 정보와 기 설정된 제1 임계치 이하의 에러를 가지는 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성할 수 있다. 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성하는 방법에 대해서는 도 4에서 보다 상세히 설명하기로 한다.
동작 S1240에서, 서버는 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들 및 복수의 사용자 그룹들에 대응되는 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 복수의 사용자들을 군집화하여 복수의 사용자 그룹들을 결정할 수 있다. 복수의 사용자 그룹들의 수는 서버(1000)에 저장되어 있을 수 있고, 기 설정된 복수의 사용자 그룹들의 수일 수 있다. 구체적으로, 서버(1000)는 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여 복수의 사용자들의 그룹들을 결정할 수 있다. 예를 들어, 서버(1000)는 k-평균 군집화(k-mean clustering)에 기초하여, 복수의 사용자들을 기 설정된 복수의 사용자 그룹들의 수의 복수의 사용자 그룹들을 그룹화할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 복수의 사용자 그룹들에 대응되는 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다. 구체적으로, 결정된 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다. 예를 들어, 결정된 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들의 무게 중심(centeroid)을 계산할 수 있고, 계산된 무게 중심과 가장 가까운 사용자를 복수의 사용자 그룹들의 중심 사용자들로 결정할 수 있다. 또한, 복수의 사용자 그룹들 각각의 중심 사용자들은 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들과의 유클리드 거리 합이 가장 작은 복수의 사용자 그룹들 각각에 속하는 사용자일 수 있다.
본 개시의 일 실시예에 따르면, 서버(1000)는 복수의 사용자들에 대한 사용자 임베딩 벡터들을 포함하는 임베딩 공간 상에서, 사용자 임베딩 벡터들 사이의 거리가 가까울수록 사용자들의 컨텐츠에 대한 선호도가 유사할 것으로 예측할 수 있다. 예를 들어, 서버(1000)는 복수의 사용자 그룹들의 중심 사용자들이 복수의 사용자 그룹들의 콘텐트에 대한 선호도와 가장 유사할 것으로 예측할 수 있고, 사용자 그룹들의 중심 사용자들은 복수의 사용자 그룹들을 대표하는 사용자들일 수 있다. 따라서, 복수의 사용자들에 대한 사용자 임베딩 벡터들 전부가 아닌 중심 사용자들의 사용자 임베딩 벡터들을 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델에 입력하는 경우에도, 빠른 시간 내에 사용자에게 적절한 맞춤형 콘텐트를 제공할 수 있다. 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들의 중심 사용자들을 결정하는 방법에 대해서는 도 6-8에서 보다 상세히 설명하기로 한다.
동작 S1250에서, 서버는 중심 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을, 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델에 입력할 수 있다.
본 개시의 일 실시예에 따르면, 서버(1000)는 중심 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을, 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델에 입력할 수 있다. 다만, 인공 신경망 모델은 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들에 기초하여 훈련될 수 있다. 콘텐트의 선호도를 예측 하기 위한 인공 신경망 모델을 훈련하는 방법에 대해서는 도 9에서 보다 상세히 설명하기로 한다.
동작 S1260에서, 서버(1000)는 인공 신경망 모델에 의해 출력되는, 복수의 콘텐트들에 대한 중심 사용자들의 예측된 선호도를 나타내는 중심 사용자들의 선호도 벡터들을 획득할 수 있다.
본 개시의 일 실시예에 따르면, 서버(1000)는 복수의 콘텐트들에 대한 중심 사용자들의 예측된 선호도를 나타내는 중심 사용자들의 선호도 벡터들을 획득할 수 있다. 구체적으로, 중심 사용자 m의 사용자 임베딩 벡터 및 콘텐트 n의 콘텐트 임베딩 벡터를 인공 신경망 모델에 입력할 수 있고, 인공 신경망 모델은 중심 사용자 m의 콘텐트 n에 대한 예측된 선호도 값을 출력할 수 있다. 예를 들어, 중심 사용자 m의 콘텐트 n에 대한 예측된 선호도 값은 중심 사용자 m의 선호도 벡터의 n번째 요소의 값일 수 있다. 또한, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 값은 0-1사이의 실수 값으로 출력 수 있다. 예를 들어, 중심 사용자 1의 첫번째 요소의 값이 0.9이고, 두번째 요소의 값이 0.2인 경우, 중심 사용자 1은 콘텐트 2보다 콘텐트 1을 선호할 확률이 높다고 예상할 수 있다. 다만, 실수값은 0-1에 한정되는 것은 아니다. 복수의 콘텐트들에 대한 중심 사용자들의 예측된 선호도를 나타내는 중심 사용자들의 선호도 벡터들을 획득하는 것과 관련하여 도 10에서 보다 자세하게 살펴보기로 한다.
동작 S1270에서, 서버는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버(1000)는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다. 구체적으로, 예를 들어, 사용자(1004)의 피드백 벡터 및 중심 사용자들의 선호도 벡터들을 비교하여, 사용자(1004)의 콘텐트에 대한 선호도가 가장 유사한 중심 사용자를 선택할 수 있다. 예를 들어, 도 1에서, 서버(1000)는 사용자(1004)의 피드백 벡터(1014) 및 중심 사용자들의 선호도 벡터들(1060)을 비교하여, 중심 사용자들 중 콘텐트 1-3까지의 선호도가 사용자(1004)와 동일한 사용자 1(1001)을 선택된 중심 사용자로 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버(1000)는 중심 사용자들의 선호도 벡터들 중에서 선택된 중심 사용자의 선호도 벡터를 추출하고, 추출된 선호도 벡터에 기초하여, 적어도 하나의 추천 콘텐트를 결정할 수 있다. 예를 들어, 사용자에게 추천될 콘텐트의 개수가 기 설정되는 경우, 추출된 중심 사용자의 선호도 벡터의 요소의 값에 기초하여, 기 설정된 개수의 추천 콘텐트를 사용자에게 제공될 수 있다. 추천될 콘텐트의 개수가 복수 개인 경우, 서버(1000)는 사용자(1004)에게 제공할 추천 콘텐트 리스트를 결정할 수 있다. 예를 들어, 도1에서, 추천 콘텐트 리스트는 콘텐트 3 및 콘텐트 4를 포함할 수 있다. 사용자에게 추천될 적어도 하나의 추천 콘텐츠를 결정 하는 방법에 대해서는 도 11-13에서 보다 상세히 설명하기로 한다.
동작 S1280에서, 서버는 결정된 적어도 하나의 콘텐트를 사용자에게 추천할 수 있다.
예를 들어, 도1에서, 서버(1000)는 사용자(1004)에게 콘텐트 3 및 콘텐트 4로 구성된 추천 콘텐트(1090)를 제공할 수 있다. 추천되는 적어도 하나의 콘텐트들의 개수는 미리 저장되어 있을 수 있다.
도 3은 본 개시의 일 실시예에 따른 복수의 사용자들로부터 획득되는 피드백 정보의 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 도 3을 참조하면 서버(서버는 도1의 서버(1000)일 수 있다.)는 복수의 사용자들의 복수의 콘텐트들 중 적어도 하나에 대한 행동, 동작, 반응 등을 획득할 수 있다. 구체적으로 복수의 사용자들의 디바이스들을 통해, 복수의 사용자들의 복수의 콘텐트들 중 적어도 하나에 대한 행동, 동작, 반응 등을 획득할 수 있고, 복수의 사용자들의 디바이스들의 통신 인터페이스를 통해 복수의 사용자들의 복수의 콘텐트들 중 적어도 하나에 대한 행동 등이 복수의 사용자들의 디바이스들로부터 서버에게 업로드 또는 송신될 수 있다. 도3에는 복수의 사용자들 중 사용자 1(1310), 사용자 2(1320), 사용자 3(1330) 및 사용자(1340)을 도시하고 있지만, 이에 한정되는 것은 아니다.
본 개시의 일 실시예에 따르면, 사용자들의 피드백 벡터는 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 선호도를 나타내는 벡터일 수 있다. 구체적으로, 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 선호도는 사용자들의 복수의 콘텐트들에 대한 행동 또는 반응에 기초하여 결정될 수 있고, 사용자의 복수의 콘텐트들에 대한 선호도를 긍정 및 부정 또는 긍정, 부정 및 반응 없음 등으로 구분할 수 있지만, 이에 한정되는 것은 아니다. 예를 들어, 사용자가 복수의 콘텐트들을 클릭하는 행위, 사용자가 복수의 콘텐트들을 스크롤하는 행위, 사용자가 복수의 콘텐트들을 일정 시간 응시하는 행위, 사용자가 복수의 콘텐트들의 평점을 매기는 행위, 사용자가 복수의 콘텐트들을 다운로드 혹은 일정시간 이상 스트리밍하는 행위, 사용자가 복수의 콘텐트들의 미리보기를 시청하는 행위 등에 기초하여 사용자의 복수의 콘텐트들에 대한 선호도를 긍정 및 부정 또는 긍정, 부정 및 반응 없음 등으로 구분할 수 있다. 또한, 예를 들어, 사용자의 복수의 콘텐트들에 대한 선호도를 긍정 및 부정 또는 긍정, 부정 및 반응 없음 등으로 구분하는 방법은 서버의 프로세서에 의해 변경되거나 기 설정되어 서버에 저장되어 있을 수 있다.
본 개시의 일 실시예에 따르면, 사용자의 복수의 콘텐트들에 대한 선호도에 따라 사용자의 피드백 벡터의 요소 값이 상이할 수 있다. 예를 들어, 사용자의 콘텐트에 대한 선호도가 긍정인 경우, 사용자의 피드백 벡터의 요소 값이 1이고, 사용자의 콘텐트에 대한 선호도가 부정인 경우, 사용자의 피드백 벡터의 요소 값이 0이고, 사용자의 콘텐트에 대한 선호도에 대한 이력이 없는 경우, 사용자의 피드백 벡터의 요소 값이 공란으로 할당될 수 있다. 예를 들어, 사용자의 콘텐트에 대한 선호도가 긍정인 경우, 사용자의 피드백 벡터의 요소 값이 1이고, 사용자의 콘텐트에 대한 선호도가 부정인 경우, 사용자의 피드백 벡터의 요소 값이 -1이고, 사용자의 콘텐트에 대한 선호도에 대한 이력이 없는 경우, 사용자의 피드백 벡터의 요소 값이 공란으로 0될 수 있다. 예를 들어, 맞춤형 콘텐트를 제공할 대상인 사용자(1340)의 피드백 벡터는 (0,0,1, , )일 수 있다.
본 개시의 일 실시예에 따르면, 서버는 획득된 복수의 사용자들의 복수의 콘텐트들 중 적어도 하나에 대한 행동 등에 기초하여, 피드백 정보(1350)를 획득할 수 있다. 구체적으로, 도3에 따르면, 피드백 정보(1350)는 사용자 1(1310)의 피드벡 벡터(1315), 사용자 2(1320)의 피드벡 벡터(1325), 사용자 3(1330)의 피드벡 벡터(1335)으로 구성될 수 있다. 예를 들어, 사용자 1(1310)은 콘텐트 1 및 콘텐트 2를 스크롤한 바, 피드백 벡터(1315)의 첫번째 요소의 값 및 두번째 요소의 값은 0이 될 수 있다. 또한, 예를 들어, 사용자 1(1310)은 콘텐트 3 및 콘텐트 4를 클릭한 바, 피드백 벡터(1315)의 세번째 요소의 값 및 네번째 요소의 값은 0이 될 수 있다. 또한, 예를 들어, 사용자 1(1310)은 콘텐트 5에 대한 행동 이력이 없는 바, 피드백 벡터(1315)의 다섯 번째 요소의 값은 공백이 될 수 있다.
본 개시의 일 실시예에 따르면, 피드백 정보(1350)는 사용자의 디바이스로부터 콘텐트 추천 요청을 수신하기 전에, 복수의 사용자들의 복수의 콘텐트들에 대한 행동 등과 관련된 데이터에 기초하여 생성된 피드백 정보일 수 있다. 또한, 피드백 정보(1350)는 사용자의 디바이스로부터 콘텐트 추천 요청을 수신하고, 가장 최신의 복수의 사용자들의 복수의 콘텐트들에 대한 행동 등과 관련된 데이터에 기초하여 생성된 피드백 정보일 수도 있다.
도 4는 본 개시의 일 실시예에 따른 피드백 정보에 기초하여, 생성된 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들의 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 사용자 임베딩 벡터는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 기초하여, 사용자를 구별하기 위하여 생성된 임베딩 벡터이고, 콘텐트 임베딩 벡터는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 기초하여, 콘텐트를 구별하기 위하여 콘텐트에 대하여 생성된 임베딩 벡터일 수 있다.
본 개시의 일 실시예에 따르면 본 명세서에서 임베딩 벡터들(복수의 사용자들에 대한 사용자 임베딩 벡터들(1420) 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1430)을 포함.)은 피드백 정보 (1410)에 기초하여 다양한 방법으로 생성될 수 있다.
예를 들어, 도 4에서 볼 수 있듯이, 행렬 분해에 따라, 피드백 정보(1410)와 기 설정된 제1 임계치 이하의 에러를 가지는 복수의 사용자들에 대한 사용자 임베딩 벡터들(1420) 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1430)을 생성할 수 있다. 복수의 사용자들에 대한 사용자 임베딩 벡터들(1420)은 사용자 1의 사용자 임베딩 벡터(1421) 및 사용자 2의 사용자 임베딩 벡터(1422)를 포함할 수 있고, 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1430)은 콘텐트 2의 사용자 임베딩 벡터(1431)을 포함할 수 있다.
본 개시의 일 실시예에 따르면, 다음과 같은 수학식(1)을 만족하도록, 복수의 사용자들에 대한 사용자 임베딩 벡터들(1420) 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1430)을 생성할 수 있다.
Figure pat00001
(1)
수학식(1)의
Figure pat00002
는 피드백 정보(1410)의 사용자 u의 콘텐트 i에 대한 선호도를 나타내는 요소의 값이다.
Figure pat00003
는 사용자 i의 사용자 임베딩 벡터일 수 있고,
Figure pat00004
는 콘텐트 u의 콘텐트 임베딩 벡터일 수 있다.
Figure pat00005
은 기 설정된 값일 수 있고, u는 1-M 사이의 정수 값일 수 있고, i는 1-N사이의 정수 값일 수 있다.
본 개시의 일 실시예에 따르면, 임베딩 벡터의 차원은 서버의 메모리, 추천 콘텐트를 제공하기까지의 소요 시간 등을 고려하여 결정될 수 있고, 기 설정되어 서버에 저장되어 있을 수 있다. 또한, 피처 1(1440) 및 피처 2(1450)는 복수의 사용자들에 대한 사용자 임베딩 벡터들(1420) 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1430)의 축(axis)들일 수 있다.
본 명세서에서의 임베딩 벡터들은 행렬 분해(Matrix Factorization), 특정 아키텍처(architecture)로 구성된 인공 신경망 모델을 통한 학습 또는 원-핫 인코딩(one-hot encoding)에 기초한 임베딩 벡터 생성 방법 등을 통해 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성할 수 있고, 이에 한정되는 것은 아니다.
도 5는 본 개시의 일 실시예에 따른 도 4에서의 사용자1의 사용자 임베딩 벡터 및 사용자2의 임베딩 벡터를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 그래프(1500)는 사용자 1의 사용자 임베딩 벡터(1421) 및 사용자 2의 사용자 임베딩 벡터(1422)를 도시하고 있다. 도 4에서 볼 수 있듯이, 그래프(1500)의 x축은 피처 1(1440)일 수 있고, y축은 피처 2(1450)일 수 있다.
본 개시의 일 실시예에 따르면, 사용자 1의 사용자 임베딩 벡터(1421) 및 사용자 2의 사용자 임베딩 벡터(1422)는 잠재 벡터(Latent Vector) 혹은 잠재 팩터(Latent Factor)일 수 있고, 수학적인 값만을 나타낼 수 있다. 하지만, 피드백 정보에 기초하여, 기 설정된 기준에 따라 사용자 1의 사용자 임베딩 벡터(1421) 및 사용자 2의 사용자 임베딩 벡터(1422)을 생성할 수 있다. 피처 1(1440) 및 피처 2(1450)는 결과론적으로 사용자의 콘텐트에 대한 선호도와 관련 있는 축을 의미할 수 있다. 구체적으로, 사용자에게 추천 애플리케이션을 제공하는 서버의 경우, 게임 애플리케이션을 선호하는 사용자들의 피처 1(1440)축의 값이 크게 나타날 수 있고, 금융 애플리케이션을 선호하는 사용자들의 피처 2(1450)축의 값이 크게 나타날 수 있다. 예를 들어, 사용자 2의 피처1(1440)의 값이 사용자 1의 피처1(1440)의 값보다 큰 바, 사용자 2는 사용자 1보다 게임 애플리케이션을 선호할 확률이 높은 사용자에 해당될 수 있다. 따라서, 그래프(1500)에 대응되는 사용자 1의 사용자 임베딩 벡터(1421) 및 사용자 2의 사용자 임베딩 벡터(1422)을 포함하는 임베딩 공간 상에서, 사용자 임베딩 벡터들 간의 거리들이 가까울수록 사용자들 간의 복수의 콘텐트들에 대한 선호도가 유사할 수 있다.
도 6은 본 개시의 일 실시예에 따른 복수의 사용자 그룹들 및 복수의 사용자 그룹들의 중심 사용자들을 결정하는 방법에 관한 순서도이다.
동작 S1610에서, 서버는 기 설정된 복수의 사용자 그룹들의 수 및 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들을 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 기 설정된 복수의 사용자 그룹들의 수 및 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들을 결정하기 위해, 고차원의 복수의 사용자들에 대한 사용자 임베딩 벡터들을 기 설정된 저차원의 복수의 사용자들에 대한 사용자 임베딩 벡터들로 전환할 수 있다. 구체적으로, 복수의 사용자들에 대한 사용자 임베딩 벡터들의 차원이 큰 경우, 추천 콘텐트를 사용자에게 제공하기까지의 소요 시간 및 고차원의 데이터를 저차원의 데이터로 축소시켜 서버의 저장 공간 문제를 해결하기 위하여, 고차원의 복수의 사용자들에 대한 사용자 임베딩 벡터들을 기 설정된 저차원의 복수의 사용자들에 대한 사용자 임베딩 벡터들로 전환할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 기 설정된 복수의 사용자 그룹들의 수 및 전환된 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들을 결정할 수 있다. 예를 들어, 복수의 사용자 그룹들 각각의 분산의 합이 최소화되도록, 복수의 사용자 그룹들을 결정할 수 있다.
동작 S1620에서, 서버는 결정된 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 결정된 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들의 중심점들을 결정할 수 있다. 예를 들어, 복수의 사용자 그룹들의 중심점은 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들의 평균으로 계산된 벡터에 대응될 수 있다. 또한, 서버는 복수의 사용자 그룹들의 중심점들에 기초하여, 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다. 예를 들어, 복수의 사용자 그룹들의 중심 사용자들은 임베딩 공간 상에서 복수의 사용자 그룹들의 중심점들과 가장 가까이 위치한 복수의 사용자 그룹들의 사용자들일 수 있다.
도 7은 본 개시의 일실시예에 따른 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들의 중심 사용자들을 결정하는 예시를 나타내는 도면이다.
동작 S 1720에서, 서버는 고차원의 복수의 사용자들에 대한 사용자 임베딩 벡터들을 기 설정된 저차원의 복수의 사용자들에 대한 사용자 임베딩 벡터들로 전환할 수 있다. 예를 들어, 서버는 고차원 Nm(1710)의 복수의 사용자들에 대한 사용자 임베딩 벡터들을 기 설정된 저차원 Np(1730)의 복수의 사용자들에 대한 사용자 임베딩 벡터들로 전환할 수 있다. Np(1730)는 서버의 메모리 및 사용자에게 추천 콘텐트를 제공하기까지의 소요 시간 등을 종합적을 고려하여, 기 설정되는 값일 수 있다. 또한, 예를 들어, 서버는 주성분 분석(PCA: Principal Component Analysis)을 통해, 고차원의 복수의 사용자들에 대한 사용자 임베딩 벡터들을 기 설정된 저차원의 복수의 사용자들에 대한 사용자 임베딩 벡터들로 전환할 수 있다.
동작 S 1740에서, 서버는 기 설정된 복수의 사용자 그룹들의 수 및 전환된 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들을 결정할 수 있다. 구체적으로, 서버는 기 설정된 복수의 사용자 그룹들의 수 n(1750) 및 전환된 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, K-평균 군집화를 통해 복수의 사용자 그룹들을 결정할 수 있다. 또한, 기 설정된 복수의 사용자 그룹들의 수 n(1750)은 서버의 메모리 및 사용자에게 추천 콘텐트를 제공하기까지의 소요 시간 등을 종합적을 고려하여, 기 설정되는 값일 수 있고, 조정될 수 있는 값일 수 있다. 예를 들어, K-평균 군집화를 통해 아래의 수학식(2)를 만족하도록 복수의 사용자 그룹들을 결정될 수 있다.
Figure pat00006
(2)
수학식(2)의 S는 {
Figure pat00007
,
Figure pat00008
... ,
Figure pat00009
}로 구성되고, 각각의
Figure pat00010
는 i번째 복수의 사용자들의 그룹일 수 있다.
Figure pat00011
는 복수의 사용자 그룹들의 중심점일 수 있고,
Figure pat00012
는 i번째 복수의 사용자들의 그룹에 속하는 사용자들의 임베딩 벡터들의 거리에 기초하여 계산된 분산일 수 있다.
Figure pat00013
는 i번째 그룹의 분산일 수 있다.
본 개시의 일 실시예에 따른 도 7에서의 주성분 분석(1720) 및 K-평균 군집화(1740)는 복수의 사용자 그룹들 및 복수의 사용자 그룹들의 중심 사용자들을 결정하기 위한 일 실시예일 뿐, 이에 한정되는 것은 아니다.
도 8은 본 개시의 일 실시예에 임베딩 공간 상에서, 복수의 사용자 그룹들의 중심 사용자들을 결정하는 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 그래프(1800)은 사용자 임베딩 벡터들로 구성된 임베딩 공간일 수 있다. 또한, 사용자 임베딩 벡터들의 차원은 피처 1(1801) 및 피처 2(1802)일 수 있고, 임베딩 공간은 3개의 복수의 사용자 그룹들로 나누어 질 수 있다. 예를 들어, 그룹 1은 사용자 1(1811), 사용자 2(1812), 사용자 3(1813) 및 사용자 4(1820)로 구성될 수 있고, 그룹 2는 사용자 5(1831), 사용자 6(1832), 사용자 7(1833), 사용자 8(1834), 사용자 9(1835) 및 사용자 10(1840)으로 구성될 수 있고, 그룹 3은 사용자 11(1851), 사용자 12(1852), 사용자 13(1853) 및 사용자 14(1860)로 구성될 수 있다.
본 개시의 일 실시예에 따르면, 서버는 복수개의 복수의 사용자 그룹들 각각에 대하여 개의 복수의 사용자 그룹들의 중심점을 결정할 수 있다. 구체적으로, 서버는 복수개의 복수의 사용자 그룹들에 속하는 적어도 하나의 사용자들의 사용자 임베딩 벡터들에 기초하여, 복수의 사용자 그룹들의 중심점을 결정할 수 있다. 예를 들어, 사용자 그룹들에 속하는 적어도 하나의 사용자들의 사용자 임베딩 벡터들의 평균에 기초하여 복수의 사용자 그룹들의 중심점을 결정할 수 있다. 예를 들어, 그룹 1의 중심점은 중심점 1(1810)이고, 그룹 2의 중심점은 중심점 2(1830)이고, 그룹 3의 중심점은 중심점 3(1850)일 수 있다.
본 개시의 일 실시예에 따르면, 서버는 계산된 복수의 사용자 그룹들의 중심점들에 기초하여, 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다. 예를 들어, 도8에서 볼 수 있듯이, 그룹 1의 중심 사용자는 중심점 1(1810)과 가장 가까이 위치한 사용자 4(1820)일 수 있고, 그룹 2의 중심 사용자는 중심점 2(1830)과 가장 가까이 위치한 사용자 10(1840)일 수 있고, 그룹 3의 중심 사용자는 중심점 3(1850)과 가장 가까이 위치한 사용자 14(1860)일 수 있다.
본 개시의 일 실시예에 따른 도 8에서의 복수의 사용자 그룹들의 중심 사용자들을 결정하기 위한 방법은 일 실시예일 뿐, 이에 한정되는 것은 아니다.
도 9는 본 개시의 일 실시예에 따른 인공 신경망 모델을 훈련하는 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 서버의 인공 신경망 모델(1930)은 복수의 사용자들에 대한 사용자 임베딩 벡터들(1910) 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1920)을 학습 데이터로 사용하여 훈련된 인공 신경망 모델일 수 있다. 구체적으로, 인공 신경망 모델(1930)은 맞춤형 콘텐트 추천의 대상이 되는 사용자의 디바이스로부터 콘텐트 추천 요청을 수신하기 전에, 주기적으로 복수의 사용자들에 대한 사용자 임베딩 벡터들(1910) 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들(1920)을 학습 데이터로 사용하여 훈련될 수 있다. 또한, 인공 신경망 모델(1930)은 GMF (Generalized Matrix Factorization) 모델, MLP (Multi-Layer Perceptron) 모델 및 NeuMF (Neural Matrix Factorization) 모델 중 적어도 하나를 포함할 수 있지만, 이에 한정되는 것은 아니다.
본 개시의 일 실시예에 따르면, 인공 신경망 모델(1930)은 복수의 콘텐트들에 대한 중심 사용자들의 예측된 선호도를 나타내는 중심 사용자들의 선호도 벡터들(1940)을 출력할 수 있다. 또한, 중심 사용자들의 선호도 벡터들(1940) 및 피드백 정보 (1950)을 비교하여, 인공 신경망 모델(1930)을 훈련할 수 있다. 구체적으로, 인공 신경망 모델(1930)에서 출력된 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 피드백 정보(1950)에 기재된 중심 사용자들의 복수의 콘텐트들에 대한 선호도 데이터를 통하여, 인공 신경망 모델(1930)을 반복적으로(iteratively) 훈련할 수 있다.
도 10은 본 개시의 일 실시예에 따른 인공 신경망 모델을 설명하기 위한 도면이다.
본 개시의 일 실시예에 따르면, 인공 신경망 모델(1930)은 GMF 모델(2030), MLP 모델(2040) 및 NeuMF 모델(2050) 중 적어도 하나를 포함할 수 있다. 또한, 인공 신경망 모델(1930)의 입력으로 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 이용할 수 있다.
본 개시의 일 실시예에 따르면, 사용자 i의 사용자 임베딩 벡터(2010)는 복수개의 사용자 i의 사용자 임베딩 벡터들로 구성될 수 있다. 예를 들어, 사용자 i의 제1 사용자 임베딩 벡터(2011)은 GMF 모델(2030)로 입력될 수 있고, 사용자 i의 제2 사용자 임베딩 벡터(2012)은 MLP 모델(2040)로 입력될 수 있다. 또한, 제1 사용자 임베딩 벡터(2011) 및 제2 사용자 임베딩 벡터(2012)은 다양한 방법에 의해 생성된 사용자 임베딩 벡터일 수 있지만, 본 명세서에서 설명하는 일 실시예에 한정되지 않는다.
본 개시의 일 실시예에 따르면, 콘텐트 j의 콘텐트 임베딩 벡터(2020)은 복수개의 콘텐트 i의 콘텐트 임베딩 벡터들로 구성될 수 있다. 예를 들어, 콘텐트 j의 제1 콘텐트 임베딩 벡터(2024)은 GMF 모델(2030)로 입력될 수 있고, 콘텐트 j의 제2 콘텐트 임베딩 벡터(2023)은 MLP 모델(2040)로 입력될 수 있다. 또한, 제1 사용자 임베딩 벡터(2011) 및 제2 사용자 임베딩 벡터(2012)은 다양한 방법에 의해 생성된 사용자 임베딩 벡터일 수 있지만, 본 명세서에서 설명하는 실시예에 한정되지 않는다.
본 개시의 일 실시예에 따르면, GMF 모델(2030)은 NCF 모델(Neural Collaborative Filtering Model)의 특수한 예시에 해당되는 모델일 수 있고, 복수의 사용자들의 복수의 콘텐트들에 대한 선형적인 선호도를 예측하기 위한 모델일 수 있다. 본 개시의 일 실시예에 따른 MLP 모델(2040)은 복수 개의 층(layer)으로 구성되고, 복수의 사용자들의 복수의 콘텐트들에 대한 비 선형적인 선호도를 예측하기 위한 모델일 수 있다. 본 개시의 일 실시예에 따른 NeuMF 모델(2050)은 GMF 모델(2030)에서의 출력값 및 MLP 모델(2040)에서의 출력값에 기초하여, 사용자 i의 콘텐트 j에 대한 예측된 선호도 값
Figure pat00014
(2060)를 출력하는 모델일 수 있다.
또한, 본 개시의 일 실시예에 따르면, 피드백 정보(예를 들어, 도9의 피드백 정보(1950))에서 사용자 i의 피드백 벡터를 획득할 수 있고, 사용자 i의 피드백 벡터의 j번째 요소의 값은 사용자 i의 콘텐트 j에 대한 행동 데이터에 기초하여 획득한 사용자 i의 콘텐트 j에 대한 선호도 값
Figure pat00015
(2070)일 수 있다.
본 개시의 일 실시예에 따르면, 사용자 i의 콘텐트 j에 대한 예측된 선호도 값
Figure pat00016
(2060) 및 사용자 i의 콘텐트 j에 대한 선호도 값
Figure pat00017
(2070)에 기초하여, 인공 신경망 모델(1930)을 훈련시킬 수 있다. 예를 들어. 수학식(3)에 따라, 사용자 i의 콘텐트 j에 대한 예측된 선호도 값
Figure pat00018
(2060) 및 사용자 i의 콘텐트 j에 대한 선호도 값
Figure pat00019
(2070)에 기초하여, 인공 신경망 모델(1930)을 훈련시킬 수 있다.
Figure pat00020
(3)
수학식(3)의
Figure pat00021
는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도가 "긍정"인 것들의 집합을 나타내고,
Figure pat00022
는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도가 "부정"인 것들의 집합을 나타낼 수 있다. 본 명세서에 따르면,
Figure pat00023
Figure pat00024
에 속하는 사용자 u 및 콘텐트 i에 대한
Figure pat00025
값은 1 또는 0인 바,
Figure pat00026
도 실수 값을 가질 수 있다. 인공 신경망 모델(1930)은
Figure pat00027
가 기 설정된 임계치 이하가 되도록 훈련될 수 있다.
도 11은 본 개시의 일 실시예에 따른 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정하는 방법에 관한 순서도이다.
동작 S2110에서, 서버는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들을 비교하여, 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다. 구체적으로, 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적 혹은 차이 값에 기초하여, 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다. 예를 들어. 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적을 계산하고, 내적 값이 가장 큰 중심 사용자를 콘텐트의 추천에 이용될 중심 사용자로 선택할 수 있다.
또한, 아래와 같은 수학식(4)에 기초하여, 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 차이 값에 따라 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다. 예를 들어, 중심 사용자들에 대하여 차이 값(Loss)이 작을수록, 중심 사용자들의 복수의 콘텐트들에 대한 선호도는 콘텐트 추천의 대상이 되는 사용자의 복수의 콘텐트들에 대한 선호도와 유사하다고 결정될 수 있다.
Figure pat00028
(4)
Figure pat00029
은 중심 사용자 m의 차이 값을 나타내고,
Figure pat00030
는 기 설정된 하이퍼 파라미터로, 가중치를 나타낼 수 있다.
본 개시의 일 실시예에 따르면, 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적 혹은 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 차이 값에 기초하여, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 사용자의 복수의 콘텐트들에 대한 선호도 사이의 유사도 값을 결정할 수 있다. 예를 들어, 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적 값이 크거나 혹은 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 차이 값이 작은 경우, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 사용자의 복수의 콘텐트들에 대한 선호도 사이의 유사도 값도 크게 결정할 수 있다.
동작 S2120에서, 서버는 중심 사용자들의 선호도 벡터들 중에서 선택된 중심 사용자의 선호도 벡터를 추출할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 중심 사용자들의 선호도 벡터들 중에서 선택된 중심 사용자의 선호도 벡터를 추출할 수 있다. 선택된 중심 사용자는 중심 사용자들 중 사용자의 복수의 콘텐트들에 대한 선호도와 가장 유사한 선호도를 가질 것으로 예측된 사용자일 수 있다.
동작 S2130에서, 추출된 선호도 벡터에 기초하여, 적어도 하나의 추천 콘텐트들을 결정할 수 있다.
본 개시의 일 실시예에 따르면, 추출된 선호도 벡터의 요소 값에 기초하여, 적어도 하나의 추천 콘텐트들을 결정할 수 있다. 구체적으로, 서버에 저장된 기 설정된 개수 및 추출된 선호도 벡터의 요소 값에 기초하여, 적어도 하나의 추천 콘텐트를 결정할 수 있다. 예를 들어, 추출된 선호도 벡터에서 선호도 벡터의 요소 값이 큰 기 설정된 개수의 요소 값을 선택하고, 선택된 선호도 벡터의 요소 값들에 대응되는 적어도 하나의 콘텐트들을 사용자에게 추천할 맞춤형 콘텐트로 결정할 수 있다.
도 12는 본 개시의 일 실시예에 따른 사용자에게 추천될 적어도 하나의 추천 콘텐트들의 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 사용자의 피드백 벡터(2210) 및 중심 사용자들의 선호도 벡터들 사이의 내적을 계산하고, 내적 값이 가장 큰 중심 사용자를 콘텐트의 추천에 이용될 중심 사용자로 선택할 수 있다. 또한, 도12에서 볼 수 있듯이, 중심 사용자들의 선호도 벡터들은 제1 중심 사용자의 선호도 벡터(2230), 제2 중심 사용자의 선호도 벡터(2222) 및 제3 중심 사용자의 선호도 벡터(2223)을 포함할 수 있다.
본 개시의 일 실시예에 따르면, 사용자의 피드백 벡터 및 중심 사용자의 선호도 벡터사이의 내적은 요소 값이 공백인 경우를 제외하 대응되는 요소 간의 곱의 합을 통해 계산될 수 있다. 예를 들어, 사용자의 피드백 벡터(2210) 및 제1 중심 사용자의 선호도 벡터(2230)사이의 내적은 1
Figure pat00031
0.7+1
Figure pat00032
0.9=1.6으로 계산될 수 있고, 비슷하게 사용자의 피드백 벡터(2210) 및 제2 중심 사용자의 선호도 벡터(2222)사이의 내적은 0.9 및 사용자의 피드백 벡터(2210) 및 제3 중심 사용자의 선호도 벡터(2223)사이의 내적은 0.5로 계산될 수 있다. 따라서 내적 값이 1.6인 제1 중심 사용자를 사용자와 콘텐트에 대한 선호도가 가장 유사한 중심 사용자로 선택할 수 있고, 제1 중심 사용자를 콘텐트의 추천에 이용될 중심 사용자로 선택할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 서버는 제1 중심 사용자의 선호도 벡터(2230)의 요소 값에 기초하여, 사용자에게 추천될 적어도 하나의 추천 콘텐트(2240)를 결정할 수 있다. 예를 들어, 사용자에게 두개의 추천 콘텐트를 제공하는 것으로 기 설정된 경우, 제1 중심 사용자의 선호도 벡터(2230)의 요소 값이 큰 0.9 및 0.8을 선택할 수 있고, 선택된 요소 값 0.9(2231)및 0.8(2232)에 대응되는 콘텐트 4(2241) 및 콘텐트 5(2242)로 구성된 추천 콘텐트(2240)를 결정할 수 있다.
도 13은 본 개시의 일 실시예에 따른 중심 사용자들의 차이 값에 기초하여, 사용자에게 추천될 적어도 하나의 추천 콘텐트의 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 중심 사용자들의 선호도 벡터들 및 사용자의 피드백 벡터에 기초하여, 중심 사용자들의 차이 값에 대한 테이블 1(2300)을 획득할 수 있고, 테이블 1(2300)에 기초하여 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다. 예를 들어, 테이블(2300)의 차이 값 중 중심 사용자 1의 차이 값인 0.2가 가장 작은 바, 중심 사용자 1을 콘텐트의 추천에 이용될 중심 사용자로 선택할 수 있다.
본 개시의 일 실시예에 따르면, 중심 사용자 1의 선호도 벡터(2320)는 콘텐트1-콘텐트 15에 대한 예측된 선호도를 나타내는 벡터일 수 있다. 또한, 중심 사용자 1의 선호도 벡터(2320)를 예측된 선호도 값이 큰 순으로 정렬할 수 있고, 테이블 2(2330)와 같이 표현될 수 있다.
본 개시의 일 실시예에 따르면, 테이블 2(2330) 및 사용자에게 추천 콘텐트로 제공될 기 설정된 콘텐트의 개수에 기초하여, 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정할 수 있다. 예를 들어, 5개의 콘텐트들을 사용자에게 추천하기로 기 결정된 경우, 서버는 콘텐트에 대한 예측된 선호도 값이 높은 콘텐트인 콘텐트 3, 콘텐트 1, 콘텐트 2, 콘텐트 8 및 콘텐트 4(2340)를 추천 콘텐트(2350)로 결정할 수 있다.
도 14는 본 개시의 일 실시예에 따른 복수의 사용자 그룹들의 수에 따른 사용자에게 추천 콘텐트를 제공하기까지의 소요 시간 및 콘텐트 선호도 예측의 차이 값에 대한 도면이다.
본 개시의 일 실시예에 따르면, 그래프(2400)는 복수의 사용자 그룹들의 수(2410)에 따른 추천 콘텐트를 제공하기까지의 소요 시간(2420) 및 콘텐트 선호도 예측의 차이 값(2430)에 대한 그래프이다. 그래프(2400)의 x축은 복수의 사용자 그룹들의 수(2410)이고, 그래프(2400)의 y축은 추천 콘텐트를 제공하기까지의 소요 시간(2420) 및 콘텐트 선호도 예측의 차이 값(2430)이다.
본 개시의 일 실시예에 따르면, 복수의 사용자 그룹들의 수(2410)가 증가하는 경우, 사용자에게 추천 콘텐트를 제공하기 위해, 인공 신경망 모델에 더 많은 중심 사용자들의 사용자 임베딩 벡터의 입력이 요구될 수 있다. 따라서, 복수의 사용자 그룹들의 수(2410)가 증가하는 경우, 사용자에게 추천 콘텐트를 제공하기 위한 소요 시간(2420)이 증가할 수 있다.
본 개시의 일 실시예에 따르면, 복수의 사용자 그룹들의 수(2410)가 증가하는 경우, 서버는 더 많은 중심 사용자들과 사용자의 선호도를 비교하여, 추천 콘텐트를 사용자에게 제공하는 바, 선호 예측의 차이 값(2430)은 감소할 수 있다.
따라서, 추천 콘텐트를 제공하기까지의 소요 시간(2420) 및 콘텐트 선호도 예측의 차이 값(2430), 서버의 메모리 등을 종합적으로 고려하여, 적절한 복수의 사용자 그룹들의 수(2410)을 결정할 수 있다. 적절한 복수의 사용자 그룹들의 수(2410)를 결정한 경우, 서버는 사용자에게 맞춤형 추천 콘텐트를 제공할 수 있고, 동시에 추천 콘텐트를 제공하기까지의 소요 시간을 비약적으로 감소시킬 수 있다.
도 15는 본 개시의 일 실시예에 따른 복수의 사용자 그룹들의 수를 조정하고, 조정된 복수의 사용자 그룹들의 수에 기초하여, 사용자 및 복수의 사용자들을 재군집화하는 방법에 대한 순서도이다.
동작 S2510에서, 서버는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 사용자의 복수의 콘텐트들에 대한 선호도 간의 유사도 값들을 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 사용자의 복수의 콘텐트들에 대한 선호도 간의 유사도 값들을 결정할 수 있다. 구체적으로, 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적 혹은 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 차이 값에 기초하여, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 사용자의 복수의 콘텐트들에 대한 선호도 사이의 유사도 값을 결정할 수 있다. 예를 들어, 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적 값이 크거나 또는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 차이 값이 작은 경우, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 사용자의 복수의 콘텐트들에 대한 선호도 사이의 유사도 값도 크게 계산될 수 있다.
동작 S2520에서, 서버는 결정된 유사도 값들에 기초하여, 복수의 사용자 그룹들의 수를 조정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 결정된 유사도 값들 중 가장 큰 유사도 값을 결정하고, 가장 큰 유사도 값을 가진 중심 사용자를 선택할 수 있다. 예를 들어, 서버는 가장 큰 유사도 값 및 서버에 저장된 기 설정된 임계치를 비교하여, 복수의 사용자 그룹들의 수를 조정할지 여부를 결정할 수 있다.
동작 S2530에서 사용자의 피드백 벡터 및 피드백 정보에 기초하여, 사용자에 대한 사용자 임베딩 벡터를 생성하고, 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 재생성할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 사용자 및 서버 내의 복수의 사용자들의 복수의 콘텐트에 대한 행동, 행위 및 반응에 기초하여, 피드백 벡터 및 피드백 정보를 획득할 수 있다. 예를 들어, 서버는 피드백 벡터 및 피드백 정보에 기초하여, 사용자에 대한 사용자 임베딩 벡터를 생성하고, 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 재생성할 수 있다. 또한, 서버는 재생성된 사용자에 대한 사용자 임베딩 벡터, 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 인공 신경망 모델에 입력하여, 인공 신경망 모델을 미리 훈련시킬 수 있다. 또한, 새로운 사용자가 콘텐트 추천 요청을 송신하는 경우 기 재생성된 사용자에 대한 사용자 임베딩 벡터, 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들에 기초하여, 새로운 사용자에게 추천 콘텐트를 제공할 수 있다.
동작 S2540에서 조정된 복수의 사용자 그룹들의 수에 기초하여, 사용자 및 복수의 사용자들을 재군집화할 수 있다.
본 개시의 일 실시예에 따르면, 재생성된 사용자에 대한 사용자 임베딩 벡터, 복수의 사용자들에 대한 사용자 임베딩 벡터들, 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들 및 조정된 복수의 사용자 그룹들의 수에 기초하여, 사용자 및 복수의 사용자들을 재군집화할 수 있다.
도 16은 본 개시의 일 실시예에 따른 선택된 중심 사용자의 유사도 값에 기초하여, 복수개의 사용자 그룹들의 수를 조정할지 여부를 결정하고, 복수개의 사용자 그룹들의 수를 조정하는 경우, 조정된 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화하는 방법에 대한 흐름도이다.
동작 S2610에서, 서버는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 사용자의 복수의 콘텐트들에 예측된 선호도 간의 유사도 값들을 결정할 수 있다.
본 개시의 일 실시예에 따르면, 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적 혹은 차이 값을 계산할 수 있다. 또한, 계산된 내적 및 차이 값에 기초하여, 중심 사용자들의 복수의 콘텐트들에 대한 예측된 선호도 및 사용자의 복수의 콘텐트들에 예측된 선호도 간의 유사도 값들을 결정할 수 있다.
동작 S2620에서, 서버는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 기 결정된 유사도 값이 가장 큰 중심 사용자를 콘텐트의 추천에 이용될 중심 사용자로 선택할 수 있다.
동작 S2630에서, 서버는 결정된 유사도 값들 중 선택된 중심 사용자의 유사도 값을 식별할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들에 기초하여, 기 결정된 유사도 값이 가장 큰 중심 사용자를 콘텐트의 추천에 이용될 중심 사용자로 선택할 수 있는 바, 결정된 유사도 값들 중 가장 큰 유사도 값을 식별할 수 있다.
동작 S2640에서, 서버는 식별된 유사도 값을 제2 임계치와 비교하여, 복수의 사용자 그룹들의 수를 증가시킬지 여부를 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 식별된 유사도 값을 제2 임계치와 비교하여, 복수의 사용자 그룹들의 수를 증가시킬지 여부를 결정할 수 있고, 제2 임계치는 메모리의 크기, 복수의 사용자 그룹들의 수, 메모리에 저장된 복수의 사용자들의 복수의 콘텐트에 대한 선호도와 관련된 행동, 반응 등에 관한 데이터 크기 등을 고려하여 기 설정된 값일 수 있다. 예를 들어, 서버는 식별된 유사도 값이 기 설정된 제2 임계치 이하인 경우, 복수의 사용자 그룹들의 수가 증가되도록 조정된 복수의 사용자 그룹들의 수를 결정할 수 있다(동작 S2660). 또한, 예를 들어, 서버는 식별된 유사도 값이 기 설정된 제2 임계치보다 큰 경우, 서버는 식별된 유사도 값을 제3 임계치와 비교하여, 복수의 사용자 그룹들의 수를 감소시킬지 여부를 결정할 수 있다(동작 S2650).
동작 S2650에서, 서버는 식별된 유사도 값을 제3 임계치와 비교하여, 복수의 사용자 그룹들의 수를 감소시킬지 여부를 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 식별된 유사도 값을 제3 임계치와 비교하여, 복수의 사용자 그룹들의 수를 감소시킬지 여부를 결정할 수 있고, 제3 임계치는 메모리의 크기, 복수의 사용자 그룹들의 수, 메모리에 저장된 복수의 사용자들의 복수의 콘텐트에 대한 선호도와 관련된 행동, 반응 등에 관한 데이터 크기 등을 고려하여 기 설정된 값일 수 있다. 예를 들어, 제3 임계치는 제2 임계치보다 작은 값일 수 있다. 예를 들어, 서버는 식별된 유사도 값이 기 설정된 제3 임계치 이상인 경우, 복수의 사용자 그룹들의 수가 감소되도록 조정된 복수의 사용자 그룹들의 수를 결정할 수 있다(동작 S2670). 또한, 예를 들어, 서버는 식별된 유사도 값이 기 설정된 제3 임계치보다 작은 경우, 복수의 사용자 그룹들의 수가 유지되도록 결정할 수 있다(동작 S2680).
동작 S2660에서, 서버는 식별된 유사도 값이 기 설정된 제2 임계치 이하인 경우, 복수의 사용자 그룹들의 수가 증가되도록 조정된 복수의 사용자 그룹들의 수를 결정할 수 있다.
동작 S2670에서, 서버는 식별된 유사도 값이 기 설정된 제3 임계치 이상인 경우, 복수의 사용자 그룹들의 수가 감소되도록 조정된 복수의 사용자 그룹들의 수를 결정할 수 있다.
동작 S2680에서, 서버는 식별된 유사도 값이 기 설정된 제3 임계치보다 작은 경우, 복수의 사용자 그룹들의 수가 유지되도록 결정할 수 있다.
동작 S2690에서, 서버는 조정된 복수의 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 조정된 복수의 사용자 그룹들의 수, 사용자 피드백 벡터, 복수의 사용자들의 피드백 정보에 기초하여, 복수의 사용자들 및 사용자를 재군집화할 수 있다. 구체적으로, 서버는 조정된 복수의 사용자 그룹들의 수, 사용자의 피드백 벡터, 복수의 사용자들의 피드백 정보에 기초하여, 사용자의 사용자 임베딩 벡터, 복수의 사용자들의 사용자 임베딩 벡터들 및 복수의 콘텐트들의 콘텐트 임베딩 벡터들을 재생성할 수 있다. 또한, 재생성된 사용자의 사용자 임베딩 벡터, 복수의 사용자들의 사용자 임베딩 벡터들 및 복수의 콘텐트들의 콘텐트 임베딩 벡터들에 기초하여, 복수의 사용자 및 사용자를 재군집화할 수 있다. 예를 들어, 서버는 주성분 분석 또는 k-평균 군집화 중 적어도 하나에 기초하여 복수의 사용자 및 사용자를 재군집화할 수 있다.
도 17은 본 개시의 일 실시예에 따른 도 16에서의 복수개의 사용자 그룹들의 수를 줄이는 경우, 조정된 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화하는 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 그래프(2700)는 복수의 사용자들의 사용자 임베딩 벡터들로 구성된 임베딩 공간을 나타낼 수 있고, 그래프(2700)의 x축은 피처 1(2701)이고, 그래프(1700)의 y축이 피처 2(2702)일 수 있다.
본 개시의 일 실시예에 따르면, 동작 S2670에 의해, 복수개의 사용자 그룹들의 수를 3개에서 2개로 조정할 수 있다. 예를 들어, 그룹 1(2710)에는 사용자 1(2711), 사용자 2(2712), 사용자 3(2713), 사용자 4(2714), 사용자 5(2715), 사용자 6(2716), 사용자 7(2717), 사용자 8(2718), 사용자 9(2719) 및 사용자 10(2720)가 포함될 수 있다. 또한, 예를 들어 그룹 2(2730)에는 사용자 11(2731), 사용자 12(2732), 사용자 13(2733), 사용자 14(2714)및 사용자(2740)가 포함될 수 있다. 복수의 사용자 그룹들은 그룹 1(2710) 및 그룹 2(2730)로 재군집화 될 수 있고, 사용자(2740)는 콘텐트 추천의 대상이 되는 사용자일 수 있다.
도 18은 본 개시의 일 실시예에 따른 도 16에서의 복수개의 사용자 그룹들의 수를 유지하는 경우, 복수의 사용자 및 사용자를 재군집화하는 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 그래프(2800)는 복수의 사용자들의 사용자 임베딩 벡터들로 구성된 임베딩 공간을 나타낼 수 있고, 그래프(2800)의 x축은 피처 1(2801)이고, 그래프(1800)의 y축이 피처 2(2802)일 수 있다.
본 개시의 일 실시예에 따르면, 동작 S2680에 의해, 복수개의 사용자 그룹들의 수를 3개로 유지할 수 있다. 예를 들어, 그룹 1(2810)에는 사용자 1(2811), 사용자 2(2812), 사용자 3(2813), 사용자 4(2814) 및 사용자(2820)가 포함될 수 있다. 또한, 예를 들어, 그룹 2(2830)에는 사용자 5(2831), 사용자 6(2832), 사용자 7(2833), 사용자 8(2834) 및 사용자 9(2835)가 포함될 수 있다. 또한, 예를 들어, 그룹 3(2850)에는 사용자 10(2851), 사용자 11(2852), 사용자 12(2853), 사용자 13(2854) 및 사용자 14(2855)가 포함될 수 있다. 예를 들어, 복수의 사용자 그룹들은 그룹 1(2810), 그룹 2(2830) 및 그룹 3(2850)으로 재군집화 될 수 있고, 사용자(2820)는 콘텐트 추천의 대상이 되는 사용자일 수 있다.
도 19는 본 개시의 일 실시예에 따른 도 16에서의 복수개의 사용자 그룹들의 수를 늘리는 경우, 조정된 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화하는 예시를 나타내는 도면이다.
본 개시의 일 실시예에 따르면, 그래프(2900)는 복수의 사용자들의 사용자 임베딩 벡터들로 구성된 임베딩 공간을 나타낼 수 있고, 그래프(2900)의 x축은 피처 1(2901)이고, 그래프(1900)의 y축이 피처 2(2902)일 수 있다.
본 개시의 일 실시예에 따르면, 동작 S2660에 의해, 복수개의 사용자 그룹들의 수를 3개에서 4개로 조정할 수 있다. 예를 들어, 그룹 1(2910)에는 사용자 1(2911), 사용자 2(2912), 사용자 3(2913), 사용자 4(2914) 및 사용자(2920)가 포함될 수 있다. 또한, 예를 들어, 그룹 2(2930)에는 사용자 5(2931), 사용자 6(2932) 및 사용자 7(2833)가 포함될 수 있다. 또한, 예를 들어, 그룹 3(2950)에는 사용자 8(2951), 사용자 9(2952) 및 사용자 10(2853)가 포함될 수 있다. 또한, 예를 들어, 그룹 4(2870)에는 사용자 11(2871), 사용자 12(2872), 사용자 13(2873) 및 사용자 14(2874)가 포함될 수 있다. 복수의 사용자 그룹들은 그룹 1(2810), 그룹 2(2830), 그룹 3(2850) 및 그룹 4(2870)로 재군집화 될 수 있고, 사용자(2920)는 콘텐트 추천의 대상이 되는 사용자일 수 있다.
도 20은 본 개시의 일 실시예에 따른 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수개의 사용자 그룹들의 수를 조정할지 여부를 결정하고, 복수개의 사용자 그룹들의 수를 조정하는 경우, 조정된 사용자 그룹들의 수로 복수의 사용자 및 사용자를 재군집화하는 방법에 대한 흐름도이다.
본 개시의 일 실시예에 따르면, 서버는 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들 및 기 설정된 제4 임계치에 비교하여, 복수개의 사용자 그룹들의 수를 조정할 수 있다. 구체적으로, 복수개의 사용자 그룹들 중 임의의 사용자 그룹에 대하여, 임의의 사용자 그룹에 속하는 사용자 1 및 사용자 2 사이의 임베딩 공간 상에서의 거리가 임계치 이상인 경우, 서버는 사용자 1 및 사용자 2가 동일한 사용자 그룹에 속하는 것이 적절하지 않은 바, 복수개의 사용자 그룹들의 수가 증가되도록 조정할 수 있다.
동작 S3010에서, 서버는 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들의 최대 거리들을 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들을 계산할 수 있다. 구체적으로, 서버는 임베딩 공간 상에서 복수의 사용자들 사이의 위치가 가까울수록, 복수의 사용자들 간의 콘텐트에 대한 선호도가 유사하다고 결정할 수 있다. 또한, 계산된 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들의 최대 거리들을 결정할 수 있다. 예를 들어, 복수의 사용자 그룹들 중 제1 그룹에 대하여, 서버는 제1 그룹에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들 중 유클리드 거리가 가장 먼 사용자 1 및 사용자 2를 선택할 수 있다. 또한, 예를 들어, 사용자 1의 사용자 임베딩 벡터 및 사용자 2의 사용자 임베딩 벡터 사이의 유클리드 거리를 제1 그룹의 최대 거리로 결정할 수 있지만, 이에 한정되는 것은 아니다.
동작 S3020에서, 서버는 모든 복수의 사용자 그룹들의 최대 거리들 및 제4 임계치를 비교하여, 복수의 사용자 그룹들의 수를 조정할지 여부를 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 모든 복수의 사용자 그룹들의 최대 거리들 및 제4 임계치를 비교하여, 복수의 사용자 그룹들의 수를 조정할지 여부를 결정할 수 있고, 제4 임계치는 복수의 사용자 그룹들의 수, 메모리 크기, 추천 콘텐트를 제공하기까지의 소요 시간 등을 고려하여 기 결정된 값일 수 있다. 예를 들어, 모든 복수의 사용자 그룹들의 최대 거리들이 제4 임계치 이하인 경우, 서버는 복수의 사용자 그룹들의 수가 유지되도록 결정할 수 있다(동작 S3040). 또한, 예를 들어, 모든 복수의 사용자 그룹들의 최대 거리들 중 적어도 하나의 최대 거리가 제4 임계치보다 큰 경우, 서버는 복수의 사용자 그룹들의 수가 증가되도록 조정할 수 있다(동작 S3030).
동작 S3030에서, 서버는 모든 복수의 사용자 그룹들의 최대 거리들 중 적어도 하나의 최대 거리가 제4 임계치보다 큰 경우, 복수의 사용자 그룹들의 수가 증가되도록 조정할 수 있다.
동작 S3040에서, 서버는 모든 복수의 사용자 그룹들의 최대 거리들이 제4 임계치 이하인 경우, 서버는 복수의 사용자 그룹들의 수가 유지되도록 결정할 수 있다.
동작 S3050에서, 서버는 조정된 사용자 그룹들의 수로 서버 내의 사용자 및 새로운 사용자를 재군집화할 수 있다.
본 개시의 일 실시예에 따르면, 서버는 조정된 복수의 사용자 그룹들의 수, 사용자 피드백 벡터, 복수의 사용자들의 피드백 정보에 기초하여, 복수의 사용자 및 사용자를 재군집화할 수 있다. 구체적으로, 서버는 조정된 복수의 사용자 그룹들의 수, 사용자의 피드백 벡터, 복수의 사용자들의 피드백 정보에 기초하여, 사용자의 사용자 임베딩 벡터, 복수의 사용자들의 사용자 임베딩 벡터들 및 복수의 콘텐트들의 콘텐트 임베딩 벡터들을 재생성할 수 있다. 또한, 재생성된 사용자의 사용자 임베딩 벡터, 복수의 사용자들의 사용자 임베딩들에 기초하여, 서버내의 복수의 사용자 및 사용자를 재군집화할 수 있다. 예를 들어, 서버는 주성분 분석 또는 k-평균 군집화 중 적어도 하나에 기초하여 복수의 사용자 및 사용자를 재군집화할 수 있다.
도 21는 본 개시의 일 실시예에 따른 서버를 설명하기 위한 블록도이다.
도 21을 참조하면, 서버(3100)는 통신 인터페이스(3110), 프로세서(3120) 및 메모리(3130)를 포함하며, 메모리(3130)는 사용자 피드백 벡터 획득 모듈(3131), 피드백 정보 획득 모듈(3132), 임베딩 벡터 생성 모듈(3133), 군집화 모듈(3134), 중심 사용자 결정 모듈(3135), 인공 신경망 모델(3136), 선호도 벡터 획득 모듈(3137), 추천 콘텐트 결정 모듈(3138), 사용자 피드백 데이터 DB(3139) 및 그룹 수 조정 모듈(3140)을 포함할 수 있다.
도 21을 참조하면, 디바이스(3200)는 디스플레이부(3210), 통신 인터페이스부(3220), 프로세서(3230) 및 메모리(3340)을 포함할 수 있다.
사용자의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작은 디바이스(3200)의 사용자 입력부(미도시)를 통해 입력될 수 있다. 구체적으로, 디스플레이부(3210)는 터치 스크린일 수 있고, 터치 스크린은 입력부로도 이용될 수 있다. 예를 들어, 사용자가 터치 스크린을 통해 복수의 콘텐트들을 클릭하거나 스크롤하는 행동은 사용자의 복수의 콘텐트들에 대한 행동, 반응일 수 있다.
디바이스(3200)는 복수의 사용자들의 디바이스들일 수 있고, 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 대한 이력 혹은 데이터를 복수의 사용자들의 디바이스들의 통신 인터페이스부(3220)을 통하여 서버(3100)로 송신할 수 있다. 예를 들어, 도 1의 사용자 1(1001)의 복수의 콘텐트들에 대한 행동, 반응 또는 동작에 대한 데이터는 사용자 1(1001)의 디바이스를 통하여 서버(3100)로 송신될 수 있고, 도 2의 사용자 2(1002) 및 사용자 3(1003)의 복수의 콘텐트들에 대한 행동, 반응 또는 동작에 대한 데이터도 사용자 2(1002)의 디바이스 및 사용자 3(1003)의 디바이스를 통하여 서버(3100)로 송신될 수 있다. 또한 디바이스(3200)는 콘텐트 추천의 대상이 되는 사용자(예를 들어, 도 1의 사용자(1004))의 디바이스일 수도 있다. 또한, 사용자의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작은 프로세서(3220)에 의해 업데이트될 수 있고, 메모리(3230)에 저장된 후, 주기적으로 서버(3100)로 전송될 수 있다. 예를 들어, 프로세서(3220)를 통한 업데이트에 의하여, 사용자의 복수의 콘텐트들에 대한 평점을 매기는 행위 또한 사용자의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 포함될 수 있다. 또한, 예를 들어, 사용자의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작이 기 설정된 일정한 시간 동안 메모리(3230)에 저장된 후, 주기적으로 서버(3100)로 전송될 수 있다.
디바이스(3200)는 스마트폰, 태블릿 PC, PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 가전기기 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 디바이스(3200)는 통신 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 디바이스일 수 있다
또한, 디바이스(3200) 및 서버(3100)을 통신 연결하는 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN) 또는 부가가치 통신망(Value Added Network; VAN) 등과 같은 유선 네트워크나 이동 통신망(mobile radio communication network) 또는 위성 통신망 등과 같은 모든 종류의 무선 네트워크로 구현될 수 있다. 또한, 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network) 또는 위성 통신망 중 적어도 둘 이상의 상호 조합을 포함할 수 있으며, 도 1에 도시된 각 네트워크 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함한다. 무선 통신은 예를 들어, 무선 랜(Wi-Fi), 블루투스, 블루투스 저 에너지(Bluetooth low energy), 지그비, WFD(Wi-Fi Direct), UWB(ultra wideband), 적외선 통신(IrDA, infrared Data Association), NFC(Near Field Communication) 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
통신 인터페이스(3110)는, 디바이스(3200)와의 통신을 위한 하나 이상의 구성 요소를 포함할 수 있다. 통신 인터페이스(3110)는 사용자에게 맞춤형 추천 콘텐트를 제공하기 위해 필요한 정보를 디바이스(3200)와 송수신할 수 있다.
또한, 통신 인터페이스(3110)는 사용자에게 맞춤형 추천 콘텐트를 제공하기 위해 다른 디바이스(미도시) 및 다른 서버(미도시)와 통신할 수 있다. 예를 들어, 통신 인터페이스(3110)는, 근거리 통신부, 이동 통신부 및 방송 수신부를 포함할 수 있다. 근거리 통신부(short-range wireless communication unit)(151)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 이동 통신부는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다. 방송 수신부는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다.
프로세서(3120)는 서버(3100)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(3120)는, 후술할 메모리(3130)에 저장된 프로그램들을 실행함으로써, 본 명세서에서의 추천 콘텐트를 하기 위한 서버(3100)의 기능을 제어할 수 있다.
메모리(3130)는 프로세서(3120)의 처리 및 제어를 위한 프로그램을 저장할 수 있다. 메모리(3130)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
메모리(3130)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, 메모리(3130)에는 사용자 피드백 벡터 획득 모듈(3131), 피드백 정보 획득 모듈(3132), 임베딩 벡터 생성 모듈(3133), 군집화 모듈(3134), 중심 사용자 결정 모듈(3135), 인공 신경망 모델(3136), 선호도 벡터 획득 모듈(3137), 추천 콘텐트 결정 모듈(3138), 사용자 피드백 데이터 DB(3139) 및 그룹 수 조정 모듈(3140)이 포함될 수 있다.
사용자 피드백 벡터 획득 모듈(3131)은 추천의 대상이 되는 사용자의 피드백 벡터 또한 획득할 수 있다. 구체적으로, 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 따라 추천의 대상이 되는 사용자의 피드백 벡터 또한 획득할 수 있다. 예를 들어, 콘텐트 추천 요청은 사용자의 디바이스(3200)의 디스플레이부(3310)에 콘텐트 추천 요청 여부를 선택하는 창이 팝업(pop-up)될 수도 있다. 또한, 예를 들어, 사용자가 콘텐트 추천과 관련된 애플리케이션, 웹 페이지 등에 접속하는 경우, 자동으로 콘텐트 추천 요청이 서버(3100)로 전송될 수 있다. 콘텐트 추천 요청과 함께 사용자의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작은 서버(3100)로 전송될 수 있고, 사용자의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 기초하여 사용자 피드백 벡터 획득 모듈(3131)은 추천의 대상이 되는 사용자의 피드백 벡터 또한 획득할 수 있다.
피드백 정보 획득 모듈(3132)은 디바이스(3200)로부터 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작을 획득하고, 복수의 사용자들의 복수의 콘텐트들 중 적어도 하나에 대한 선호도를 나타내는 피드백 정보를 생성 또는 획득할 수 있다. 본 명세서에서, 피드백 정보는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도를 나타내는 복수의 피드백 벡터들을 포함할 수 있고, 피드백 벡터는 복수의 콘텐트들 중 적어도 하나에 대한 사용자의 선호도를 나타내는 벡터일 수 있다.
구체적으로, 복수의 사용자들의 피드백 벡터들은 콘텐트 추천 요청이 있기 전에, 기 생성되어 사용자 피드백 벡터 획득 모듈(3131)에 저장되어 있을 수도 있다. 또한, 예를 들어, 콘텐트 추천 요청이 있는 경우, 사용자 피드백 벡터 획득 모듈(3131)은 가장 최신의 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 기초하여 복수의 피드백 벡터들을 생성할 수 있다.
임베딩 벡터 생성 모듈(3133)은 사용자 피드백 벡터 획득 모듈(3131)에서 생성된 피드백 정보에 기초하여, 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성할 수 있다. 임베딩 벡터 생성 모듈(3133)은 행렬 분해(Matrix Factorization), 특정 아키텍처(architecture)로 구성된 인공 신경망 모델을 통한 학습 또는 원-핫 인코딩(one-hot encoding)에 기초한 임베딩 벡터 생성 방법 등을 통해 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성할 수 있고, 이에 한정되는 것은 아니다.
또한, 구체적으로, 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들은 콘텐트 추천 요청이 있기 전에, 기 생성되어 임베딩 벡터 생성 모듈(3133)에 저장되어 있을 수도 있다. 또한, 예를 들어, 콘텐트 추천 요청이 있는 경우, 사용자 피드백 벡터 획득 모듈(3131)은 가장 최신의 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 기초하여 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성할 수 있다.
군집화 모듈(3134)은 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 복수의 사용자들을 군집화할 수 있다. 구체적으로, 복수의 사용자 그룹들의 수는 군집화 모듈(3134)에 저장되어 있을 수 있고, 복수의 사용자 그룹들의 수 및 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 복수의 사용자들을 군집화할 수 있다. 예를 들어, 군집화 모듈(3134)은 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리에 기초하여 복수의 사용자들의 그룹들을 결정할 수 있다. 또한, 예를 들어, 군집화 모듈(3134)은 k-평균 군집화에 기초하여, 복수의 사용자들을 기 설정된 복수의 사용자 그룹들의 수의 복수의 사용자 그룹들을 그룹화할 수 있다. 그룹화된 복수의 사용자들에 대한 정보는 군집화 모듈(3134)에 저장되어 있을 수 있다.
또한, 구체적으로, 콘텐트 추천 요청이 있기 전에, 복수의 사용자들에 대한 사용자 임베딩 벡터들은 기 생성되어 있을 수 있고, 기 생성된 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여 복수의 사용자들을 그룹화할 수 있다. 또한, 예를 들어, 콘텐트 추천 요청이 있는 경우, 사용자 피드백 벡터 획득 모듈(3131)은 가장 최신의 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 기초하여 복수의 사용자들에 대한 사용자 임베딩 벡터들을 생성할 수 있고, 군집화 모듈(3134)은 생성된 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여 복수의 사용자들을 그룹화할 수 있다.
중심 사용자 결정 모듈(3135)은 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 복수의 사용자 그룹들에 대응되는 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다. 구체적으로, 결정된 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다. 또한, 복수의 사용자 그룹들의 중심 사용자들은 중심 사용자 결정 모듈(3135)에 저장되어 있을 수 있다.
또한, 구체적으로, 콘텐트 추천 요청이 있는 경우, 중심 사용자 결정 모듈(3135)은 가장 최신의 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 기초하여, 복수의 사용자 그룹들에 대응되는 복수의 사용자 그룹들의 중심 사용자들을 결정할 수 있다. 또한, 최신의 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 기초하여, 복수의 사용자 그룹들에 대응되는 복수의 사용자 그룹들의 중심 사용자들을 결정하는 경우, 1)추천의 대상이 되는 사용자에게 콘텐트를 추천하기까지의 소요 시간은 길어질 수 있지만, 2) 최신의 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 및 동작에 대한 데이터를 사용한 바, 더 적절한 맞춤형 추천 콘텐트를 제공할 수도 있다.
인공 신경망 모델(3136)은 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델일 수 있다. 인공 신경망 모델(3136)의 학습 데이터는 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들일 수 있다. 또한, 인공 신경망 모델은 GMF 모델, MLP 모델 및 NeuMF 모델 중 적어도 하나를 포함하는 인공 신경망 모델일 수 있다. 또한, 인공 신경망 모델(3136)은 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들이 생성되는 경우, 주기적으로 학습되는 인공 신경망 모델일 수 있다. 또한, 예를 들어, 새로운 사용자에게 적어도 하나의 콘텐트들을 추천한 후, 새로운 사용자의 사용자 임베딩 벡터는 인공 신경망 모델(3136)의 학습 데이터로 사용될 수 있다.
선호도 벡터 획득 모듈(3137)은 인공 신경망 모델에 입력된 중심 사용자들에 대한 사용자 임베딩 벡터들 및 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들에 기초하여, 복수의 콘텐트들에 대한 중심 사용자들의 예측된 선호도를 나타내는 중심 사용자들의 선호도 벡터들을 생성할 수 있다. 예를 들어, 중심 사용자1의 선호도 벡터는 중심 사용자1의 복수의 콘텐트들에 대한 예측된 선호도를 나타낼 수 있고, 중심 사용자1의 선호도 벡터 첫번째 요소 값이 두번째 요소 값보다 큰 경우, 프로세서(3120)는 중심 사용자1가 콘텐트 2보다 콘텐트 1을 더 선호할 것으로 예측할 수 있다.
추천 콘텐트 결정 모듈(3138)은 선호도 벡터 획득 모듈(3137)에서 획득된 중심 사용자들의 선호도 벡터들에 기초하여, 추천될 적어도 하나의 추천 콘텐트들을 결정할 수 있다.
구체적으로, 추천 콘텐트 결정 모듈(3138)은 중심 사용자들의 선호도 벡터들 및 사용 피드백 획득 모듈(3131)에 저장된 사용자의 피드백 벡터에 기초하여, 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다. 예를 들어, 선호도 벡터들 중 추천의 대상이 되는 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적 혹은 차이 값에 기초하여, 콘텐트의 추천에 이용될 중심 사용자를 선택할 수 있다. 예를 들어. 사용자의 피드백 벡터 및 중심 사용자들의 선호도 벡터들 사이의 내적을 계산하고, 내적 값이 가장 큰 중심 사용자를 콘텐트의 추천에 이용될 중심 사용자로 선택할 수 있다.
또한, 구체적으로, 중심 사용자들의 선호도 벡터들 중에서 선택된 중심 사용자의 선호도 벡터를 추출하고, 사용자에게 추천할 적어도 하나의 추천 콘텐트를 결정할 수 있다. 예를 들어, 사용자에게 추천할 컨텐츠의 개수는 기 설정되어, 추천 콘텐트 결정 모듈(3138)에 저장되어 있을 수 있다. 또한, 사용자에게 추천할 적어도 하나의 추천 콘텐트들은 선택된 중심 사용자의 선호도 벡터에서 요소의 값이 큰 기 저장된 사용자에게 추천할 컨텐츠의 개수에 따라 선택될 수 있다.
사용자 피드백 데이터 DB(3139)는 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 또는 동작에 대한 이력 혹은 데이터를 저장할 수 있다. 예를 들어, 서버(3100)의 통신 인터페이스(3110)는 디바이스(3200)의 통신 인터페이스(3220)로부터 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 또는 동작에 대한 이력 혹은 데이터를 수신할 수 있고, 수신된 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 또는 동작에 대한 이력 혹은 데이터는 사용자 피드백 데이터 DB(3139)에 저장될 수 있다. 또한, 피드백 정보 획득 모듈(3132)은 사용자 피드백 데이터 DB(3139)로부터 복수의 사용자들의 복수의 콘텐트들에 대한 선호도에 관련된 행동, 반응 또는 동작에 대한 이력 혹은 데이터를 획득하여, 피드백 정보를 획득할 수 있다.
그룹 수 조정 모듈(3140)은 추천 콘텐트 결정 모듈(3138)에서 선택된 중심 사용자의 선호도 벡터 및 콘텐트 추천의 대상인 사용자의 피드백 벡터에 기초하여, 복수의 사용자 그룹들의 수를 조정할 수 있다.
구체적으로, 그룹 수 조정 모듈(3140)은 추천 콘텐트 결정 모듈(3138)에서 선택된 중심 사용자의 선호도 벡터 및 콘텐트 추천의 대상인 사용자의 피드백 벡터가 유사한 정도를 고려하여, 복수의 사용자 그룹들의 수를 조정할 수 있다. 예를 들어, 그룹 수 조정 모듈(3140)은 추천 콘텐트 결정 모듈(3138)에서 선택된 중심 사용자의 선호도 벡터 및 콘텐트 추천의 대상인 사용자의 피드백 벡터의 유사도 값을 계산하고, 계산된 유사도 값이 그룹 수 조정 모듈(3140)에 기 저장된 임계 유사도 값과 비교할 수 있다. 그룹 수 조정 모듈(3140)은 계산된 유사도 값이 기 저장된 임계 유사도 값보다 큰 경우, 복수의 사용자 그룹들의 수를 줄이고, 계산된 유사도 값이 기 저장된 임계 유사도 값보다 작은 경우, 복수의 사용자 그룹들의 수를 늘릴 수 있다.
또한, 구체적으로, 그룹 수 조정 모듈(3140)은 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들 및 기 설정된 임계치에 비교하여, 복수개의 사용자 그룹들의 수를 조정할 수 있다. 예를 들어, 복수개의 사용자 그룹들 중 임의의 사용자 그룹에 대하여, 임의의 사용자 그룹에 속하는 사용자 1 및 사용자 2 사이의 임베딩 공간 상에서의 거리가 임계치 이상인 경우, 서버는 사용자 1 및 사용자 2가 동일한 사용자 그룹에 속하는 것이 적절하지 않은 바, 복수개의 사용자 그룹들의 수가 증가되도록 조정할 수 있다.
일 실시예에 따르면, 기기로 읽을 수 있는 저장매체 또는 기록매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 전자 장치, 어플리케이션 스토어의 전자 장치, 또는 중계 전자 장치의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 개시의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.

Claims (20)

  1. 서버가 사용자에게 콘텐트를 추천하는 방법에 있어서,
    상기 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 따라, 복수의 콘텐트들 중 적어도 하나에 대한 상기 사용자의 피드백 벡터를 획득하는 동작;
    복수의 사용자들이 이용한 상기 복수의 콘텐트들에 관한 피드백 정보를 획득하는 동작;
    상기 피드백 정보에 기초하여, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성하는 동작;
    상기 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 상기 복수의 사용자들을 군집화(grouping)함으로써 복수의 사용자 그룹들 및 상기 복수의 사용자 그룹들에 대응되는 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하는 동작;
    상기 중심 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을, 사용자의 콘텐트에 대한 선호도를 예측(estimation)하기 위한 인공 신경망 모델에 입력하는 동작;
    상기 인공 신경망 모델에 의해 출력되는, 상기 복수의 콘텐트들에 대한 상기 중심 사용자들의 예측된 선호도를 나타내는 상기 중심 사용자들의 선호도 벡터들을 획득하는 동작;
    상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 사용자에게 추천될 적어도 하나의 추천 콘텐트들을 결정하는 동작; 및
    상기 결정된 적어도 하나의 콘텐트들을 상기 사용자에게 추천하는 동작; 을 포함하는 방법.
  2. 제 1항에 있어서,
    상기 사용자의 피드백 벡터는 상기 복수의 콘텐트들 중 적어도 하나에 대한 상기 사용자의 선호도를 나타내는 벡터이고,
    상기 피드백 정보는 상기 복수의 사용자들의 상기 복수의 콘텐트들에 대한 선호도를 나타내는 복수의 피드백 벡터들을 포함하는 것인, 방법.
  3. 제2 항에 있어서, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성하는 동작은,
    기 설정된 기준에 따라, 상기 피드백 정보와 기 설정된 제1 임계치 이하의 에러를 가지는 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성하는 동작; 을 포함하는 방법.
  4. 제 1항에 있어서, 상기 복수의 사용자 그룹들 및 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하는 동작은,
    기 설정된 복수의 사용자 그룹들의 수 및 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리(Euclidean distance)들에 기초하여, 상기 복수의 사용자 그룹들을 결정하는 동작; 및
    상기 결정된 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하는 동작; 을 포함하는 방법.
  5. 제 1항에 있어서,
    상기 사용자에게 추천될 상기 적어도 하나의 추천 콘텐트를 결정하는 동작은,
    상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 콘텐트의 추천에 이용될 중심 사용자를 선택하는 동작;
    상기 중심 사용자들의 선호도 벡터들 중에서 상기 선택된 중심 사용자의 선호도 벡터를 추출하는 동작; 및
    상기 추출된 선호도 벡터에 기초하여, 상기 적어도 하나의 추천 콘텐트를 결정하는 동작; 을 포함하는 방법.
  6. 제 1항에 있어서,
    상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 중심 사용자들의 상기 복수의 콘텐트들에 대한 예측된 선호도 및 상기 사용자의 상기 복수의 콘텐트들에 대한 선호도 사이의 유사도 값들을 결정하는 동작; 및
    상기 결정된 유사도 값들에 기초하여, 상기 복수의 사용자 그룹들의 수를 조정하는 동작; 을 더 포함하는 방법.
  7. 제 6항에 있어서, 상기 복수의 사용자 그룹들의 수를 조정하는 동작은,
    상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 콘텐트의 추천에 이용될 중심 사용자를 선택하는 동작;
    상기 결정된 유사도 값들 중 상기 선택된 중심 사용자의 유사도 값을 식별하는 동작; 및
    상기 식별된 유사도 값이 기 설정된 제2 임계치 이하인 경우, 상기 복수의 사용자 그룹들의 수를 늘리는 동작; 을 포함하는 방법.
  8. 제 6항에 있어서, 상기 복수의 사용자 그룹들의 수를 조정하는 동작은,
    상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 콘텐트의 추천에 이용될 중심 사용자를 선택하는 동작;
    상기 결정된 유사도 값들 중 상기 선택된 중심 사용자의 유사도 값을 식별하는 동작; 및
    상기 식별된 유사도 값이 기 설정된 제3 임계치 이상인 경우, 상기 복수의 사용자 그룹들의 수를 줄이는 동작; 을 포함하는 방법.
  9. 제 1항에 있어서,
    상기 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들 및 기 설정된 제4 임계치에 비교하여, 상기 복수개의 사용자 그룹들의 수를 조정하는 동작; 을 더 포함하는 방법.
  10. 제 1항에 있어서, 상기 인공 신경망 모델은 GMF (Generalized Matrix Factorization) 모델, MLP (Multi-Layer Perceptron) 모델 및 NeuMF (Neural Matrix Factorization) 모델 중 적어도 하나를 포함하는 것인, 방법.
  11. 제 1항에 있어서,
    상기 인공 신경망 모델은 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 학습 데이터로 사용하여 훈련된 인공 신경망 모델인 것인, 방법.
  12. 제 6항에 있어서,
    상기 사용자의 피드백 벡터 및 상기 피드백 정보에 기초하여, 상기 사용자에 대한 사용자 임베딩 벡터를 생성하고, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 재생성하는 동작; 및
    상기 조정된 복수의 사용자 그룹들의 수에 기초하여, 상기 사용자 및 상기 복수의 사용자들을 재군집화하는 동작; 을 더 포함하는 방법.
  13. 사용자에게 콘텐트를 추천하기 위한 서버에 있어서,
    통신 인터페이스;
    하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 하나 이상의 인스트럭션을 실행하여, 상기 사용자의 디바이스로부터 수신된 콘텐트 추천 요청에 따라, 복수의 콘텐트들 중 적어도 하나에 대한 상기 사용자의 피드백 벡터를 획득하고, 복수의 사용자들이 이용한 상기 복수의 콘텐트들에 관한 피드백 정보를 획득하고, 상기 피드백 정보에 기초하여, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 생성하고, 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들에 기초하여, 상기 복수의 사용자들을 군집화함으로써 복수의 사용자 그룹들 및 상기 복수의 사용자 그룹들에 대응되는 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하고, 상기 중심 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을, 사용자의 콘텐트에 대한 선호도를 예측하기 위한 인공 신경망 모델에 입력하고, 상기 인공 신경망 모델에 의해 출력되는, 상기 복수의 콘텐트들에 대한 상기 중심 사용자들의 예측된 선호도를 나타내는 상기 중심 사용자들의 선호도 벡터들을 획득하고, 상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 사용자에게 추천될 적어도 하나의 추천 콘텐트를 결정하고, 상기 결정된 적어도 하나의 콘텐트를 상기 사용자에게 추천하는 프로세서; 를 포함하는, 서버.
  14. 제 13항에 있어서,
    상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 기 설정된 복수의 사용자 그룹들의 수 및 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 상기 복수의 사용자 그룹들을 결정하고, 상기 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들에 기초하여, 상기 복수의 사용자 그룹들의 중심 사용자들을 결정하는 것인, 서버.
  15. 제 13항에 있어서,
    상기 프로세서는, 상기 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 콘텐트의 추천에 이용될 중심 사용자를 선택하고, 상기 중심 사용자들의 선호도 벡터들 중에서 상기 선택된 중심 사용자의 선호도 벡터를 추출하고, 상기 추출된 선호 벡터에 기초하여, 상기 적어도 하나의 추천 콘텐트를 결정하는 것인, 서버.
  16. 제 13항에 있어서,
    상기 프로세서는, 상기 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 사용자의 피드백 벡터 및 상기 중심 사용자들의 선호도 벡터들에 기초하여, 상기 중심 사용자들의 상기 복수의 콘텐트들에 대한 예측된 선호도 및 상기 사용자의 상기 복수의 콘텐트들에 대한 선호도 사이의 유사도 값들을 결정하고, 상기 결정된 유사도 값들에 기초하여, 상기 복수의 사용자 그룹들의 수를 조정하는 것인, 서버.
  17. 제 13항에 있어서,
    상기 프로세서는, 상기 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 복수의 사용자 그룹들 각각에 속하는 적어도 하나의 사용자들에 대한 사용자 임베딩 벡터들 사이의 유클리드 거리들 및 기 설정된 제4 임계치에 기초하여, 상기 복수개의 사용자 그룹들의 수를 조정하는 것인, 서버.
  18. 제 13항에 있어서,
    상기 인공 신경망 모델은 GMF (Generalized Matrix Factorization) 모델, MLP (Multi-Layer Perceptron) 모델 및 NeuMF (Neural Matrix Factorization) 모델 중 적어도 하나를 포함하는 것인, 서버.
  19. 제 13항에 있어서,
    상기 인공 신경망 모델은 상기 복수의 사용자들에 대한 사용자 임베딩 벡터들 및 상기 복수의 콘텐트들에 대한 콘텐트 임베딩 벡터들을 학습 데이터로 사용하여 훈련된 인공 신경망 모델인 것인, 서버.
  20. 제 1항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020210127552A 2021-09-27 2021-09-27 추천 콘텐트를 제공하는 서버 및 방법 KR20230044885A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210127552A KR20230044885A (ko) 2021-09-27 2021-09-27 추천 콘텐트를 제공하는 서버 및 방법
PCT/KR2022/014391 WO2023048537A1 (ko) 2021-09-27 2022-09-27 추천 콘텐트를 제공하는 서버 및 방법
US17/974,089 US20230100788A1 (en) 2021-09-27 2022-10-26 Server and method for providing recommendation content

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210127552A KR20230044885A (ko) 2021-09-27 2021-09-27 추천 콘텐트를 제공하는 서버 및 방법

Publications (1)

Publication Number Publication Date
KR20230044885A true KR20230044885A (ko) 2023-04-04

Family

ID=85720988

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210127552A KR20230044885A (ko) 2021-09-27 2021-09-27 추천 콘텐트를 제공하는 서버 및 방법

Country Status (3)

Country Link
US (1) US20230100788A1 (ko)
KR (1) KR20230044885A (ko)
WO (1) WO2023048537A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117112914B (zh) * 2023-10-23 2024-02-09 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 一种基于图卷积的群体推荐方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101372928B1 (ko) * 2012-02-03 2014-03-14 한국과학기술원 사용자 선호주제 기반 tv프로그램 콘텐츠 자동추천 장치, 시스템, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
KR101559459B1 (ko) * 2014-11-10 2015-10-13 성균관대학교산학협력단 콘텐츠 추천 방법
KR102012676B1 (ko) * 2016-10-19 2019-08-21 삼성에스디에스 주식회사 콘텐츠 추천 방법, 장치 및 시스템
KR102335005B1 (ko) * 2019-12-10 2021-12-03 주식회사우경정보기술 매칭 장치 및 매칭 방법
KR102330059B1 (ko) * 2020-02-14 2021-11-22 주식회사 엘지유플러스 포스터 추천 방법 및 장치

Also Published As

Publication number Publication date
US20230100788A1 (en) 2023-03-30
WO2023048537A1 (ko) 2023-03-30

Similar Documents

Publication Publication Date Title
US10503829B2 (en) Book analysis and recommendation
US10635973B1 (en) Recommendation system using improved neural network
CN112074857A (zh) 组合机器学习和社交数据以生成个性化推荐
EP3371765A1 (en) End-to-end deep collaborative filtering
US11729473B2 (en) Media asset rating prediction for geographic region
CN111695041B (zh) 用于推荐信息的方法和装置
US20240046157A1 (en) System and method for generating and optimizing artificial intelligence models
CN115455280A (zh) 一种推荐列表确定方法和服务器
CN115618024A (zh) 多媒体推荐方法、装置及电子设备
KR20230044885A (ko) 추천 콘텐트를 제공하는 서버 및 방법
JP2014215685A (ja) レコメンドサーバおよびレコメンドコンテンツ決定方法
CN113935332A (zh) 图书分级方法及图书分级设备
CN116956117A (zh) 一种标签识别的方法、装置、设备、存储介质及程序产品
US20150170035A1 (en) Real time personalization and categorization of entities
JP6921925B2 (ja) パラメータ調整方法、装置、サーバ、コンピュータ可読記憶媒体及びコンピュータプログラム
CN115129975A (zh) 推荐模型训练方法、推荐方法、装置、设备及存储介质
WO2021200502A1 (ja) 情報処理装置及び情報処理方法
Yepes et al. Listen to this: Music recommendation based on one-class support vector machine
US20200302933A1 (en) Generation of audio stories from text-based media
KR102632804B1 (ko) 인공지능 모델을 활용한 사용자 맞춤형 콘텐츠 생성 및 가공 플랫폼 서비스 제공 방법, 장치 및 시스템
US20230135135A1 (en) Predicting outcomes of interest
CN110858235B (zh) 热启动广义加性混合效应(game)框架
KR102650574B1 (ko) 트랜드 및 이슈 데이터 수집 및 분석을 기반으로 한 기업 관련 언론 보도 및 홍보 자료 기획 및 생성 방법, 장치 및 시스템
US11711581B2 (en) Multimodal sequential recommendation with window co-attention
US20230402058A1 (en) Systems and methods for speaker diarization