KR20210102727A - Method and apparatus for recommending content based on content viewing history of user - Google Patents

Method and apparatus for recommending content based on content viewing history of user Download PDF

Info

Publication number
KR20210102727A
KR20210102727A KR1020200017109A KR20200017109A KR20210102727A KR 20210102727 A KR20210102727 A KR 20210102727A KR 1020200017109 A KR1020200017109 A KR 1020200017109A KR 20200017109 A KR20200017109 A KR 20200017109A KR 20210102727 A KR20210102727 A KR 20210102727A
Authority
KR
South Korea
Prior art keywords
generating
matrix
contents
user
characteristic
Prior art date
Application number
KR1020200017109A
Other languages
Korean (ko)
Other versions
KR102334594B1 (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 KR1020200017109A priority Critical patent/KR102334594B1/en
Publication of KR20210102727A publication Critical patent/KR20210102727A/en
Application granted granted Critical
Publication of KR102334594B1 publication Critical patent/KR102334594B1/en

Links

Images

Classifications

    • 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
    • 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)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

In order to recommend content to a user, a list of one or more contents viewed by the user, information of the user, and meta information of each of the contents are received as inputs. A learning matrix is generated by removing noise values in the generated matrix based on the inputs. A first characteristic representing explicit information is generated. A second characteristic representing implicit information is generated. A third characteristic indicating a characteristic of the continuity of the contents is generated. Content to the user is recommended based on the first characteristic, the second characteristic, and the third characteristic.

Description

사용자의 컨텐츠 시청 목록에 기초하여 컨텐츠를 추천하는 방법 및 장치{METHOD AND APPARATUS FOR RECOMMENDING CONTENT BASED ON CONTENT VIEWING HISTORY OF USER}Method and device for recommending content based on a user's content viewing list

아래의 실시예들은 사용자에게 컨텐츠를 제공하는 기술에 관한 것으로, 구체적으로 사용자가 시청한 컨텐츠 목록에 기초하여 사용자에게 컨텐츠를 추천하는 기술에 관한 것이다.The following embodiments relate to a technology for providing content to a user, and more specifically, to a technology for recommending content to a user based on a content list viewed by the user.

현재, 유무선 인터넷을 통하여 사용자 단말로 컨텐츠를 제공하는 서비스가 보편화되어 있으며, 이와 같이 사용자 단말로 제공되는 컨텐츠의 유형으로는 이미지 컨텐츠, 음악 컨텐츠, 동영상 컨텐츠, 게임 컨텐츠, 실시간 정보 컨텐츠 등으로 매우 다양하며, 점차 그 종류의 다양성이 증가하고 있다.Currently, services for providing content to user terminals through wired and wireless Internet are common, and as such, the types of content provided to user terminals include image content, music content, video content, game content, real-time information content, etc. and the variety of its types is gradually increasing.

그런데, 이러한 컨텐츠를 이용하기 위해 사용자는 컨텐츠 제공 서버에 접속하여 자신이 원하는 컨텐츠를 탐색하는데 많은 시간과 통신 비용을 부담하여야 한다. 종래에 사용자가 만족할 만한 컨텐츠를 선별하여 추천하는 다양한 방식이 제시되어 있다. 예를 들어, 컨텐츠의 판매량, 구매자들의 추천 정보 등을 이용하는 단순 추천 방식이 있다. 그런데, 판매량 등에 기초한 단순 추천 방식의 경우, 사용자의 개인 취향을 반영할 수 없기 때문에 추천 정확도가 떨어진다는 문제점이 있다. 다른 예로, 사용자가 입력한 선호 장르 정보나 선호 카테고리 정보, 또는 사용자의 구매 이력 등을 이용하는 맞춤형 추천 방식이 있다. 이러한 맞춤형 추천 방식의 경우, 단순히 사용자의 선호 정보 만을 고려하기 때문에 계속 변화하고 추가되는 컨텐츠들 전체를 고려하여 사용자 선호도에 맞춤화된 최적의 컨텐츠를 추천하는데 한계가 있다.However, in order to use such content, the user has to pay a lot of time and communication cost to access the content providing server and search for the content he or she wants. Conventionally, various methods for selecting and recommending content satisfactory to a user have been proposed. For example, there is a simple recommendation method using content sales volume, purchaser's recommendation information, and the like. However, in the case of a simple recommendation method based on sales volume, etc., there is a problem in that recommendation accuracy is lowered because a user's personal taste cannot be reflected. As another example, there is a customized recommendation method using preference genre information or preference category information input by a user, or a purchase history of the user. In the case of such a customized recommendation method, since only the user's preference information is considered, there is a limit in recommending the optimal content customized to the user's preference in consideration of all continuously changing and added contents.

일 실시예는 사용자에게 컨텐츠를 추천하는 방법 및 장치를 제공할 수 있다.An embodiment may provide a method and apparatus for recommending content to a user.

일 실시예는 사용자에 대한 다양한 특징들을 고려하여 사용자에게 컨텐츠를 추천하는 방법 및 장치를 제공할 수 있다.An embodiment may provide a method and apparatus for recommending content to a user in consideration of various characteristics of the user.

일 측면에 따른, 사용자가 시청한 하나 이상의 컨텐츠들에 대한 목록, 상기 사용자의 정보 및 상기 컨텐츠들 각각의 메타 정보를 입력으로서 수신하는 단계, 상기 입력에 기초하여 매트릭스를 생성하는 단계, 상기 매트릭스 내의 노이즈 값을 제거함으로써 학습 매트릭스를 생성하는 단계, 상기 입력 및 상기 학습 매트릭스에 기초하여 명시적인 정보를 나타내는 제1 특징을 생성하는 단계, 상기 학습 매트릭스에 기초하여 암묵적인 정보를 나타내는 제2 특징을 생성하는 단계, 상기 컨텐츠들의 시청 순서에 기초하여 상기 컨텐츠들의 연속성에 대한 특징을 나타내는 제3 특징을 생성하는 단계, 및 상기 제1 특징, 상기 제2 특징 및 상기 제3 특징에 기초하여 상기 사용자에게 컨텐츠를 추천하는 단계를 포함한다.According to an aspect, receiving a list of one or more contents viewed by a user, information of the user, and meta information of each of the contents as inputs, generating a matrix based on the input, in the matrix generating a learning matrix by removing noise values, generating a first feature representative of explicit information based on the input and the learning matrix, and generating a second feature representative of implicit information based on the learning matrix. generating a third characteristic indicating a characteristic of the continuity of the contents based on a viewing order of the contents; and providing contents to the user based on the first characteristic, the second characteristic, and the third characteristic. including the recommended steps.

상기 입력에 기초하여 매트릭스를 생성하는 단계는, 사용자가 시청한 하나 이상의 컨텐츠들에 대한 목록, 상기 사용자의 정보 및 상기 컨텐츠들 각각의 메타 정보 각각에 대응하는 숫자 값을 결정하는 단계, 및 상기 결정된 숫자 값을 상기 매트릭스 내의 성분에 설정하는 단계를 포함할 수 있다.The generating of the matrix based on the input may include: determining a list of one or more contents viewed by the user, the user's information, and a numeric value corresponding to each of the meta information of each of the contents; setting a numeric value to the component in the matrix.

상기 매트릭스 내의 노이즈 값을 제거함으로써 학습 매트릭스를 생성하는 단계는, 상기 매트릭스 내의 성분들 중 숫자 값이 설정되지 않은 타겟 성분에 대한 숫자 값을 예측하는 단계, 및 상기 예측된 숫자 값을 상기 타겟 성분에 설정함으로써 상기 노이즈 값을 제거하는 단계를 포함할 수 있다.The generating of the learning matrix by removing the noise value in the matrix includes predicting a numeric value for a target component for which a numeric value is not set among components in the matrix, and applying the predicted numeric value to the target component. It may include removing the noise value by setting.

상기 학습 매트릭스를 생성하는 단계는, 덴스 임베딩 레이어(dense embedding layer)를 이용하여 상기 학습 매트릭스를 생성하는 단계를 포함할 수 있다.The generating of the learning matrix may include generating the learning matrix using a dense embedding layer.

상기 입력 및 상기 학습 매트릭스에 기초하여 명시적인 정보를 나타내는 제1 특징을 생성하는 단계는, 상기 입력의 정보들 및 상기 학습 매트릭스 내의 성분들을 합(addition)하거나 내적(inner product)함으로써 상기 제1 특징을 생성하는 단계를 포함할 수 있다.Generating a first feature representing explicit information based on the input and the learning matrix comprises adding or inner producting the information of the input and components in the learning matrix to the first feature. It may include the step of generating

상기 입력 및 상기 학습 매트릭스에 기초하여 명시적인 정보를 나타내는 제1 특징을 생성하는 단계는, FM 레이어를 이용하여 상기 입력 및 상기 학습 매트릭스에 기초하여 명시적인 정보를 나타내는 제1 특징을 생성하는 단계를 포함할 수 있다.Generating a first feature representative of explicit information based on the input and the learning matrix may include generating a first feature representative of explicit information based on the input and the learning matrix using an FM layer. may include

상기 학습 매트릭스에 기초하여 암묵적인 정보를 나타내는 제2 특징을 생성하는 단계는, 상기 학습 매트릭스를 DNN(deep neural network) 레이어에 입력함으로써 상기 제2 특징을 생성하는 단계를 포함할 수 있다.The generating of the second feature representing implicit information based on the learning matrix may include generating the second feature by inputting the learning matrix into a deep neural network (DNN) layer.

상기 컨텐츠들의 시청 순서에 기초하여 상기 컨텐츠들의 연속성에 대한 특징을 나타내는 제3 특징을 생성하는 단계는, GRU(Gated Recurrent Unit) 방식에 기초하여 이볼빙(evolving) 레이어에 상기 컨텐츠들을 순서적으로 입력함으로써 제3 특징을 생성하는 단계를 포함할 수 있다.The generating of the third characteristic indicating the continuity of the contents based on the viewing order of the contents may include sequentially inputting the contents to an evolving layer based on a Gated Recurrent Unit (GRU) method. thereby creating a third characteristic.

상기 컨텐츠들은 VOD(video on demand)일 수 있다.The contents may be video on demand (VOD).

다른 일 측면에 따른, 서버는, 사용자에게 컨텐츠를 추천하는 프로그램이 기록된 메모리, 및 상기 프로그램을 수행하는 프로세서를 포함하고, 상기 프로그램은, 사용자가 시청한 하나 이상의 컨텐츠들에 대한 목록, 상기 사용자의 정보 및 상기 컨텐츠들 각각의 메타 정보를 입력으로서 수신하는 단계, 상기 입력에 기초하여 매트릭스를 생성하는 단계, 상기 매트릭스 내의 노이즈 값을 제거함으로써 학습 매트릭스를 생성하는 단계, 상기 입력 및 상기 학습 매트릭스에 기초하여 명시적인 정보를 나타내는 제1 특징을 생성하는 단계, 상기 학습 매트릭스에 기초하여 암묵적인 정보를 나타내는 제2 특징을 생성하는 단계, 상기 컨텐츠들의 시청 순서에 기초하여 상기 컨텐츠들의 연속성에 대한 특징을 나타내는 제3 특징을 생성하는 단계, 및 상기 제1 특징, 상기 제2 특징 및 상기 제3 특징에 기초하여 상기 사용자에게 컨텐츠를 추천하는 단계를 수행한다.According to another aspect, the server includes a memory in which a program for recommending content to a user is recorded, and a processor for executing the program, wherein the program includes a list of one or more content viewed by the user, the user Receiving information of and meta-information of each of the contents as input, generating a matrix based on the input, generating a learning matrix by removing noise values in the matrix, in the input and the learning matrix generating a first feature representing explicit information based on the first feature, generating a second feature representing implicit information based on the learning matrix, representing a feature for the continuity of the content based on the viewing order of the content generating a third characteristic; and recommending content to the user based on the first characteristic, the second characteristic, and the third characteristic.

상기 입력에 기초하여 매트릭스를 생성하는 단계는, 사용자가 시청한 하나 이상의 컨텐츠들에 대한 목록, 상기 사용자의 정보 및 상기 컨텐츠들 각각의 메타 정보 각각에 대응하는 숫자 값을 결정하는 단계, 및 상기 결정된 숫자 값을 상기 매트릭스 내의 성분에 설정하는 단계를 포함할 수 있다.The generating of the matrix based on the input may include: determining a list of one or more contents viewed by the user, the user's information, and a numeric value corresponding to each of the meta information of each of the contents; setting a numeric value to the component in the matrix.

상기 매트릭스 내의 노이즈 값을 제거함으로써 학습 매트릭스를 생성하는 단계는, 상기 매트릭스 내의 성분들 중 숫자 값이 설정되지 않은 타겟 성분에 대한 숫자 값을 예측하는 단계, 및 상기 예측된 숫자 값을 상기 타겟 성분에 설정함으로써 상기 노이즈 값을 제거하는 단계를 포함할 수 있다.The generating of the learning matrix by removing the noise value in the matrix includes predicting a numeric value for a target component for which a numeric value is not set among components in the matrix, and applying the predicted numeric value to the target component. It may include removing the noise value by setting.

상기 입력 및 상기 학습 매트릭스에 기초하여 명시적인 정보를 나타내는 제1 특징을 생성하는 단계는, 상기 입력의 정보들 및 상기 학습 매트릭스 내의 성분들을 합(addition)하거나 내적(inner product)함으로써 상기 제1 특징을 생성하는 단계를 포함할 수 있다.Generating a first feature representing explicit information based on the input and the learning matrix comprises adding or inner producting the information of the input and components in the learning matrix to the first feature. It may include the step of generating

상기 학습 매트릭스에 기초하여 암묵적인 정보를 나타내는 제2 특징을 생성하는 단계는, 상기 학습 매트릭스를 DNN(deep neural network) 레이어에 입력함으로써 상기 제2 특징을 생성하는 단계를 포함할 수 있다.The generating of the second feature representing implicit information based on the learning matrix may include generating the second feature by inputting the learning matrix into a deep neural network (DNN) layer.

상기 컨텐츠들의 시청 순서에 기초하여 상기 컨텐츠들의 연속성에 대한 특징을 나타내는 제3 특징을 생성하는 단계는, GRU(Gated Recurrent Unit) 방식에 기초하여 이볼빙(evolving) 레이어에 상기 컨텐츠들을 순서적으로 입력함으로써 제3 특징을 생성하는 단계를 포함할 수 있다.The generating of the third characteristic indicating the continuity of the contents based on the viewing order of the contents may include sequentially inputting the contents to an evolving layer based on a Gated Recurrent Unit (GRU) method. thereby creating a third characteristic.

상기 컨텐츠들은 VOD(video on demand)일 수 있다.The contents may be video on demand (VOD).

사용자에게 컨텐츠를 추천하는 방법 및 장치가 제공될 수 있다.A method and apparatus for recommending content to a user may be provided.

사용자에 대한 다양한 특징들을 고려하여 사용자에게 컨텐츠를 추천하는 방법 및 장치가 제공될 수 있다.A method and apparatus for recommending content to a user in consideration of various characteristics of the user may be provided.

도 1은 일 예에 따른 컨텐츠 제공 시스템이다.
도 2는 일 실시예에 따른 컨텐츠를 제공하는 서버의 구성도이다.
도 3은 일 실시예에 따른 컨텐츠를 추천하는 방법의 흐름도이다.
도 4는 일 실시예에 따른 컨텐츠를 추천하는 알고리즘의 레이어들을 도시한다.
도 5는 일 예에 따른 입력에 기초하여 매트릭스를 생성하는 방법의 흐름도이다.
도 6는 일 예에 따른 입력에 기초하여 생성된 매트릭스를 도시한다.
도 7은 일 예에 따른 매트릭스 내의 노이즈 값을 제거함으로써 학습 매트릭스를 생성하는 방법의 흐름도이다.
도 8은 일 예에 따른 학습 매트릭스를 도시한다.
도 9는 일 예에 따른 입력 및 학습 매트릭스에 기초하여 명시적인 정보를 나타내는 제1 특징을 생성하는 방법을 도시한다.
도 10은 일 예에 따른 학습 매트릭스에 기초하여 암묵적인 정보를 나타내는 제2 특징을 생성하는 방법을 도시한다.
도 11은 일 예에 따른 컨텐츠들의 시청 순서에 기초하여 컨텐츠들의 연속성에 대한 특징을 나타내는 제3 특징을 생성하는 방법을 도시한다.
1 is a content providing system according to an example.
2 is a configuration diagram of a server that provides content according to an embodiment.
3 is a flowchart of a method of recommending content according to an exemplary embodiment.
4 illustrates layers of an algorithm for recommending content according to an embodiment.
5 is a flowchart of a method of generating a matrix based on an input according to an example.
6 illustrates a matrix generated based on an input according to an example.
7 is a flowchart of a method of generating a learning matrix by removing noise values in the matrix according to an example.
8 illustrates a learning matrix according to an example.
9 illustrates a method for generating a first feature representing explicit information based on an input and a learning matrix according to an example.
10 illustrates a method of generating a second feature representing implicit information based on a learning matrix according to an example.
11 illustrates a method of generating a third characteristic indicating a characteristic of continuity of contents based on a viewing order of contents according to an example.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these examples. Like reference numerals in each figure indicate like elements.

아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Various modifications may be made to the embodiments described below. It should be understood that the embodiments described below are not intended to limit the embodiments, and include all modifications, equivalents or substitutes thereto.

실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in the examples are only used to describe specific examples, and are not intended to limit the examples. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present specification, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components are given the same reference numerals regardless of the reference numerals, and the overlapping description thereof will be omitted. In the description of the embodiment, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.

도 1은 일 예에 따른 컨텐츠 제공 시스템이다.1 is a content providing system according to an example.

일 측면에 따른, 컨텐츠 제공 시스템은 사용자 단말(120) 및 사용자 단말(120)로 컨텐츠를 제공하는 서버(110)를 포함한다. 예를 들어, 서버(110)는 사용자 단말(120)로 컨텐츠 목록을 제공하고, 사용자 단말(120)의 사용자는 목록 중 어느 하나를 선택할 수 있다. 컨텐츠는 VOD(video on demand)일 수 있고, 서버(110)는 스트리밍 방식으로 VOD를 사용자 단말(120)로 제공할 수 있다.According to one aspect, the content providing system includes a user terminal 120 and a server 110 that provides content to the user terminal 120 . For example, the server 110 provides a list of contents to the user terminal 120 , and the user of the user terminal 120 may select any one of the list. The content may be video on demand (VOD), and the server 110 may provide the VOD to the user terminal 120 in a streaming manner.

서버(110)는 사용자가 좋아하는 타겟 컨텐츠를 결정하고, 타겟 컨텐츠를 추천 컨텐츠로서 사용자에게 추천할 수 있다. 복수의 컨텐츠들 중 타겟 컨텐츠를 결정하기 위해, 다양한 요소들이 고려될 수 있다. 예를 들어, 사용자의 연령, 성별 등을 포함하는 사용자의 정보 및 사용자의 시청 이력 등이 고려될 수 있다.The server 110 may determine the target content that the user likes, and recommend the target content to the user as the recommended content. In order to determine the target content among the plurality of contents, various factors may be considered. For example, user information including the user's age and gender, and the user's viewing history may be considered.

타겟 컨텐츠를 결정하기 위해 훈련이 가능한 알고리즘이 이용될 수 있다. 알고리즘은 다양한 입력 및 출력에 대한 피드백에 기초하여 훈련될 수 있다. 예를 들어, 피드백은 사용자의 평점 등을 포함할 수 있으나 기재된 실시예로 한정되지 않는다.A trainable algorithm may be used to determine the target content. Algorithms can be trained based on feedback on various inputs and outputs. For example, the feedback may include a user's rating, etc., but is not limited to the described embodiment.

아래에서 도 2 내지 도 11을 참조하여 알고리즘을 이용하여 사용자에게 컨텐츠를 추천하는 방법에 대해 상세히 설명된다.Hereinafter, a method of recommending content to a user using an algorithm will be described in detail with reference to FIGS. 2 to 11 .

도 2는 일 실시예에 따른 컨텐츠를 제공하는 서버의 구성도이다.2 is a configuration diagram of a server that provides content according to an embodiment.

서버(200)는 통신부(210), 프로세서(220) 및 메모리(230)를 포함한다. 예를 들어, 서버(200)은 도 1을 참조하여 서버(110)일 수 있다.The server 200 includes a communication unit 210 , a processor 220 , and a memory 230 . For example, the server 200 may be the server 110 with reference to FIG. 1 .

통신부(210)는 프로세서(220) 및 메모리(230)와 연결되어 데이터를 송수신한다. 통신부(210)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다. 이하에서 "A"를 송수신한다라는 표현은 "A를 나타내는 정보(information) 또는 데이터"를 송수신하는 것을 나타낼 수 있다.The communication unit 210 is connected to the processor 220 and the memory 230 to transmit and receive data. The communication unit 210 may be connected to another external device to transmit/receive data. Hereinafter, the expression "transmitting and receiving "A" may indicate transmitting and receiving "information or data representing A".

통신부(210)는 서버(200) 내의 회로망(circuitry)으로 구현될 수 있다. 예를 들어, 통신부(210)는 내부 버스(internal bus) 및 외부 버스(external bus)를 포함할 수 있다. 다른 예로, 통신부(210)는 서버(200)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(210)는 인터페이스(interface)일 수 있다. 통신부(210)는 외부의 장치로부터 데이터를 수신하여, 프로세서(220) 및 메모리(230)에 데이터를 전송할 수 있다.The communication unit 210 may be implemented as circuitry in the server 200 . For example, the communication unit 210 may include an internal bus and an external bus. As another example, the communication unit 210 may be an element that connects the server 200 and an external device. The communication unit 210 may be an interface. The communication unit 210 may receive data from an external device and transmit the data to the processor 220 and the memory 230 .

프로세서(220)는 통신부(210)가 수신한 데이터 및 메모리(230)에 저장된 데이터를 처리한다. "프로세서"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.The processor 220 processes data received by the communication unit 210 and data stored in the memory 230 . A “processor” may be a data processing device implemented in hardware having circuitry having a physical structure for performing desired operations. For example, desired operations may include code or instructions included in a program. For example, a data processing device implemented as hardware includes a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , an Application-Specific Integrated Circuit (ASIC), and a Field Programmable Gate Array (FPGA).

프로세서(220)는 메모리(예를 들어, 메모리(230))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(220)에 의해 유발된 인스트럭션들을 실행한다.Processor 220 executes computer readable code (eg, software) stored in memory (eg, memory 230 ) and instructions issued by processor 220 .

메모리(230)는 통신부(210)가 수신한 데이터 및 프로세서(220)가 처리한 데이터를 저장한다. 예를 들어, 메모리(230)는 프로그램(또는 어플리케이션, 소프트웨어)을 저장할 수 있다. 저장되는 프로그램은 컨텐츠를 추천할 수 있도록 코딩되어 프로세서(220)에 의해 실행 가능한 신텍스(syntax)들의 집합일 수 있다.The memory 230 stores data received by the communication unit 210 and data processed by the processor 220 . For example, the memory 230 may store a program (or an application, software). The stored program may be a set of syntaxes coded to recommend content and executable by the processor 220 .

일 측면에 따르면, 메모리(230)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM(Random Access Memory), 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect, memory 230 may include one or more of volatile memory, non-volatile memory and random access memory (RAM), flash memory, hard disk drive, and optical disk drive.

메모리(230)는 서버(200)를 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 서버(200)를 동작 시키는 명령어 세트는 프로세서(220)에 의해 실행된다.The memory 230 stores an instruction set (eg, software) for operating the server 200 . The instruction set for operating the server 200 is executed by the processor 220 .

통신부(210), 프로세서(220) 및 메모리(230)에 대해, 아래에서 도 3 내지 도 11을 참조하여 상세히 설명된다.The communication unit 210 , the processor 220 , and the memory 230 will be described in detail below with reference to FIGS. 3 to 11 .

도 3은 일 실시예에 따른 컨텐츠를 추천하는 방법의 흐름도이다.3 is a flowchart of a method of recommending content according to an exemplary embodiment.

아래의 단계들(310 내지 370)은 도 2를 참조하여 전술된 서버(200)에 의해 수행된다. 서버(200)는 컨텐츠를 추천하는 알고리즘을 포함할 수 있고, 알고리즘을 이용하여 단계들(310 내지 370)이 수행될 수 있다. 단계들(310 내지 370)은 타겟 사용자에 대해 수행될 수 있다. 예를 들어, 사용자 식별자(Identifier: ID) 또는 사용자의 세션으로 타겟 사용자를 식별할 수 있다.The steps 310 to 370 below are performed by the server 200 described above with reference to FIG. 2 . The server 200 may include an algorithm for recommending content, and steps 310 to 370 may be performed using the algorithm. Steps 310 - 370 may be performed on the target user. For example, a target user may be identified by a user identifier (ID) or a user's session.

일 측면에 따르면, 알고리즘은 도 4의 알고리즘(400)일 수 있고, 알고리즘(400)은 예를 들어, 7개의 레이어들을 포함할 수 있다. 알고리즘(400)의 각 레이어들은 단계들(310 내지 370에 대한 설명과 함께 설명된다.According to one aspect, the algorithm may be the algorithm 400 of FIG. 4 , and the algorithm 400 may include, for example, 7 layers. Each layer of the algorithm 400 is described along with a description of steps 310-370.

단계(310)에서, 서버(200)는 사용자가 시청한 하나 이상의 컨텐츠들에 대한 목록, 사용자의 정보 및 컨텐츠들 각각의 메타 정보를 입력으로서 수신한다. 예를 들어, 사용자의 정보는 사용자의 연령, 컨텐츠 선호 장르, 성별, 가입 상품 등을 포함할 수 있고, 기재된 실시예로 한정되지 않는다. 예를 들어, 컨텐츠의 메타 정보는 컨텐츠에 매핑 또는 태그된 정보들일 수 있다. 컨텐츠의 메타 정보는 컨텐츠의 내용적인 특징들을 나타내는 키워드일 수 있다.In step 310 , the server 200 receives a list of one or more contents viewed by the user, user information, and meta information of each of the contents as inputs. For example, the user's information may include the user's age, content preference genre, gender, subscription product, and the like, and is not limited to the described embodiment. For example, the meta information of the content may be information mapped or tagged to the content. The meta information of the content may be a keyword indicating content characteristics of the content.

일 측면에 따르면, 단계(310)는 알고리즘(400)의 입력 레이어(410)에서 수행될 수 있다. 예를 들어, 입력 레이어(410)는 복수의 노드들을 포함할 수 있고, 노드에 해당 입력이 설정될 수 있다. 타겟 노드에 해당하는 정보가 없는 경우 해당 타겟 노드에는 입력이 수신되지 않을 수 있다.According to one aspect, step 310 may be performed in the input layer 410 of the algorithm 400 . For example, the input layer 410 may include a plurality of nodes, and a corresponding input may be set in the node. If there is no information corresponding to the target node, the input may not be received at the target node.

단계(320)에서, 서버(200)는 입력에 기초하여 매트릭스를 생성한다. 예를 들어, 매트릭스는 알고리즘(400)의 스파스 임베딩 레이어(sparse embedding layer)(410)에서 생성될 수 있다. 예를 들어, 입력으로서의 각 정보는 숫자 값으로 변환되고, 변환된 숫자 값은 매트릭스 내의 해당 성분에 설정될 수 있다. 매트릭스 내의 성분은 매트릭스의 행과 열을 나타낼 수 있다. 매트릭스 내의 특정 성분에 대응하는 정보가 없는 경우 해당 성분은 숫자 값이 설정되지 않은 빈 공간일 수 있다. 매트릭스를 생성하는 방법에 대해, 아래에서 도 5 및 6을 참조하여 상세히 설명된다.In step 320, the server 200 generates a matrix based on the input. For example, the matrix may be generated in the sparse embedding layer 410 of the algorithm 400 . For example, each piece of information as input may be converted into a numeric value, and the converted numeric value may be set to a corresponding component in a matrix. Components within a matrix may represent rows and columns of the matrix. When there is no information corresponding to a specific component in the matrix, the corresponding component may be an empty space in which a numeric value is not set. A method of generating the matrix is described in detail below with reference to FIGS. 5 and 6 .

단계(330)에서, 서버(200)는 매트릭스 내의 노이즈 값을 제거함으로써 학습 매트릭스를 생성한다. 예를 들어, 노이즈 값은 숫자 값이 설정되지 않은 매트릭스 내의 성분일 수 있다. 서버(200)는 타겟 성분에 대한 숫자 값을 예측하고, 예측된 숫자 값을 타겟 성분에 설정함으로써 노이즈 값을 제거할 수 있다.In step 330, the server 200 generates a learning matrix by removing noise values in the matrix. For example, the noise value may be a component in a matrix for which a numeric value is not set. The server 200 may remove a noise value by predicting a numeric value for the target component and setting the predicted numeric value to the target component.

일 측면에 따르면, 단계(330)는 알고리즘(400)의 덴스 임베딩 레이어(dense embedding layer)(430)에 의해 수행될 수 있다.According to one aspect, step 330 may be performed by a dense embedding layer 430 of the algorithm 400 .

학습 매트릭스를 생성하는 방법에 대해, 아래에서 도 7 및 8을 참조하여 상세히 설명된다.A method of generating a learning matrix is described in detail below with reference to FIGS. 7 and 8 .

단계(340)에서, 서버(200)는 입력 및 학습 매트릭스에 기초하여 명시적인 정보를 나타내는 제1 특징을 생성한다. 일 측면에 따르면, 단계(340)는 알고리즘(400)의 FM 레이어(440)에 의해 수행될 수 있다. 제1 특징을 생성하는 방법에 대해 아래에서 도 9를 참조하여 상세히 설명된다.In step 340, the server 200 generates a first feature representing explicit information based on the input and the learning matrix. According to one aspect, step 340 may be performed by the FM layer 440 of the algorithm 400 . A method of generating the first feature is described in detail below with reference to FIG. 9 .

단계(350)에서, 서버(200)는 학습 매트릭스에 기초하여 암묵적인 정보를 나타내는 제2 특징을 생성한다. 일 측면에 따르면, 단계(350)는 알고리즘(400)의 DNN(deep neural network) 레이어(450)에 의해 수행될 수 있다. 제2 특징을 생성하는 방법에 대해 아래에서 도 10을 참조하여 상세히 설명된다.In step 350, server 200 generates a second feature representing implicit information based on the learning matrix. According to one aspect, step 350 may be performed by a deep neural network (DNN) layer 450 of the algorithm 400 . A method of generating the second feature is described in detail below with reference to FIG. 10 .

단계(360)에서, 서버(200)는 컨텐츠들의 시청 순서에 기초하여 컨텐츠들의 연속성에 대한 특징을 나타내는 제3 특징을 생성한다. 일 측면에 따르면, 단계(360)는 알고리즘(400)의 이볼빙(evolving) 레이어(460)에 의해 수행될 수 있다. 제3 특징을 생성하는 방법에 대해 아래에서 도 11을 참조하여 상세히 설명된다.In step 360, the server 200 generates a third characteristic indicating a characteristic of the continuity of the contents based on the viewing order of the contents. According to one aspect, step 360 may be performed by an evolving layer 460 of algorithm 400 . A method of generating the third feature is described in detail below with reference to FIG. 11 .

단계(370)에서, 서버(200)는 제1 특징, 제2 특징 및 제3 특징에 기초하여 사용자에게 컨텐츠를 추천한다. 일 측면에 따르면, 단계(370)는 알고리즘(400)의 출력 레이어(470)에 의해 수행될 수 있다. 출력 레이어(470)의 활성화 함수를 이용하여 사용자에게 추천될 컨텐츠가 결정될 수 있다. 예를 들어, 활성화 함수는 시그모이드 함수(sigmoid function)일 수 있다.In step 370 , the server 200 recommends content to the user based on the first characteristic, the second characteristic, and the third characteristic. According to one aspect, step 370 may be performed by the output layer 470 of the algorithm 400 . Content to be recommended to a user may be determined using an activation function of the output layer 470 . For example, the activation function may be a sigmoid function.

도 4는 일 실시예에 따른 컨텐츠를 추천하는 알고리즘의 레이어들을 도시한다.4 illustrates layers of an algorithm for recommending content according to an embodiment.

일 측면에 따른, 컨텐츠를 추천하는 알고리즘(400)은 도 3을 참조하여 전술된 입력 레이어(410), 스파스 임베딩 레이어(420), 덴스 임베딩 레이어(430), FM 레이어(440), DNN 레이어(450), 이볼빙 레이어(460) 및 출력 레이어(470)를 포함할 수 있다. 알고리즘(400) 내의 레이어들 및 레이어들 내의 노드들 각각은 사용자에게 컨텐츠를 추천하기 위해 맞춤형으로 미리 훈련될 수 있다.According to an aspect, the content recommendation algorithm 400 includes the input layer 410, the sparse embedding layer 420, the dense embedding layer 430, the FM layer 440, and the DNN layer described above with reference to FIG. 3 . 450 , an evolving layer 460 , and an output layer 470 . Each of the layers and the nodes within the layers in the algorithm 400 may be customized and pre-trained to recommend content to a user.

알고리즘(400)에 대해, 아래에서 도 5 내지 11을 참조하여 상세히 설명된다. Algorithm 400 is described in detail below with reference to FIGS. 5-11 .

도 5는 일 예에 따른 입력에 기초하여 매트릭스를 생성하는 방법의 흐름도이다.5 is a flowchart of a method of generating a matrix based on an input according to an example.

일 측면에 따르면, 도 3을 참조하여 전술된 단계(320)는 아래의 단계들(510 및 520)을 포함할 수 있다.According to one aspect, the step 320 described above with reference to FIG. 3 may include the following steps 510 and 520 .

단계(510)에서, 서버(200)는 컨텐츠들에 대한 목록, 사용자의 정보 및 컨텐츠의 메타 정보에 대응하는 숫자 값을 결정한다. 텍스트로 나타나는 정보를 처리하기 위해 정보에 대응하는 숫자 값이 결정될 수 있다. 예를 들어, 숫자 값의 범위는 0 내지 1일 수 있다.In step 510 , the server 200 determines a numeric value corresponding to a list of contents, user information, and meta information of the contents. A numeric value corresponding to the information may be determined for processing the information appearing as text. For example, the range of numeric values can be from 0 to 1.

단계(520)에서, 서버(200)는 타겟 정보에 대해 결정된 숫자 값을 매트릭스 내의 타겟 성분에 설정한다. 타겟 성분에 대응하는 정보가 수신되지 않은 경우에는, 타겟 성분에 숫자 값이 설정되지 않을 수 있다. 숫자 값이 설정되지 않은 성분은 노이즈일 수 있다.In step 520, the server 200 sets the determined numerical value for the target information to the target element in the matrix. When information corresponding to the target component is not received, a numeric value may not be set for the target component. A component for which a numeric value is not set may be noise.

도 6는 일 예에 따른 입력에 기초하여 생성된 매트릭스를 도시한다.6 illustrates a matrix generated based on an input according to an example.

예를 들어, 스파스 임베딩 레이어(420) 내의 매트릭스(600)는 제1 성분(610), 제2 성분(620) 및 제3 성분(630)을 포함할 수 있다. 제1 정보(640) 및 제2 정보(650)가 입력으로서 수신된 경우, 제1 정보(640)에 대한 숫자 값들(641 및 642)이 제2 성분(620)에 설정되고, 제2 정보(650)에 대한 숫자 값들(651 및 652)이 제3 성분(630)에 설정될 수 있다. 예를 들어, 숫자 값들(641 및 642)은 벡터로 표현될 수 있다.For example, the matrix 600 in the sparse embedding layer 420 may include a first component 610 , a second component 620 , and a third component 630 . When the first information 640 and the second information 650 are received as inputs, the numerical values 641 and 642 for the first information 640 are set in the second component 620, and the second information ( Numeric values 651 and 652 for 650 may be set in third component 630 . For example, the numeric values 641 and 642 may be represented as vectors.

제3 성분(630)에 대응하는 정보가 수신되지 않은 경우, 제3 성분(630)은 노이즈일 수 있다.When information corresponding to the third component 630 is not received, the third component 630 may be noise.

도 7은 일 예에 따른 매트릭스 내의 노이즈 값을 제거함으로써 학습 매트릭스를 생성하는 방법의 흐름도이다.7 is a flowchart of a method of generating a learning matrix by removing noise values in the matrix according to an example.

일 측면에 따르면, 도 3을 참조하여 전술된 단계(330)는 아래의 단계들(710 및 720)을 포함할 수 있다.According to one aspect, step 330 described above with reference to FIG. 3 may include steps 710 and 720 below.

단계(710)에서, 서버(200)는 매트릭스 내의 성분들 중 숫자 값이 설정되지 않은 타겟 성분에 대한 숫자 값을 예측한다. 예를 들어, 타겟 성분의 주변 성분들에 기초하여 숫자 값이 예측될 수 있다.In step 710 , the server 200 predicts a numeric value for a target component to which a numeric value is not set among components in the matrix. For example, a numeric value may be predicted based on surrounding components of the target component.

단계(720)에서, 서버(200)는 예측된 숫자 값을 타겟 성분에 설정함으로써 노이즈 값을 제거한다. 매트릭스의 노이즈 값이 제거됨으로써 학습 매트릭스가 생성될 수 있다.In step 720, the server 200 removes the noise value by setting the predicted numeric value to the target component. A learning matrix may be generated by removing the noise value of the matrix.

도 8은 일 예에 따른 학습 매트릭스를 도시한다.8 illustrates a learning matrix according to an example.

도 6을 참조하여 전술된 매트릭스(600)의 제1 성분(610)에 대응하는 정보가 수신되지 않았으므로, 제1 성분(610)은 노이즈일 수 있다. 제1 성분(610)에 대한 숫자 값들(801 및 802)이 예측될 수 있다. 예를 들어, 숫자 값들(801 및 802)은 숫자 값들(641, 642, 651 및 652)에 기초하여 예측될 수 있다.Since information corresponding to the first component 610 of the matrix 600 described above with reference to FIG. 6 is not received, the first component 610 may be noise. Numeric values 801 and 802 for the first component 610 may be predicted. For example, numeric values 801 and 802 may be predicted based on numeric values 641 , 642 , 651 and 652 .

제1 성분(610)에 숫자 값들(801 및 802)이 설정됨으로써 학습 매트릭스가 생성될 수 있다.A learning matrix may be created by setting the numerical values 801 and 802 in the first component 610 .

도 9는 일 예에 따른 입력 및 학습 매트릭스에 기초하여 명시적인 정보를 나타내는 제1 특징을 생성하는 방법을 도시한다.9 illustrates a method for generating a first feature representing explicit information based on an input and a learning matrix according to an example.

일 측면에 따르면, 도 3을 참조하여 전술된 단계(340)는 알고리즘(400)의 FM 레이어(440)에 의해 수행될 수 있다.According to one aspect, step 340 described above with reference to FIG. 3 may be performed by the FM layer 440 of the algorithm 400 .

예를 들어, FM 레이어(440)는 제1 노드(910), 제2 노드(920) 및 제3 노드(930)를 포함할 수 있다. 제1 노드(910), 제2 노드(920) 및 제3 노드(930)의 결과 값은 명시적인 정보를 나타내는 제1 특징일 수 있다.For example, the FM layer 440 may include a first node 910 , a second node 920 , and a third node 930 . The result values of the first node 910 , the second node 920 , and the third node 930 may be a first characteristic indicating explicit information.

제1 노드(910)는 제1 정보(640) 및 제2 정보(650)를 합(addition)할 수 있다. 제2 노드(920) 및 제3 노드(930)는 학습 매트릭스 내의 성분들(610, 620 및 630)을 내적(inner product)할 수 있다.The first node 910 may add the first information 640 and the second information 650 . The second node 920 and the third node 930 may inner product the components 610 , 620 and 630 in the learning matrix.

도 10은 일 예에 따른 학습 매트릭스에 기초하여 암묵적인 정보를 나타내는 제2 특징을 생성하는 방법을 도시한다.10 illustrates a method of generating a second feature representing implicit information based on a learning matrix according to an example.

일 측면에 따르면, 도 3을 참조하여 전술된 단계(350)는 알고리즘(400)의 DNN 레이어(450)에 의해 수행될 수 있다. DNN 레이어(450)는 복수의 레이어들(1010 및 1020)을 포함할 수 있다. DNN 레이어(450)는 히든(hidden) 레이어일 수 있다.According to one aspect, the step 350 described above with reference to FIG. 3 may be performed by the DNN layer 450 of the algorithm 400 . The DNN layer 450 may include a plurality of layers 1010 and 1020 . The DNN layer 450 may be a hidden layer.

학습 매트릭스 내의 성분들(610, 620 및 630)이 DNN 레이어(450)에 입력되고, 출력으로서 제2 특징(1030)이 생성될 수 있다.Components 610 , 620 and 630 in the learning matrix may be input to the DNN layer 450 , and a second feature 1030 may be generated as an output.

도 11은 일 예에 따른 컨텐츠들의 시청 순서에 기초하여 컨텐츠들의 연속성에 대한 특징을 나타내는 제3 특징을 생성하는 방법을 도시한다.11 illustrates a method of generating a third characteristic indicating a characteristic of continuity of contents based on a viewing order of contents according to an example.

일 측면에 따르면, 도 3을 참조하여 전술된 단계(360)는 알고리즘(400)의 이볼빙 레이어(450)에 의해 수행될 수 있다. 이볼빙 레이어(450)는 사용자가 시청한 컨텐츠들이 시청 순서에 기초하여 미리 훈련될 수 있다. GRU(Gated Recurrent Unit) 방식에 기초하여 이볼빙 레이어(450)에 컨텐츠들이 순서적으로 입력될 수 있다. h는 사용자에 대한 제3 특징을 나타낼 수 있고, ho 내지 ht는 새로운 컨텐츠에 대한 정보(e1 내지 et)가 입력될 때마다 갱신되는 제3 특징을 나타낸다. 예를 들어, 컨텐츠에 대한 정보 e는 컨텐츠의 메타 정보를 포함할 수 있다.According to one aspect, step 360 described above with reference to FIG. 3 may be performed by the evolving layer 450 of the algorithm 400 . The evolving layer 450 may be pre-trained based on the viewing order of the contents viewed by the user. Contents may be sequentially input to the evolving layer 450 based on a Gated Recurrent Unit (GRU) scheme. h may indicate a third characteristic for the user, and h o to h t indicate a third characteristic that is updated whenever information (e 1 to e t ) on new content is input. For example, the information e about the content may include meta information of the content.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented as a hardware component, a software component, and/or a combination of the hardware component and the software component. For example, devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), It may be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and carry out program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

 이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible from the above description by those skilled in the art. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

Claims (17)

사용자가 시청한 하나 이상의 컨텐츠들에 대한 목록, 상기 사용자의 정보 및 상기 컨텐츠들 각각의 메타 정보를 입력으로서 수신하는 단계;
상기 입력에 기초하여 매트릭스를 생성하는 단계;
상기 매트릭스 내의 노이즈 값을 제거함으로써 학습 매트릭스를 생성하는 단계;
상기 입력 및 상기 학습 매트릭스에 기초하여 명시적인 정보를 나타내는 제1 특징을 생성하는 단계;
상기 학습 매트릭스에 기초하여 암묵적인 정보를 나타내는 제2 특징을 생성하는 단계;
상기 컨텐츠들의 시청 순서에 기초하여 상기 컨텐츠들의 연속성에 대한 특징을 나타내는 제3 특징을 생성하는 단계; 및
상기 제1 특징, 상기 제2 특징 및 상기 제3 특징에 기초하여 상기 사용자에게 컨텐츠를 추천하는 단계
를 포함하는,
컨텐츠 추천 방법.
receiving a list of one or more contents viewed by a user, information of the user, and meta information of each of the contents as inputs;
generating a matrix based on the input;
generating a learning matrix by removing noise values in the matrix;
generating a first feature representing explicit information based on the input and the learning matrix;
generating a second feature representing implicit information based on the learning matrix;
generating a third characteristic indicating a characteristic of the continuity of the contents based on the viewing order of the contents; and
recommending content to the user based on the first characteristic, the second characteristic, and the third characteristic;
containing,
How to recommend content.
제1항에 있어서,
상기 입력에 기초하여 매트릭스를 생성하는 단계는,
사용자가 시청한 하나 이상의 컨텐츠들에 대한 목록, 상기 사용자의 정보 및 상기 컨텐츠들 각각의 메타 정보 각각에 대응하는 숫자 값을 결정하는 단계; 및
상기 결정된 숫자 값을 상기 매트릭스 내의 성분에 설정하는 단계
를 포함하는,
컨텐츠 추천 방법.
According to claim 1,
The step of generating a matrix based on the input comprises:
determining a list of one or more contents viewed by a user, a numeric value corresponding to each of the user's information and meta information of each of the contents; and
setting the determined numerical value to a component in the matrix;
containing,
How to recommend content.
제2항에 있어서,
상기 매트릭스 내의 노이즈 값을 제거함으로써 학습 매트릭스를 생성하는 단계는,
상기 매트릭스 내의 성분들 중 숫자 값이 설정되지 않은 타겟 성분에 대한 숫자 값을 예측하는 단계; 및
상기 예측된 숫자 값을 상기 타겟 성분에 설정함으로써 상기 노이즈 값을 제거하는 단계
를 포함하는,
컨텐츠 추천 방법.
3. The method of claim 2,
The step of generating a learning matrix by removing noise values in the matrix comprises:
predicting a numeric value for a target component to which a numeric value is not set among components in the matrix; and
removing the noise value by setting the predicted numeric value to the target component;
containing,
How to recommend content.
제3항에 있어서,
상기 학습 매트릭스를 생성하는 단계는,
덴스 임베딩 레이어(dense embedding layer)를 이용하여 상기 학습 매트릭스를 생성하는 단계
를 포함하는,
컨텐츠 추천 방법.
4. The method of claim 3,
The step of generating the learning matrix comprises:
Generating the learning matrix using a dense embedding layer
containing,
How to recommend content.
제1항에 있어서,
상기 입력 및 상기 학습 매트릭스에 기초하여 명시적인 정보를 나타내는 제1 특징을 생성하는 단계는,
상기 입력의 정보들 및 상기 학습 매트릭스 내의 성분들을 합(addition)하거나 내적(inner product)함으로써 상기 제1 특징을 생성하는 단계
를 포함하는,
컨텐츠 추천 방법.
According to claim 1,
generating a first feature representing explicit information based on the input and the learning matrix comprises:
generating the first feature by adding or inner producting the information of the input and components in the learning matrix;
containing,
How to recommend content.
제5항에 있어서,
상기 입력 및 상기 학습 매트릭스에 기초하여 명시적인 정보를 나타내는 제1 특징을 생성하는 단계는,
FM 레이어를 이용하여 상기 입력 및 상기 학습 매트릭스에 기초하여 명시적인 정보를 나타내는 제1 특징을 생성하는 단계
를 포함하는,
컨텐츠 추천 방법.
6. The method of claim 5,
generating a first feature representing explicit information based on the input and the learning matrix comprises:
generating a first feature representing explicit information based on the input and the learning matrix using an FM layer;
containing,
How to recommend content.
제1항에 있어서,
상기 학습 매트릭스에 기초하여 암묵적인 정보를 나타내는 제2 특징을 생성하는 단계는,
상기 학습 매트릭스를 DNN(deep neural network) 레이어에 입력함으로써 상기 제2 특징을 생성하는 단계
를 포함하는,
컨텐츠 추천 방법.
According to claim 1,
Generating a second feature representing implicit information based on the learning matrix comprises:
generating the second feature by inputting the learning matrix into a deep neural network (DNN) layer;
containing,
How to recommend content.
제1항에 있어서,
상기 컨텐츠들의 시청 순서에 기초하여 상기 컨텐츠들의 연속성에 대한 특징을 나타내는 제3 특징을 생성하는 단계는,
GRU(Gated Recurrent Unit) 방식에 기초하여 이볼빙(evolving) 레이어에 상기 컨텐츠들을 순서적으로 입력함으로써 제3 특징을 생성하는 단계
를 포함하는,
컨텐츠 추천 방법.
According to claim 1,
The step of generating a third characteristic indicating a characteristic of the continuity of the contents based on the viewing order of the contents,
Generating the third feature by sequentially inputting the contents to an evolving layer based on a Gated Recurrent Unit (GRU) scheme
containing,
How to recommend content.
제1항에 있어서,
상기 컨텐츠들은 VOD(video on demand)인,
컨텐츠 추천 방법.
According to claim 1,
The contents are video on demand (VOD),
How to recommend content.
제1항 내지 제9항 중 어느 한 항의 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
A computer-readable recording medium containing a program for performing the method of any one of claims 1 to 9.
서버는,
사용자에게 컨텐츠를 추천하는 프로그램이 기록된 메모리; 및
상기 프로그램을 수행하는 프로세서
를 포함하고,
상기 프로그램은,
사용자가 시청한 하나 이상의 컨텐츠들에 대한 목록, 상기 사용자의 정보 및 상기 컨텐츠들 각각의 메타 정보를 입력으로서 수신하는 단계;
상기 입력에 기초하여 매트릭스를 생성하는 단계;
상기 매트릭스 내의 노이즈 값을 제거함으로써 학습 매트릭스를 생성하는 단계;
상기 입력 및 상기 학습 매트릭스에 기초하여 명시적인 정보를 나타내는 제1 특징을 생성하는 단계;
상기 학습 매트릭스에 기초하여 암묵적인 정보를 나타내는 제2 특징을 생성하는 단계;
상기 컨텐츠들의 시청 순서에 기초하여 상기 컨텐츠들의 연속성에 대한 특징을 나타내는 제3 특징을 생성하는 단계; 및
상기 제1 특징, 상기 제2 특징 및 상기 제3 특징에 기초하여 상기 사용자에게 컨텐츠를 추천하는 단계
를 수행하는,
서버.
server,
a memory in which a program for recommending content to a user is recorded; and
a processor that executes the program
including,
The program is
receiving a list of one or more contents viewed by a user, information of the user, and meta information of each of the contents as inputs;
generating a matrix based on the input;
generating a learning matrix by removing noise values in the matrix;
generating a first feature representing explicit information based on the input and the learning matrix;
generating a second feature representing implicit information based on the learning matrix;
generating a third characteristic indicating a characteristic of the continuity of the contents based on the viewing order of the contents; and
recommending content to the user based on the first characteristic, the second characteristic, and the third characteristic;
to do,
server.
제11항에 있어서,
상기 입력에 기초하여 매트릭스를 생성하는 단계는,
사용자가 시청한 하나 이상의 컨텐츠들에 대한 목록, 상기 사용자의 정보 및 상기 컨텐츠들 각각의 메타 정보 각각에 대응하는 숫자 값을 결정하는 단계; 및
상기 결정된 숫자 값을 상기 매트릭스 내의 성분에 설정하는 단계
를 포함하는,
서버.
12. The method of claim 11,
The step of generating a matrix based on the input comprises:
determining a list of one or more contents viewed by a user, a numeric value corresponding to each of the user's information and meta information of each of the contents; and
setting the determined numerical value to a component in the matrix;
containing,
server.
제12항에 있어서,
상기 매트릭스 내의 노이즈 값을 제거함으로써 학습 매트릭스를 생성하는 단계는,
상기 매트릭스 내의 성분들 중 숫자 값이 설정되지 않은 타겟 성분에 대한 숫자 값을 예측하는 단계; 및
상기 예측된 숫자 값을 상기 타겟 성분에 설정함으로써 상기 노이즈 값을 제거하는 단계
를 포함하는,
서버.
13. The method of claim 12,
The step of generating a learning matrix by removing noise values in the matrix comprises:
predicting a numeric value for a target component to which a numeric value is not set among components in the matrix; and
removing the noise value by setting the predicted numeric value to the target component;
containing,
server.
제11항에 있어서,
상기 입력 및 상기 학습 매트릭스에 기초하여 명시적인 정보를 나타내는 제1 특징을 생성하는 단계는,
상기 입력의 정보들 및 상기 학습 매트릭스 내의 성분들을 합(addition)하거나 내적(inner product)함으로써 상기 제1 특징을 생성하는 단계
를 포함하는,
서버.
12. The method of claim 11,
generating a first feature representing explicit information based on the input and the learning matrix comprises:
generating the first feature by adding or inner producting the information of the input and components in the learning matrix;
containing,
server.
제11항에 있어서,
상기 학습 매트릭스에 기초하여 암묵적인 정보를 나타내는 제2 특징을 생성하는 단계는,
상기 학습 매트릭스를 DNN(deep neural network) 레이어에 입력함으로써 상기 제2 특징을 생성하는 단계
를 포함하는,
서버.
12. The method of claim 11,
Generating a second feature representing implicit information based on the learning matrix comprises:
generating the second feature by inputting the learning matrix into a deep neural network (DNN) layer;
containing,
server.
제11항에 있어서,
상기 컨텐츠들의 시청 순서에 기초하여 상기 컨텐츠들의 연속성에 대한 특징을 나타내는 제3 특징을 생성하는 단계는,
GRU(Gated Recurrent Unit) 방식에 기초하여 이볼빙(evolving) 레이어에 상기 컨텐츠들을 순서적으로 입력함으로써 제3 특징을 생성하는 단계
를 포함하는,
서버.
12. The method of claim 11,
The step of generating a third characteristic indicating a characteristic of the continuity of the contents based on the viewing order of the contents,
Generating the third feature by sequentially inputting the contents to an evolving layer based on a Gated Recurrent Unit (GRU) scheme
containing,
server.
제11항에 있어서,
상기 컨텐츠들은 VOD(video on demand)인,
서버.
12. The method of claim 11,
The contents are video on demand (VOD),
server.
KR1020200017109A 2020-02-12 2020-02-12 Method and apparatus for recommending content based on content viewing history of user KR102334594B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200017109A KR102334594B1 (en) 2020-02-12 2020-02-12 Method and apparatus for recommending content based on content viewing history of user

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200017109A KR102334594B1 (en) 2020-02-12 2020-02-12 Method and apparatus for recommending content based on content viewing history of user

Publications (2)

Publication Number Publication Date
KR20210102727A true KR20210102727A (en) 2021-08-20
KR102334594B1 KR102334594B1 (en) 2021-12-02

Family

ID=77466807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200017109A KR102334594B1 (en) 2020-02-12 2020-02-12 Method and apparatus for recommending content based on content viewing history of user

Country Status (1)

Country Link
KR (1) KR102334594B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102538455B1 (en) * 2022-09-13 2023-05-30 세종대학교산학협력단 Role-model virtual object learning method and role-model virtual object service method based on reinforcement learning

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080100342A (en) * 2006-02-10 2008-11-17 스트랜즈, 아이엔씨. Dynamic interactive entertainment
KR20190130410A (en) * 2018-05-14 2019-11-22 고려대학교 산학협력단 Apparatus and method for recommending customized content for smart senior

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080100342A (en) * 2006-02-10 2008-11-17 스트랜즈, 아이엔씨. Dynamic interactive entertainment
KR20190130410A (en) * 2018-05-14 2019-11-22 고려대학교 산학협력단 Apparatus and method for recommending customized content for smart senior

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102538455B1 (en) * 2022-09-13 2023-05-30 세종대학교산학협력단 Role-model virtual object learning method and role-model virtual object service method based on reinforcement learning

Also Published As

Publication number Publication date
KR102334594B1 (en) 2021-12-02

Similar Documents

Publication Publication Date Title
Ebesu et al. Collaborative memory network for recommendation systems
US10706100B2 (en) Method of and system for recommending media objects
CN108431833B (en) End-to-end depth collaborative filtering
US9864951B1 (en) Randomized latent feature learning
WO2017076073A1 (en) Method and apparatus for search and recommendation
US11915129B2 (en) Method and system for table retrieval using multimodal deep co-learning with helper query-dependent and query-independent relevance labels
CN112989146B (en) Method, apparatus, device, medium and program product for recommending resources to target user
WO2019174379A1 (en) Operation path navigation
US10922725B2 (en) Automatic rule generation for recommendation engine using hybrid machine learning
CN112650942A (en) Product recommendation method, device, computer system and computer-readable storage medium
Xia et al. Modeling consumer buying decision for recommendation based on multi-task deep learning
WO2023087914A1 (en) Method and apparatus for selecting recommended content, and device, storage medium and program product
KR102334594B1 (en) Method and apparatus for recommending content based on content viewing history of user
CN115687690A (en) Video recommendation method and device, electronic equipment and storage medium
CN118349897A (en) Model training method, prediction method and device based on discretization processing
Lubos et al. Llm-generated explanations for recommender systems
CN110827078B (en) Information recommendation method, device, equipment and storage medium
CN112000872A (en) Recommendation method based on user vector, training method of model and training device
KR102330059B1 (en) Method and device for recommending a poster
KR20230159165A (en) Method, computer device, and computer program to recommend similar product based on keyword
KR102334596B1 (en) Method and apparatus for recommending content to user
KR20230148523A (en) Multimedia recommendation method and system preserving the unique characteristics of modality
CN112035740A (en) Project use duration prediction method, device, equipment and storage medium
Hu et al. Generic user behavior: A user behavior similarity-based recommendation method
KR102342522B1 (en) Recommendation apparatus and operating merhod thereof

Legal Events

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