KR20210124709A - Method and Apparatus for Deep Learning Based Real-time Program Recommendation - Google Patents

Method and Apparatus for Deep Learning Based Real-time Program Recommendation Download PDF

Info

Publication number
KR20210124709A
KR20210124709A KR1020200042085A KR20200042085A KR20210124709A KR 20210124709 A KR20210124709 A KR 20210124709A KR 1020200042085 A KR1020200042085 A KR 1020200042085A KR 20200042085 A KR20200042085 A KR 20200042085A KR 20210124709 A KR20210124709 A KR 20210124709A
Authority
KR
South Korea
Prior art keywords
information
program
customer
programs
viewing
Prior art date
Application number
KR1020200042085A
Other languages
Korean (ko)
Other versions
KR102357360B1 (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 KR1020200042085A priority Critical patent/KR102357360B1/en
Publication of KR20210124709A publication Critical patent/KR20210124709A/en
Application granted granted Critical
Publication of KR102357360B1 publication Critical patent/KR102357360B1/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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25883Management of end-user data being end-user demographical data, e.g. age, family status or address
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25891Management of end-user data being end-user 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)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention provides a method for deep learning-based real-time program recommendation which can promote customer service satisfaction. The method comprises: a step of receiving customer information of a specific customer and information on a plurality of programs, wherein the customer information of the specific customer includes real-time program viewing sequence information, and the plurality of programs are programs being currently broadcast on channels other than a channel which the specific customer is currently viewing; a step of providing viewing probability values for the plurality of programs based on the customer information of the specific customer and the information on the plurality of programs, wherein the viewing probability values represent the probabilities that the specific customer will view the corresponding programs; and a step of determining to recommend at least one program among the plurality of programs to the specific customer based on the viewing probability values.

Description

심층 학습에 기반한 실시간 프로그램 추천 방법 및 장치{Method and Apparatus for Deep Learning Based Real-time Program Recommendation}Method and Apparatus for Deep Learning Based Real-time Program Recommendation

본 발명은 심층 학습에 기반하여 실시간으로 프로그램을 추천하는 기술에 관한 것이다.The present invention relates to a technology for recommending a program in real time based on deep learning.

근래에 들어 인터넷(Internet)의 활용이 일상화됨에 따라 홈 네트워크 시대가 도래하였다. 이러한 홈 네트워크를 실현한 구체적인 한 예로서 IPTV(Internet Protocol Television) 서비스를 들 수 있다. IPTV 서비스는 인터넷을 이용하여 제공되는 양방향 TV 서비스로서, 인터넷에 연결된 셋탑박스(set-top box)를 이용하여 실시간 방송을 시청하거나 컨텐츠 제공 서비스 사업자가 운용하는 컨텐츠 제공 서버와 연결하여 VOD(video on demand) 컨텐츠를 시청할 수 있도록 한 서비스이다. 최근에는 IPTV 서비스가 본격적인 궤도에 오르면서 그 동안 컴퓨터와 인터넷을 통해 이용해 왔던 뉴스, 주가 등의 실시간 방송, 메신저, 문자 전송, 메일, 채팅 등의 주문형 커뮤니케이션, 온라인 게임, 홈쇼핑, 홈뱅킹, 정보 검색, VoIP 등의 다양한 서비스가 TV의 영역으로 이동하고 있는 추세이다. 이 때문에 IPTV는 스마트 TV(Smart TV), 인핸스드 TV(Enhanced TV), 인텔리전트 TV(Intelligent TV) 등과 같이 지능적이고 고도하다는 개념을 담은 다양한 이름으로 불리운다.In recent years, as the use of the Internet has become commonplace, the era of home networks has arrived. A specific example of realizing such a home network is an Internet Protocol Television (IPTV) service. The IPTV service is an interactive TV service provided using the Internet, where a user can watch real-time broadcasting using a set-top box connected to the Internet or connect to a content providing server operated by a content providing service provider to provide video on demand (VOD) services. demand) is a service that allows users to view content. Recently, as the IPTV service is on full-fledged trajectory, real-time broadcasting of news and stock prices, which have been used through computers and the Internet, on-demand communication such as messenger, text transmission, e-mail and chatting, online games, home shopping, home banking, information retrieval, Various services such as VoIP are moving to the TV area. For this reason, IPTV is called by various names containing the concept of intelligent and advanced, such as Smart TV, Enhanced TV, and Intelligent TV.

본 발명의 과제는 고객 개개인의 실시간 시청 이력에 관한 정보를 바탕으로 고객 개개인 별로 선호할 만한 채널/프로그램을 실시간으로 예측하여 추천함으로써 고객 서비스 만족도를 제고할 수 있도록 한 자동화된 실시간 프로그램 추천 기술을 제공하는 것이다.An object of the present invention is to provide an automated real-time program recommendation technology that can improve customer service satisfaction by predicting and recommending channels/programs that each customer prefers in real time based on information about each customer's real-time viewing history will do

본 발명이 해결하고자 하는 과제들은 이상에서 언급한 과제들에 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the following description.

일 측면에서, 심층 학습(Deep Learning)에 기반한 실시간 프로그램 추천 방법이 제공된다. 본 방법은, 특정 고객의 고객 정보 및 복수의 프로그램에 관한 정보를 입력받는 단계 - 상기 특정 고객의 고객 정보는 실시간 프로그램 시청 시퀀스 정보를 포함하고, 상기 복수의 프로그램은 상기 특정 고객이 현재 시청하고 있는 채널 이외의 채널들에서 현재 방영되고 있는 프로그램들임 -, 상기 특정 고객의 고객 정보 및 상기 복수의 프로그램에 관한 정보를 기초로 상기 복수의 프로그램의 각각에 대한 시청 확률값을 제공하는 단계 - 상기 시청 확률값은 상기 특정 고객이 상기 해당 프로그램을 시청할 확률을 나타냄 -, 및 상기 시청 확률값들에 기초하여 상기 특정 고객에게 상기 복수의 프로그램 중 적어도 하나의 프로그램을 추천하는 것으로 결정하는 단계를 포함할 수 있다.In one aspect, a real-time program recommendation method based on deep learning is provided. The method comprises the steps of: receiving customer information of a specific customer and information about a plurality of programs - The customer information of the specific customer includes real-time program viewing sequence information, and the plurality of programs are selected by the specific customer. Programs currently being aired on channels other than the channel - Providing a viewing probability value for each of the plurality of programs based on customer information of the specific customer and information on the plurality of programs - The viewing probability value is indicating a probability that the specific customer will watch the corresponding program; and determining to recommend at least one program among the plurality of programs to the specific customer based on the viewing probability values.

일 실시예에서, 상기 실시간 프로그램 시청 시퀀스 정보는 상기 특정 고객이 시청한 적어도 하나의 프로그램 및 그 시청 순서에 관한 정보이다.In an embodiment, the real-time program viewing sequence information is information about at least one program viewed by the specific customer and a viewing order thereof.

일 실시예에서, 상기 특정 고객의 고객 정보는 상기 특정 고객의 고객 ID(Identification) 및 상기 특정 고객의 프로필 정보를 더 포함한다.In an embodiment, the customer information of the specific customer further includes a customer ID (Identification) of the specific customer and profile information of the specific customer.

일 실시예에서, 상기 특정 고객의 프로필 정보는 상기 특정 고객의 가입 정보, 상기 특정 고객의 나이에 관한 정보 및 상기 특정 고객의 성별에 관한 정보를 포함한다.In an embodiment, the profile information of the specific customer includes subscription information of the specific customer, information about the age of the specific customer, and information about the gender of the specific customer.

일 실시예에서, 상기 복수의 프로그램에 관한 정보는 상기 복수의 프로그램의 프로그램 ID들을 포함한다.In an embodiment, the information about the plurality of programs includes program IDs of the plurality of programs.

일 실시예에서, 상기 복수의 프로그램에 관한 정보는 상기 복수의 프로그램의 프로그램 메타 정보(program meta information)를 더 포함한다.In an embodiment, the information about the plurality of programs further includes program meta information of the plurality of programs.

일 실시예에서, 상기 특정 고객의 고객 정보 및 상기 복수의 프로그램에 관한 정보를 기초로 상기 복수의 프로그램의 각각에 대한 시청 확률값을 제공하는 단계 - 상기 시청 확률값은 상기 특정 고객이 상기 해당 프로그램을 시청할 확률을 나타냄 - 는, 상기 특정 고객의 고객 정보 및 상기 해당 프로그램에 관한 정보를 심층 학습 모듈로 입력함으로써 상기 해당 프로그램에 대한 시청 확률값을 제공하는 단계를 포함한다.In an embodiment, providing a viewing probability value for each of the plurality of programs based on customer information of the specific customer and information on the plurality of programs - The viewing probability value is determined by the specific customer to view the corresponding program Representing the probability - includes providing a viewing probability value for the corresponding program by inputting customer information of the specific customer and information about the corresponding program into a deep learning module.

일 실시예에서, 상기 특정 고객의 고객 정보 및 상기 복수의 프로그램에 관한 정보를 기초로 상기 복수의 프로그램의 각각에 대한 시청 확률값을 제공하는 단계 - 상기 시청 확률값은 상기 특정 고객이 상기 해당 프로그램을 시청할 확률을 나타냄 - 는, 상기 특정 고객의 고객 정보 및 상기 해당 프로그램에 관한 정보를 입력 계층으로 입력하여 임베딩(embedding) 처리를 수행함으로써 입력 벡터들을 출력하는 단계, 상기 입력 벡터들을 심층 신경망(Deep Neural Network: DNN) 계층으로 입력하여 복수의 출력 값을 제공하는 단계, 및 상기 복수의 출력 값을 시그모이드 함수 계층(Sigmoid Function Layer)으로 입력하여 상기 해당 프로그램에 대한 시청 확률값을 제공하는 단계를 포함한다.In an embodiment, providing a viewing probability value for each of the plurality of programs based on customer information of the specific customer and information on the plurality of programs - The viewing probability value is determined by the specific customer to view the corresponding program Representing the probability - outputting input vectors by inputting the customer information of the specific customer and information about the corresponding program into an input layer and performing embedding processing, and converting the input vectors into a Deep Neural Network : providing a plurality of output values by input to the DNN layer, and providing a viewing probability value for the corresponding program by inputting the plurality of output values into a sigmoid function layer .

일 실시예에서, 상기 특정 고객의 고객 정보 및 상기 해당 프로그램에 관한 정보를 입력 계층으로 입력하여 임베딩(embedding) 처리를 수행함으로써 입력 벡터들을 출력하는 단계는, 상기 실시간 프로그램 시청 시퀀스 정보에 임베딩 함수(embedding function)를 적용하여 실시간 채널 시청 패턴 특징 벡터를 출력하는 단계를 포함한다.In one embodiment, the step of outputting input vectors by performing embedding processing by inputting customer information of the specific customer and information about the corresponding program into an input layer includes an embedding function ( embedding function) to output a real-time channel viewing pattern feature vector.

일 실시예에서, 상기 특정 고객의 고객 정보 및 상기 해당 프로그램에 관한 정보를 입력 계층으로 입력하여 임베딩(embedding) 처리를 수행함으로써 입력 벡터들을 출력하는 단계는, 상기 특정 고객의 고객 ID, 상기 특정 고객의 프로필 정보, 상기 해당 프로그램의 ID 및 상기 해당 프로그램의 프로그램 메타 정보에 임베딩 함수들을 각각 적용하는 단계를 포함한다.In one embodiment, the step of outputting input vectors by performing embedding processing by inputting customer information of the specific customer and information about the corresponding program into an input layer includes: the customer ID of the specific customer, the specific customer and applying embedding functions to profile information, ID of the corresponding program, and program meta information of the corresponding program, respectively.

일 실시예에서, 상기 방법은, 상기 특정 고객의 고객 정보 및 복수의 프로그램에 관한 정보를 입력받는 단계 - 상기 특정 고객의 고객 정보는 실시간 프로그램 시청 시퀀스 정보를 포함하고, 상기 복수의 프로그램은 상기 특정 고객이 현재 시청하고 있는 채널 이외의 채널들에서 현재 방영되고 있는 프로그램들임 - 이전에, 상기 입력 계층, 상기 심층 신경망 계층 및 상기 시그모이드 함수 계층을 학습 데이터로 학습시키는 단계를 더 포함한다.In an embodiment, the method includes: receiving customer information of the specific customer and information about a plurality of programs, wherein the customer information of the specific customer includes real-time program viewing sequence information, and wherein the plurality of programs include: Programs currently being aired on channels other than the channel currently being watched by the customer - further comprising: previously, training the input layer, the deep neural network layer, and the sigmoid function layer with training data.

일 실시예에서, 상기 학습 데이터는 고객에 대한 실시간 프로그램 시청 시퀀스 정보를 포함하고, 상기 입력 계층, 상기 심층 신경망 계층 및 상기 시그모이드 함수 계층은 복수의 입력 노드 및 복수의 출력 노드를 포함하고, 상기 입력 노드들과 상기 출력 노드들 간에는 가중치들이 설정되어 있으며, 상기 입력 계층, 상기 심층 신경망 계층 및 상기 시그모이드 함수 계층을 학습 데이터로 학습시키는 단계는, 상기 실시간 프로그램 시퀀스 정보 및 상기 실시간 프로그램 시퀀스 정보에 포함된 프로그램들 중 어느 하나의 프로그램 ID를 상기 입력 계층으로 입력시켰을 때 상기 시그모이드 함수 계층으로부터 출력되는 시청 확률값이 선정된 임계값 이상이 되도록 상기 가중치들을 변경하는 단계를 포함한다.In one embodiment, the training data includes real-time program viewing sequence information for a customer, and the input layer, the deep neural network layer and the sigmoid function layer include a plurality of input nodes and a plurality of output nodes, Weights are set between the input nodes and the output nodes, and the step of learning the input layer, the deep neural network layer, and the sigmoid function layer with training data includes the real-time program sequence information and the real-time program sequence. and changing the weights so that when the program ID of any one of the programs included in the information is input to the input layer, the viewing probability value output from the sigmoid function layer is greater than or equal to a predetermined threshold value.

일 실시예에서, 상기 복수의 출력 값을 시그모이드 함수 계층(Sigmoid Function Layer)으로 입력하여 상기 해당 프로그램에 대한 시청 확률값을 제공하는 단계는, 상기 복수의 출력값에 시그모이드 함수(Sigmoid Function)를 적용해서 상기 시청 확률값을 제공하는 단계를 포함한다.In one embodiment, the step of inputting the plurality of output values into a sigmoid function layer and providing the viewing probability value for the corresponding program comprises: providing a sigmoid function to the plurality of output values. and providing the viewing probability value by applying .

일 실시예에서, 상기 시청 확률값들에 기초하여 상기 특정 고객에게 상기 복수의 프로그램 중 적어도 하나의 프로그램을 추천하는 것으로 결정하는 단계는, 상기 시청 확률값들 중 가장 큰 시청 확률값을 식별하는 단계, 상기 식별된 가장 큰 시청 확률값을 제공하기 위해 상기 심층 학습 모듈로 입력된 프로그램에 관한 정보에 해당하는 프로그램을 식별하는 단계, 및 상기 특정 고객에게 상기 식별된 프로그램을 추천하는 것으로 결정하는 단계를 포함한다.In an embodiment, the determining to recommend at least one program among the plurality of programs to the specific customer based on the viewing probability values comprises: identifying a highest viewing probability value among the viewing probability values; identifying a program corresponding to information about a program input into the deep learning module to provide the highest viewing probability value obtained; and determining to recommend the identified program to the specific customer.

일 실시예에서, 상기 시청 확률값들에 기초하여 상기 특정 고객에게 상기 복수의 프로그램 중 적어도 하나의 프로그램을 추천하는 것으로 결정하는 단계는, 상기 시청 확률값들 중 선정된 개수의 가장 큰 시청 확률값들을 식별하는 단계, 상기 식별된 선정된 개수의 가장 큰 시청 확률값들을 제공하기 위해 상기 심층 학습 모듈로 각각 입력된 프로그램에 관한 정보에 해당하는 프로그램들을 식별하는 단계, 및 상기 특정 고객에게 상기 식별된 프로그램들을 추천하는 것으로 결정하는 단계를 포함한다.In an embodiment, the determining of recommending at least one program among the plurality of programs to the specific customer based on the viewing probability values comprises: identifying a selected number of highest viewing probability values among the viewing probability values Step, identifying the programs corresponding to the information about the program each input into the deep learning module to provide the largest viewing probability values of the identified predetermined number, and recommending the identified programs to the specific customer determining that it is

일 실시예에서, 상기 시청 확률값들에 기초하여 상기 특정 고객에게 상기 복수의 프로그램 중 적어도 하나의 프로그램을 추천하는 것으로 결정하는 단계는, 상기 시청 확률값들 중 선정된 임계값 이상인 적어도 하나의 시청 확률값을 식별하는 단계, 상기 식별된 적어도 하나의 시청 확률값을 제공하기 위해 상기 심층 학습 모듈로 입력된 프로그램에 관한 정보에 해당하는 적어도 하나의 프로그램을 식별하는 단계, 및 상기 특정 고객에게 상기 식별된 적어도 하나의 프로그램을 추천하는 것으로 결정하는 단계를 포함한다.In an embodiment, the determining of recommending at least one program among the plurality of programs to the specific customer based on the viewing probability values comprises: selecting at least one viewing probability value that is greater than or equal to a selected threshold value among the viewing probability values identifying, identifying at least one program corresponding to information about the program input into the deep learning module to provide the identified at least one viewing probability value, and providing the identified at least one viewing probability value to the specific customer. and determining to recommend the program.

다른 측면에서, 심층 학습에 기반한 실시간 프로그램 추천을 위한 장치가 제공된다. 본 장치는, 특정 고객의 고객 정보 및 복수의 프로그램에 관한 정보를 저장하는 데이터베이스부 - 상기 특정 고객의 고객 정보는 실시간 프로그램 시청 시퀀스 정보를 포함하고, 상기 복수의 프로그램은 상기 특정 고객이 현재 시청하고 있는 채널 이외의 채널들에서 현재 방영되고 있는 프로그램들임 -, 및 상기 특정 고객의 고객 정보 및 상기 복수의 프로그램에 관한 정보를 기초로 상기 복수의 프로그램의 각각에 대한 시청 확률값을 제공하고 - 상기 시청 확률값은 상기 특정 고객이 상기 해당 프로그램을 시청할 확률을 나타냄 -, 상기 시청 확률값들에 기초하여 상기 특정 고객에게 상기 복수의 프로그램 중 적어도 하나의 프로그램을 추천하는 것으로 결정하도록 구성된 프로세싱 엔진을 포함할 수 있다.In another aspect, an apparatus for real-time program recommendation based on deep learning is provided. The apparatus includes: a database unit for storing customer information of a specific customer and information about a plurality of programs, wherein the customer information of the specific customer includes real-time program viewing sequence information, and the plurality of programs are currently viewed by the specific customer and Programs currently being aired on channels other than the existing channel - and providing a viewing probability value for each of the plurality of programs based on customer information of the specific customer and information on the plurality of programs - the viewing probability value represents a probability that the particular customer will watch the corresponding program; and a processing engine configured to determine to recommend at least one program of the plurality of programs to the particular customer based on the viewing probability values.

일 실시예에서, 상기 실시간 프로그램 시청 시퀀스 정보는 상기 특정 고객이 시청한 적어도 하나의 프로그램 및 그 시청 순서에 관한 정보이다.In an embodiment, the real-time program viewing sequence information is information about at least one program viewed by the specific customer and a viewing order thereof.

일 실시예에서, 상기 특정 고객의 고객 정보는 상기 특정 고객의 고객 ID 및 상기 특정 고객의 프로필 정보를 더 포함한다.In an embodiment, the customer information of the specific customer further includes a customer ID of the specific customer and profile information of the specific customer.

일 실시예에서, 상기 특정 고객의 프로필 정보는 상기 특정 고객의 가입 정보, 상기 특정 고객의 나이에 관한 정보 및 상기 특정 고객의 성별에 관한 정보를 포함한다.In an embodiment, the profile information of the specific customer includes subscription information of the specific customer, information about the age of the specific customer, and information about the gender of the specific customer.

일 실시예에서, 상기 복수의 프로그램에 관한 정보는 상기 복수의 프로그램의 프로그램 ID들을 포함한다.In an embodiment, the information about the plurality of programs includes program IDs of the plurality of programs.

일 실시예에서, 상기 복수의 프로그램에 관한 정보는 상기 복수의 프로그램의 프로그램 메타 정보를 더 포함한다.In an embodiment, the information about the plurality of programs further includes program meta information of the plurality of programs.

일 실시예에서, 상기 프로세싱 엔진은 심층 학습 모듈을 구현하며, 상기 프로세싱 엔진은 상기 특정 고객의 고객 정보 및 상기 복수의 프로그램의 각각에 관한 정보를 심층 학습 모듈로 입력함으로써 상기 해당 프로그램에 대한 시청 확률값을 제공하도록 더 구성된다.In one embodiment, the processing engine implements a deep learning module, the processing engine by inputting the customer information of the specific customer and information about each of the plurality of programs into the deep learning module, a viewing probability value for the corresponding program is further configured to provide

일 실시예에서, 상기 프로세싱 엔진은 입력 계층, 심층 신경망 계층 및 시그모이드 함수 계층을 포함하는 심층 학습 모듈을 구현하며, 상기 프로세싱 엔진은, 상기 특정 고객의 고객 정보 및 상기 복수의 프로그램의 각각에 관한 정보를 입력 계층으로 입력하여 임베딩 처리를 수행함으로써 입력 벡터들을 출력하고, 상기 입력 벡터들을 심층 신경망 계층으로 입력하여 복수의 출력 값을 제공하고, 상기 복수의 출력 값을 시그모이드 함수 계층으로 입력하여 상기 해당 프로그램에 대한 시청 확률값을 제공하도록 더 구성된다.In one embodiment, the processing engine implements a deep learning module comprising an input layer, a deep neural network layer and a sigmoid function layer, wherein the processing engine is configured to: information about the input layer is input to the input layer to output input vectors by performing embedding processing, the input vectors are input to the deep neural network layer to provide a plurality of output values, and the plurality of output values are inputted to the sigmoid function layer to provide a viewing probability value for the corresponding program.

일 실시예에서, 상기 입력 계층은, 상기 실시간 프로그램 시청 시퀀스 정보에 임베딩 함수를 적용하여 실시간 채널 시청 패턴 특징 벡터를 출력하도록 구성된다.In an embodiment, the input layer is configured to apply an embedding function to the real-time program viewing sequence information to output a real-time channel viewing pattern feature vector.

일 실시예에서, 상기 입력 계층은, 상기 특정 고객의 고객 ID, 상기 특정 고객의 프로필 정보, 상기 복수의 프로그램의 각각의 프로그램의 ID 및 상기 해당 프로그램의 프로그램 메타 정보에 임베딩 함수들을 각각 적용하도록 더 구성된다.In one embodiment, the input layer is further configured to apply embedding functions to the customer ID of the specific customer, the profile information of the specific customer, the ID of each program of the plurality of programs, and the program meta information of the corresponding program, respectively is composed

일 실시예에서, 상기 프로세싱 엔진은 상기 입력 계층, 상기 심층 신경망 계층 및 상기 시그모이드 함수 계층을 학습 데이터로 학습시키도록 더 구성된다.In an embodiment, the processing engine is further configured to train the input layer, the deep neural network layer and the sigmoid function layer with training data.

일 실시예에서, 상기 학습 데이터는 고객에 대한 실시간 프로그램 시청 시퀀스 정보를 포함하고, 상기 입력 계층, 상기 심층 신경망 계층 및 상기 시그모이드 함수 계층은 복수의 입력 노드 및 복수의 출력 노드를 포함하고, 상기 입력 노드들과 상기 출력 노드들 간에는 가중치들이 설정되어 있으며, 상기 프로세싱 엔진은, 상기 실시간 프로그램 시퀀스 정보 및 상기 실시간 프로그램 시퀀스 정보에 포함된 프로그램들 중 어느 하나의 프로그램 ID를 상기 입력 계층으로 입력시켰을 때 상기 시그모이드 함수 계층으로부터 출력되는 시청 확률값이 선정된 임계값 이상이 되도록 상기 가중치들을 변경하도록 더 구성된다.In one embodiment, the training data includes real-time program viewing sequence information for a customer, and the input layer, the deep neural network layer and the sigmoid function layer include a plurality of input nodes and a plurality of output nodes, Weights are set between the input nodes and the output nodes, and the processing engine inputs the real-time program sequence information and the program ID of any one of the programs included in the real-time program sequence information to the input layer. and change the weights so that when the viewing probability value output from the sigmoid function layer is equal to or greater than a predetermined threshold.

일 실시예에서, 상기 시그모이드 함수 계층은, 상기 복수의 출력값에 시그모이드 함수를 적용해서 상기 시청 확률값을 제공하도록 더 구성된다.In an embodiment, the sigmoid function layer is further configured to provide the viewing probability value by applying a sigmoid function to the plurality of output values.

일 실시예에서, 상기 프로세싱 엔진은, 상기 시청 확률값들 중 가장 큰 시청 확률값을 식별하고, 상기 식별된 가장 큰 시청 확률값을 제공하기 위해 상기 심층 학습 모듈로 입력된 프로그램에 관한 정보에 해당하는 프로그램을 식별하고, 상기 특정 고객에게 상기 식별된 프로그램을 추천하는 것으로 결정하도록 더 구성된다.In an embodiment, the processing engine identifies a highest viewing probability value among the viewing probability values, and provides a program corresponding to information about the program input into the deep learning module to provide the identified largest viewing probability value. and determine to recommend the identified program to the particular customer.

일 실시예에서, 상기 프로세싱 엔진은, 상기 시청 확률값들 중 선정된 개수의 가장 큰 시청 확률값들을 식별하고, 상기 식별된 선정된 개수의 가장 큰 시청 확률값들을 제공하기 위해 상기 심층 학습 모듈로 각각 입력된 프로그램에 관한 정보에 해당하는 프로그램들을 식별하고, 상기 특정 고객에게 상기 식별된 프로그램들을 추천하는 것으로 결정하도록 더 구성된다.In one embodiment, the processing engine identifies a predetermined number of highest viewing probability values among the viewing probability values, and each input into the deep learning module to provide the identified predetermined number of largest viewing probability values. and identify programs corresponding to the information about the program, and determine to recommend the identified programs to the specific customer.

일 실시예에서, 상기 프로세싱 엔진은, 상기 시청 확률값들 중 선정된 임계값 이상인 적어도 하나의 시청 확률값을 식별하고, 상기 식별된 적어도 하나의 시청 확률값을 제공하기 위해 상기 심층 학습 모듈로 입력된 프로그램에 관한 정보에 해당하는 적어도 하나의 프로그램을 식별하고, 상기 특정 고객에게 상기 식별된 적어도 하나의 프로그램을 추천하는 것으로 결정하도록 더 구성된다.In one embodiment, the processing engine identifies at least one viewing probability value equal to or greater than a predetermined threshold value among the viewing probability values, and provides the identified at least one viewing probability value to the program input to the deep learning module. and identify at least one program corresponding to the related information, and determine to recommend the identified at least one program to the specific customer.

또 다른 측면에서, 프로그램을 기록한 컴퓨터 판독가능 기록매체가 제공된다. 여기서 상기 프로그램은 명령어들을 포함하고, 상기 명령어들은 컴퓨터에 의해 실행될 때 상기 방법을 수행한다.In another aspect, a computer-readable recording medium recording a program is provided. wherein the program includes instructions, the instructions performing the method when executed by a computer.

본 발명의 실시예들에 따르면, 고객 개개인의 실시간 시청 이력에 관한 정보를 바탕으로 고객 개개인 별로 선호할 만한 채널/프로그램을 실시간으로 예측하여 추천함으로써 고객 서비스 만족도를 제고할 수 있는 기술적 효과가 있다.According to the embodiments of the present invention, there is a technical effect that can improve customer service satisfaction by predicting and recommending channels/programs preferred by each customer in real time based on information about each customer's real-time viewing history.

도 1은 심층 학습(Deep Learning)에 기반한 실시간 프로그램 추천을 위한 장치의 블록도의 일 실시예를 도시한 도면이다.
도 2는 실시간 프로그램 시청 시퀀스 정보에 임베딩 함수를 적용하는 동작을 설명하기 위한 도면이다.
도 3은 심층 학습에 기반한 실시간 프로그램 추천 방법을 설명하기 위한 흐름도의 일 실시예를 도시한 도면이다.
1 is a diagram illustrating an embodiment of a block diagram of an apparatus for real-time program recommendation based on deep learning.
FIG. 2 is a diagram for explaining an operation of applying an embedding function to real-time program viewing sequence information.
3 is a diagram illustrating an embodiment of a flowchart for explaining a real-time program recommendation method based on deep learning.

본 발명의 이점들과 특징들 그리고 이들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해 질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 본 실시예들은 단지 본 발명의 개시가 완전하도록 하며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려 주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention and a method of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in a variety of different forms, and these embodiments merely allow the disclosure of the present invention to be complete and those of ordinary skill in the art to which the present invention pertains. It is provided to fully inform the person of the scope of the invention, and the present invention is only defined by the scope of the claims.

본 명세서에서 사용되는 용어는 단지 특정한 실시예를 설명하기 위해 사용되는 것으로 본 발명을 한정하려는 의도에서 사용된 것이 아니다. 예를 들어, 단수로 표현된 구성 요소는 문맥상 명백하게 단수만을 의미하지 않는다면 복수의 구성 요소를 포함하는 개념으로 이해되어야 한다. 또한, 본 발명의 명세서에서, '포함하다' 또는 '가지다' 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것일 뿐이고, 이러한 용어의 사용에 의해 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성이 배제되는 것은 아니다. 또한, 본 명세서에 기재된 실시예에 있어서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하는 기능적 부분을 의미할 수 있다.The terms used herein are used only to describe specific embodiments and are not intended to limit the present invention. For example, a component expressed in a singular should be understood as a concept including a plurality of components unless the context clearly means only the singular. In addition, in the specification of the present invention, terms such as 'comprise' or 'have' are only intended to designate that the features, numbers, steps, operations, components, parts, or combinations thereof described in the specification exist, and such The use of the term does not exclude the possibility of the presence or addition of one or more other features or numbers, steps, operations, components, parts, or combinations thereof. Also, in the embodiments described in this specification, a 'module' or a 'unit' may mean a functional part that performs at least one function or operation.

덧붙여, 다르게 정의되지 않는 한 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미가 있는 것으로 해석되어야 하며, 본 발명의 명세서에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.In addition, 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 this invention belongs. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in the specification of the present invention, it should be interpreted in an ideal or excessively formal meaning. doesn't happen

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 보다 상세히 설명한다. 다만, 이하의 설명에서는 본 발명의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.Hereinafter, embodiments of the present invention will be described in more detail with reference to the accompanying drawings. However, in the following description, if there is a risk of unnecessarily obscuring the gist of the present invention, detailed descriptions of well-known functions or configurations will be omitted.

도 1은 심층 학습(Deep Learning)에 기반한 실시간 프로그램 추천을 위한 장치의 블록도의 일 실시예를 도시한 도면이다.1 is a diagram illustrating an embodiment of a block diagram of an apparatus for real-time program recommendation based on deep learning.

도 1의 실시간 프로그램 추천을 위한 장치(100)는 IPTV 서비스 사업자가 운용하는, 하나 이상의 위치에 설치되는 하나 이상의 서버 컴퓨터에서 실행되는 컴퓨터 프로그램들로서 구현되는 시스템의 일 예일 수 있다. 도 1에 도시된 바와 같이, 장치(100)는 데이터베이스부(110)를 포함할 수 있다. 데이터베이스부(110)는 고객 정보를 저장할 수 있다. 고객 정보는 복수의 고객의 ID들(Identifications), 복수의 고객의 각각의 프로필 정보 및 복수의 고객의 각각에 대한 실시간 프로그램 시청 시퀀스 정보를 포함할 수 있다. 복수의 고객의 각각의 프로필 정보는 해당 고객의 가입 정보, 해당 고객의 나이에 관한 정보 및 해당 고객의 성별에 관한 정보를 포함할 수 있다. 고객의 가입 정보는 보급형 채널 상품, CJ 채널 상품, 아이들나라 상품, 실시간 채널 S 요금제 상품 등과 같은 해당 고객이 가입한 가입 상품에 관한 정보일 수 있다. 복수의 고객의 각각에 대한 실시간 프로그램 시청 시퀀스 정보는 해당 고객이 시청한 적어도 하나의 프로그램 및 그 시청 순서에 관한 정보일 수 있다. 예컨대 고객 A가 2020년 3월 3일에 채널 5에서 프로그램 a를 보고, 채널 17에서 프로그램 c를 보고, 채널 30에서 프로그램 k를 보고, 채널 54에서 프로그램 f를 본 경우, 고객 A에 대한 실시간 프로그램 시청 시퀀스 정보는 채널 5의 프로그램 a, 채널 17의 프로그램 c, 채널 30의 프로그램 k 및 채널 54의 프로그램 f를 순서대로 지정하는 정보일 수 있다. 여기서 채널 5의 프로그램 a, 채널 17의 프로그램 c, 채널 30의 프로그램 k 및 채널 54의 프로그램 f와 같은 각각의 채널의 프로그램들은 그 고유의 IDs(Identifications)에 의해 각각 식별될 수 있다. 각각의 고객에 대한 실시간 프로그램 시청 시퀀스 정보는 일 단위로, 주 단위로 또는 임의의 주기마다 업데이트되어 데이터베이스부(110)에 저장될 수 있으나, 실시간 프로그램 시청 시퀀스 정보가 업데이트되어 저장되는 방식이 이에 제한되는 것이 아님을 인식하여야 한다. 이상으로 설명한 고객 정보는 고객측에 설치된 셋탑박스(Set-top Box)와 인터넷(Internet)과 같은 통신망을 통해 통신하면서 고객의 요청을 수신하고 이에 응답하여 IPTV 서비스를 제공하는 서비스 제공 서버로부터 다양한 방식으로 획득하는 것이 가능하나, 고객 정보를 획득하는 방식이 이에 제한되는 것이 아님을 인식하여야 한다. 데이터베이스부(110)는, 유성방송 서비스 제공 사업자들에 의해 제공되는 방송 프로그램들 관한 정보를 더 저장할 수 있다. 데이터베이스부(110)는, 예컨대 채널 1의 프로그램 1 내지 프로그램 22, 채널 2의 프로그램 1 내지 프로그램 17, 채널 3의 프로그램 1 내지 프로그램 19 등과 같이, 유선방송 서비스 제공 사업자들에 의해 운용되는 채널들에서 제공되는 모든 프로그램들에 할당된 ID들을 저장할 수 있다. 데이터베이스부(110)는 이들 프로그램의 프로그램 메타 정보(program meta information)를 해당 프로그램들의 ID들과 각각 연관시켜 저장할 수 있다. 프로그램 메타 정보는 해당 프로그램의 키워드, 분위기, 장르, 소재, 줄거리, 배우, 감독 등에 관한 정보를 포함할 수 있다. 장치(100)는 현재 IPTV를 시청 중인 고객들의 각각이 현재 시청하고 있는 채널/프로그램에 관한 정보를, 예컨대 IPTV 서비스 사업자의 서비스 제공 서버로부터 실시간으로 제공받을 수 있는데, 이러한 정보 또한 데이터베이스부(110)에 저장될 수 있다. 일 실시예에서, 데이터베이스부(110)는 유선방송 서비스 제공 사업자들에 의해 운용되는 채널들에서 제공되는 프로그램들의 각각의 시작 시간과 종료 시간에 관한 정보를 더 저장할 수 있다.The apparatus 100 for real-time program recommendation of FIG. 1 may be an example of a system implemented as computer programs operated by an IPTV service provider and executed on one or more server computers installed in one or more locations. As shown in FIG. 1 , the device 100 may include a database unit 110 . The database unit 110 may store customer information. The customer information may include IDs (Identifications) of a plurality of customers, profile information of each of the plurality of customers, and real-time program viewing sequence information for each of the plurality of customers. Each profile information of the plurality of customers may include subscription information of the corresponding customer, information about the age of the customer, and information about the gender of the customer. The customer's subscription information may be information about subscription products to which the customer has subscribed, such as low-end channel products, CJ channel products, children's country products, real-time channel S plan products, and the like. The real-time program viewing sequence information for each of the plurality of customers may be information about at least one program viewed by the corresponding customer and the viewing order thereof. For example, if customer A views program a on channel 5, program c on channel 17, program k on channel 30, and program f on channel 54 on March 3, 2020, a real-time program for customer A The viewing sequence information may be information designating the program a of channel 5, the program c of the channel 17, the program k of the channel 30, and the program f of the channel 54 in order. Here, programs of each channel, such as program a of channel 5, program c of channel 17, program k of channel 30, and program f of channel 54, can be identified by their unique IDs (Identifications), respectively. The real-time program viewing sequence information for each customer may be updated on a daily, weekly, or arbitrary period and stored in the database unit 110, but the method in which the real-time program viewing sequence information is updated and stored is limited thereto. You have to realize that it is not going to happen. The customer information described above is received in various ways from a service providing server that receives customer requests and provides IPTV services in response to them while communicating through a communication network such as a set-top box installed on the customer side and the Internet. Although it is possible to acquire customer information, it should be recognized that the method of acquiring customer information is not limited thereto. The database unit 110 may further store information about broadcast programs provided by voice broadcast service providers. The database unit 110 may include, for example, programs 1 to 22 of channel 1, programs 1 to 17 of channel 2, and programs 1 to 19 of channel 3, in channels operated by cable broadcasting service providers. IDs assigned to all provided programs can be stored. The database unit 110 may store program meta information of these programs in association with IDs of the corresponding programs, respectively. The program meta information may include information about keywords, atmosphere, genre, material, plot, actors, directors, and the like of the corresponding program. The device 100 may receive information on a channel/program currently viewed by each of the customers who are currently watching IPTV, for example, from a service providing server of an IPTV service provider in real time, and this information is also provided by the database unit 110 . can be stored in In an embodiment, the database unit 110 may further store information about the start time and end time of each program provided by channels operated by cable broadcasting service providers.

데이터베이스부(110)는, 플래시 메모리 타입(flash memory type), 하드 디스크 타입(hard disk type), 멀티미디어 카드(MultiMedia Card: MMC), 카드 타입의 메모리(예를 들어, SD(Secure Digital) 카드 또는 XD(eXtream Digital) 카드 등), 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), 자기 메모리, 자기 디스크 및 광 디스크 중 어느 하나의 저장 매체로 구현될 수 있으나, 당업자라면 데이터베이스부(110)의 구현 형태가 이에 한정되는 것이 아님을 알 수 있을 것이다.The database unit 110, a flash memory type (flash memory type), a hard disk type (hard disk type), a multimedia card (MultiMedia Card: MMC), a card type memory (eg, SD (Secure Digital) card or XD (eXtream Digital) cards, etc.), Random Access Memory (RAM), Static Random Access Memory (SRAM), Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Programmable Read-Only Memory (PROM) ), a magnetic memory, a magnetic disk, and an optical disk may be implemented as any one storage medium, but those skilled in the art will understand that the implementation form of the database unit 110 is not limited thereto.

장치(100)는 데이터베이스부(110)에 통신가능한 방식으로 결합된 프로세싱 엔진(processing engine, 120)을 더 포함할 수 있다. 프로세싱 엔진(120)은 입력 계층(Input Layer, 133), 심층 신경망(Deep Neural Network: DNN) 계층(135) 및 시그모이드 함수 계층(Sigmoid Function Layer, 137)을 포함하는 심층 학습 모듈(Deep Learning Module, 130)을 구현하도록 설계될 수 있다. 심층 학습 모듈(130)은 감독 학습(supervised learning), 준감독 학습(semi-supervised learning) 및 무감독 학습(unsupervised learning) 중 어느 하나의 방식으로 기계 학습의 일종인 심층 학습을 수행하도록 구현될 수 있다. 프로세싱 엔진(120)은 데이터베이스부(110)로부터 특정 고객의 고객 정보를 검색하여 심층 학습 모듈(130)로 입력되게 하도록 작동될 수 있다. 프로세싱 엔진(120)은 데이터베이스부(110)로부터 복수의 프로그램에 관한 정보를 검색하여 특정 고객의 고객 정보와 함께 심층 학습 모듈(130)로 차례로 입력되게 하도록 더 작동될 수 있다. 특정 고객의 고객 정보는 해당 고객의 ID 및 해당 고객에 대한 실시간 프로그램 시청 시퀀스 정보를 포함할 수 있다. 일 실시예에서, 특정 고객의 고객 정보는 해당 고객의 가입 정보, 나이에 관한 정보 및/또는 성별에 관한 정보를 포함하는 해당 고객의 프로필 정보를 더 포함할 수 있다. 검색된 복수의 프로그램은 특정 고객이 현재 시청하고 있는 채널 이외의 채널들에서 현재 방영되고 있는 프로그램들일 수 있다. 일 실시예에서, 프로세싱 엔진(120)은 특정 고객이 현재 시청하고 있는 채널/프로그램에 관한 정보를 데이터베이스부(110)로부터 검색하여 식별하고, 현재 시간과 데이터베이스부(110)에 저장된 프로그램들 각각의 시작 시간과 종료 시간에 관한 정보를 바탕으로 식별된 채널/프로그램 이외의 채널들에서 현재 방영되고 있는 프로그램들에 관한 정보를 다시 데이터베이스부(110)로부터 검색하여 복수의 프로그램에 관한 정보로서 제공하도록 구성될 수 있다. 일 실시예에서, 프로세싱 엔진(120)은 복수의 프로그램 중 하나씩의 프로그램에 관한 정보를 차례대로 데이터베이스부(110)로부터 검색하여 제공하도록 구성될 수 있다. 복수의 프로그램의 각각은 특정 고객이 IPTV의 채널을 돌려 시청할 가능성이 있는지를 예측해 보고자 하는 대상이 되는 프로그램으로서, 해당 프로그램에 대한 정보는 그 ID 및/또는 프로그램 메타 정보를 포함할 수 있다.The apparatus 100 may further include a processing engine 120 communicatively coupled to the database unit 110 . The processing engine 120 is a deep learning module including an input layer (Input Layer, 133), a deep neural network (DNN) layer 135 and a sigmoid function layer (Sigmoid Function Layer, 137). Module, 130) can be designed to implement. The deep learning module 130 may be implemented to perform deep learning, a type of machine learning, in any one of supervised learning, semi-supervised learning, and unsupervised learning. have. The processing engine 120 may be operated to retrieve customer information of a specific customer from the database unit 110 to be input to the deep learning module 130 . The processing engine 120 may be further operated to retrieve information about a plurality of programs from the database unit 110 and sequentially input the information to the deep learning module 130 together with customer information of a specific customer. The customer information of the specific customer may include an ID of the customer and real-time program viewing sequence information for the customer. In an embodiment, the customer information of the specific customer may further include profile information of the corresponding customer including subscription information, age information, and/or gender information of the specific customer. The plurality of searched programs may be programs currently being aired on channels other than the channel currently being viewed by a specific customer. In an embodiment, the processing engine 120 retrieves and identifies information about a channel/program that a specific customer is currently watching from the database unit 110, and determines the current time and each of the programs stored in the database unit 110. Information about programs currently being aired on channels other than the identified channel/program based on the information on the start time and the end time is retrieved from the database unit 110 again and configured to be provided as information about a plurality of programs can be In an embodiment, the processing engine 120 may be configured to sequentially retrieve and provide information about one program among a plurality of programs from the database unit 110 . Each of the plurality of programs is a program for which a specific customer is expected to predict whether there is a possibility of viewing an IPTV channel by turning it, and information about the corresponding program may include its ID and/or program meta information.

프로세싱 엔진(120)은 전술한 복수의 프로그램의 하나씩에 관한 정보가 특정 고객의 고객 정보와 함께 심층 학습 모듈(130)로 입력되도록 함으로써 해당 프로그램에 대한 시청 확률값이 제공되도록 작동될 수 있다. 예컨대 복수의 프로그램의 개수가 2,000개인 경우, 프로세싱 엔진(120)은 고객 정보와 프로그램에 관한 정보가 심층 학습 모듈(130)로 2,000번 입력되도록 함으로써 2,000개의 시청 확률값이 출력되도록 할 수 있다. 여기서 시청 확률값은 특정 고객이 IPTV의 채널을 돌려 해당 프로그램을 시청할 확률을 나타낸다. 예컨대, 프로그램 21에 관한 정보가 심층 학습 모듈(130)로 입력되는 경우, 심층 학습 모듈(130)로부터 출력되는 시청 확률값은 프로그램 21에 대한 시청 확률값, 즉 특정 고객이 IPTV의 채널을 돌려 프로그램 21을 시청할 확률을 나타낸다.The processing engine 120 may be operated to provide a viewing probability value for the program by allowing information about one of the aforementioned plurality of programs to be input to the deep learning module 130 together with customer information of a specific customer. For example, when the number of a plurality of programs is 2,000, the processing engine 120 may output 2,000 viewing probability values by allowing customer information and program-related information to be input to the deep learning module 130 2,000 times. Here, the viewing probability value represents the probability that a specific customer will watch the corresponding program by turning the IPTV channel. For example, when information about the program 21 is input to the deep learning module 130, the viewing probability value output from the deep learning module 130 is the viewing probability value for the program 21, that is, a specific customer turns the IPTV channel to view the program 21 Indicates the probability of watching.

심층 학습 모듈(130)의 입력 계층(133)은 특정 고객의 고객 정보 및 프로그램에 관한 정보를 포함하는 입력 정보를 임베딩(embedding) 처리하여 입력 벡터들을 출력하도록 구성될 수 있다. 일 실시예에서, 입력 계층(130)은 입력 정보에 임베딩 함수들(embedding functions)을 적용하도록 구성될 수 있다. 일 실시예에서, 입력 정보에 임베딩 함수들을 적용하는 동작은, 예컨대 룩업데이블(lookup table)을 이용하여 입력 정보를 인코딩하는 동작을 수반할 수 있다. 일 실시예에서, 입력 정보에 임베딩 함수들을 적용하는 동작은 입력 정보에 가중치(weight)를 적용하는 동작을 더 수반할 수 있다. 입력 정보에 임베딩 함수를 적용하는 예로서 실시간 프로그램 시청 시퀀스 정보에 임베딩 함수를 적용하는 동작을 도 2를 참조하여 설명하면 다음과 같다. 이하의 설명에서 실시간 프로그램 시청 시퀀스 정보에는 t개의 프로그램에 관한 정보가 포함된다고 가정한다. 도 2를 참조하면 h0로부터 ht까지의 (t+1)개의 노드가 도시되어 있다. 노드 h0는 시작 노드로서 초기 값(i)을 출력한다. 노드 ht에는 그 전의 노드인 ht-1이 접속되고 그 접속 경로에는 벡터인 가중치(wh(t-1))가 적용된다. 예컨대 노드 h2에는 노드 h1이 접속되고 그 접속 경로에는 가중치 wh1이 적용된다. 노드 ht에는 또한 프로그램 t에 관한 정보를 인코딩한 벡터 E[프로그램 t]에 벡터인 가중치(wet)가 적용되어 입력된다. 일 실시예에서, 프로그램 t에 관한 정보를 인코딩한 벡터 E[프로그램 t]는 프로그램 t의 ID의 2진 표현값이다. 노드 h1 및 노드 h2에서의 출력 O(h1) 및 O(h2)을 수식으로 나타내 보면 각각 아래 수학식 1 및 수학식 2와 같다.The input layer 133 of the deep learning module 130 may be configured to output input vectors by embedding input information including information about a program and customer information of a specific customer. In one embodiment, the input layer 130 may be configured to apply embedding functions to the input information. In one embodiment, applying the embedding functions to the input information may involve encoding the input information using, for example, a lookup table. In an embodiment, applying the embedding functions to the input information may further involve applying a weight to the input information. As an example of applying the embedding function to input information, an operation of applying the embedding function to real-time program viewing sequence information will be described with reference to FIG. 2 . In the following description, it is assumed that the real-time program viewing sequence information includes information about t programs. Referring to FIG. 2 , (t+1) nodes from h 0 to h t are shown. The node h 0 outputs the initial value (i) as the starting node. Node h t is connected to the previous node h t-1 , and a vector weight w h(t-1 ) is applied to the access path. For example, node h 2 h 1, the node being connected to the connection path, a weight w h1 is applied. The node h t is also input with a weight w et , which is a vector, applied to a vector E [program t], which encodes information about the program t. In one embodiment, the vector E[program t] encoding information about the program t is the binary representation of the ID of the program t. When the outputs O(h 1 ) and O(h 2 ) at the node h 1 and the node h 2 are expressed as equations, Equations 1 and 2 are shown below, respectively.

Figure pat00001
Figure pat00001

여기서, 연산자(·) 및 연산자(+)는 벡터곱(vector product) 및 벡터합(vector sum)을 나타낸다.Here, the operator (·) and the operator (+) represent a vector product and a vector sum.

Figure pat00002
Figure pat00002

마찬가지로 노드 ht에서의 출력 O(ht)를 수식으로 일반화해서 나타내면 아래의 수학식 3과 같다.Similarly, if the output O(h t ) at the node h t is generalized and expressed as an equation, it is shown in Equation 3 below.

Figure pat00003
Figure pat00003

수학식 3에 의해 표현되는 최종 출력인 O(ht)는 입력 계층(133)에서 출력하는 하나의 입력 벡터로서, 본 명세서에서는 '실시간 채널 시청 패턴 특징 벡터'로 칭하기로 한다. 실시간 채널 시청 패턴 특징 벡터는 고객의 채널 시청 패턴을 특징화하여 생성한 벡터로서, 고객이 채널을 돌려가면서 시청한 프로그램들 및 그 순서에 관한 정보를 함축적으로 내포한 것이라 할 수 있다. 이상에서는 실시간 프로그램 시청 시퀀스 정보에 임베딩 함수를 적용하는 동작을 예로 들어 설명하였으나, 고객 ID, 고객의 프로필 정보, 프로그램의 ID 및 프로그램 메타 정보에도 유사한 방식으로 임베딩 함수들을 적용하는 것이 가능하다. O(h t ), which is the final output expressed by Equation 3, is one input vector output from the input layer 133, and will be referred to as a 'real-time channel viewing pattern feature vector' in this specification. The real-time channel viewing pattern feature vector is a vector generated by characterizing a customer's channel viewing pattern, and it can be said that information about programs viewed by a customer while rotating channels and information about their order is implicitly included. In the above, the operation of applying the embedding function to the real-time program viewing sequence information has been described as an example, but it is possible to apply the embedding functions to the customer ID, customer profile information, program ID, and program meta information in a similar manner.

심층 학습 모듈(130)의 심층 신경망 계층(135)은 복수의 은닉층(hidden layers)을 포함할 수 있다. 복수의 은닉층의 각각은 복수의 노드(nodes)를 포함할 수 있다. 최하위 은닉층에서의 노드들은 입력 계층(133)으로부터 출력되는 입력 벡터들을 수신하도록 구현될 수 있다. 상대적으로 하위에 있는 은닉층의 노드들에서의 값들은 상대적으로 상위에 있는 은닉층의 노드들로 가중치들이 적용되어 전달될 수 있다. 심층 신경망 계층(135)은 입력 벡터들을 입력으로 하여 복수의 은닉층에서의 비선형적 연산 처리에 의해 입력 정보의 대안적 표현값들(alternative representations)인 복수의 출력 값을 제공하도록 구성될 수 있다.The deep neural network layer 135 of the deep learning module 130 may include a plurality of hidden layers. Each of the plurality of hidden layers may include a plurality of nodes. Nodes in the lowest hidden layer may be implemented to receive input vectors output from the input layer 133 . Values in the nodes of the hidden layer that are relatively lower may be transmitted by applying weights to the nodes of the hidden layer that are relatively higher. The deep neural network layer 135 may be configured to provide a plurality of output values that are alternative representations of input information by non-linear computational processing in a plurality of hidden layers by taking input vectors as input.

심층 학습 모듈(130)의 시그모이드 함수 계층(137)은 심층 신경망 계층(135)으로부터 출력되는 복수의 출력 값에 기초하여 대상 프로그램에 대한 시청 확률값을 제공하도록 구성될 수 있다. 일 실시예에서, 시그모이드 함수 계층(137)은 복수의 출력 값에 시그모이드 함수(Sigmoid Function)를 적용해서 시청 확률값을 제공하도록 구성될 수 있다. 시그모이드 함수 계층(137)은 심층 신경망 계층(135)의 복수의 출력 노드에 가중치들이 각각 적용되어 연결된 노드를 포함할 수 있다. 이 노드에서는 시청 확률값이 제공되고, 시청 확률값은 0 이상이고 1 이하인 값일 수 있다.The sigmoid function layer 137 of the deep learning module 130 may be configured to provide a viewing probability value for a target program based on a plurality of output values output from the deep neural network layer 135 . In an embodiment, the sigmoid function layer 137 may be configured to provide a viewing probability value by applying a sigmoid function to a plurality of output values. The sigmoid function layer 137 may include nodes connected by applying weights to a plurality of output nodes of the deep neural network layer 135 , respectively. In this node, a viewing probability value is provided, and the viewing probability value may be a value greater than or equal to 0 and less than or equal to 1.

이상의 설명에서는 프로세싱 엔진(120)이 데이터베이스부(110)로부터 특정 고객의 고객 정보 및 시청 확률값 산출 대상의 프로그램에 관한 정보를 검색하여 심층 학습 모듈(130)로 입력되게 함으로써 대상 프로그램에 대한 시청 확률값을 계산하는 것으로 설명하였으나, 심층 학습 모듈(130)이 유의미한 결과를 출력하도록 하기 위해서는 심층 학습 모듈(130)이 학습되어야 할 필요가 있다. 프로세싱 엔진(120)은 학습 데이터를 이용하여 심층 학습 모듈(130)을 학습시키도록 더 구성될 수 있다. 학습 데이터는 고객에 대한 실시간 프로그램 시청 시퀀스 정보를 포함할 수 있다. 학습 데이터는 고객의 ID, 고객에 대한 실시간 프로그램 시퀀스 정보에 포함된 프로그램들의 ID들 및 해당 프로그램들의 메타 정보를 더 포함할 수 있다. 학습 데이터는 고객의 프로필 정보를 더 포함할 수 있다. 프로세싱 엔진(120)은 실시간 프로그램 시퀀스 정보 및 실시간 프로그램 시퀀스 정보에 포함된 프로그램들 중 어느 하나의 프로그램 ID를 입력 계층(133)으로 입력시켰을 때 시그모이드 함수 계층(137)으로부터 출력되는 시청 확률값이 선정된 임계값 이상이 되도록 입력 계층(133), 심층 신경망 계층(135) 및 시그모이드 함수 계층(137)에서의 가중치들을 변경하는 방식으로 심층 학습 모듈(130)을 학습시키도록 구성될 수 있다. 프로세싱 엔진(120)은 심층 학습 모듈(130)이 보다 정확한 결과를 출력할 수 있도록 복수의 고객에 대한 고객 정보를 이용하여 심층 학습 모듈(130)을 복수 회 학습시키도록 더 구성될 수 있다.In the above description, the processing engine 120 retrieves the customer information of a specific customer from the database unit 110 and information about the program of the viewing probability value calculation target to be input to the deep learning module 130, thereby obtaining the viewing probability value for the target program. Although it has been described as calculating, in order for the deep learning module 130 to output a meaningful result, the deep learning module 130 needs to be learned. The processing engine 120 may be further configured to train the deep learning module 130 using the training data. The learning data may include real-time program viewing sequence information for the customer. The learning data may further include an ID of the customer, IDs of programs included in the real-time program sequence information for the customer, and meta information of the corresponding programs. The training data may further include profile information of the customer. The processing engine 120 receives the real-time program sequence information and the viewing probability value output from the sigmoid function layer 137 when the program ID of any one of the programs included in the real-time program sequence information is input to the input layer 133 . It can be configured to train the deep learning module 130 in such a way as to change the weights in the input layer 133 , the deep neural network layer 135 , and the sigmoid function layer 137 to be greater than or equal to a predetermined threshold. . The processing engine 120 may be further configured to learn the deep learning module 130 a plurality of times using customer information about a plurality of customers so that the deep learning module 130 can output more accurate results.

프로세싱 엔진(120)은 심층 학습 모듈(130)에 통신가능한 방식으로 결합된 추천 대상 프로그램 결정 모듈(140)을 구현하도록 더 설계될 수 있다. 추천 대상 프로그램 결정 모듈(140)은 복수의 프로그램에 대한 시청 확률값들에 기초하여 특정 고객에게 복수의 프로그램 중 적어도 하나의 프로그램을 추천하는 것으로 결정하도록 구성될 수 있다. 일 실시예에서, 추천 대상 프로그램 결정 모듈(140)은 시청 확률값들 중 가장 큰 시청 확률값을 식별하고, 식별된 가장 큰 시청 확률값을 제공하기 위해 심층 학습 모듈(130)로 입력된 프로그램에 관한 정보에 해당하는 프로그램을 식별하고, 특정 고객에게 식별된 프로그램을 추천하는 것으로 결정하도록 구성된다. 가장 큰 시청 확률값에 대응하는 프로그램을 고객에게 추천하는 것으로 결정하는 이유는 시청 확률값이 클수록 특정 고객이 채널을 변경하면서까지 해당 프로그램을 시청할 가능성이 그 만큼 커지기 때문이다. 일 실시예에서, 추천 대상 프로그램 결정 모듈(140)은 시청 확률값들 중 선정된 개수의 가장 큰 시청 확률값들을 식별하고, 식별된 선정된 개수의 가장 큰 시청 확률값들을 제공하기 위해 심층 학습 모듈(130)로 각각 입력된 프로그램에 관한 정보에 해당하는 프로그램들을 식별하고, 특정 고객에게 식별된 프로그램들을 추천하는 것으로 결정하도록 구성된다. 일 실시예에서, 추천 대상 프로그램 결정 모듈(140)은 시청 확률값들 중 선정된 임계값 이상인 적어도 하나의 시청 확률값을 식별하고, 식별된 적어도 하나의 시청 확률값을 제공하기 위해 심층 학습 모듈(130)로 입력된 프로그램에 관한 정보에 해당하는 적어도 하나의 프로그램을 식별하고, 특정 고객에게 식별된 적어도 하나의 프로그램을 추천하는 것으로 결정하도록 구성된다.The processing engine 120 may be further designed to implement the recommendation target program determination module 140 communicatively coupled to the deep learning module 130 . The recommendation target program determining module 140 may be configured to determine to recommend at least one program among a plurality of programs to a specific customer based on viewing probability values of the plurality of programs. In one embodiment, the recommendation target program determination module 140 identifies the largest viewing probability value among the viewing probability values, and provides information about the program input to the deep learning module 130 to provide the identified largest viewing probability value. and identify a corresponding program and determine to recommend the identified program to a particular customer. The reason why it is determined that the program corresponding to the highest viewing probability value is recommended to the customer is because the higher the viewing probability value, the greater the likelihood that a specific customer will watch the corresponding program while changing the channel. In an embodiment, the recommendation target program determination module 140 identifies the selected number of highest viewing probability values among the viewing probability values, and provides the identified predetermined number of highest viewing probability values to the deep learning module 130 . It is configured to identify programs corresponding to the information about the program input into the , and determine to recommend the identified programs to a specific customer. In one embodiment, the recommendation target program determination module 140 identifies at least one viewing probability value equal to or greater than a selected threshold value among the viewing probability values, and provides the identified at least one viewing probability value to the deep learning module 130 . and identify at least one program corresponding to the inputted program information, and determine to recommend the at least one identified program to a specific customer.

프로세싱 엔진(120)은, 응용 주문형 집적 회로(Application Specific Integrated Circuits: ASICs), 디지털 신호 처리기(Digital Signal Processors: DSPs), 디지털 신호 처리 소자(Digital Signal Processing Devices: DSPDs), 프로그램 가능 논리 소자(Programmable Logic Devices: PLDs), 현장 프로그램 가능 게이트 어레이(Field-Programmable Gate Arrays: FPGAs), 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers) 및 마이크로 프로세서(microprocessors) 중 적어도 하나에 기반한 하드웨어 플랫폼(hardware platform)으로서 구현될 수 있다. 프로세싱 엔진(120)은 또한 전술한 하드웨어 플랫폼 상에서 실행 가능한 펌웨어(firmware)/소프트웨어 모듈로 구현될 수 있다. 이 경우, 소프트웨어 모듈은 적절한 프로그램(program) 언어로 쓰여진 소프트웨어 애플리케이션(application)에 의해 구현될 수 있다.The processing engine 120 includes Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), and programmable logic devices (Programmable Logic Devices). Hardware based on at least one of Logic Devices (PLDs), Field-Programmable Gate Arrays (FPGAs), processors, controllers, micro-controllers, and microprocessors. It may be implemented as a hardware platform. The processing engine 120 may also be implemented as a firmware/software module executable on the hardware platform described above. In this case, the software module may be implemented by a software application written in an appropriate program language.

도 3은 심층 학습에 기반한 실시간 프로그램 추천 방법을 설명하기 위한 흐름도의 일 실시예를 도시한 도면이다.3 is a diagram illustrating an embodiment of a flowchart for explaining a real-time program recommendation method based on deep learning.

도 3에 도시된 바와 같이, 본 실시간 프로그램 추천 방법은 특정 고객의 고객 정보 및 복수의 프로그램에 관한 정보를 입력받는 단계(S305)로부터 시작된다. 특정 고객의 고객 정보는 특정 고객에 대한 실시간 프로그램 시청 시퀀스 정보를 포함할 수 있다. 특정 고객의 고객 정보는 특정 고객의 고객 ID 및/또는 특정 고객의 프로필 정보를 더 포함할 수 있다. 특정 고객의 프로필 정보는 특정 고객의 가입 정보, 특정 고객의 나이에 관한 정보 및/또는 특정 고객의 성별에 관한 정보를 포함할 수 있다. 복수의 프로그램은 특정 고객이 현재 시청하고 있는 채널 이외의 채널들에서 현재 방영되고 있는 프로그램들일 수 있다. 복수의 프로그램에 관한 정보는 복수의 프로그램의 ID들 및/또는 프로그램 메타 정보를 포함할 수 있다. 단계(S310)에서는 변수 N을 복수의 프로그램의 개수로 설정한다. 단계(S315)에서는 변수 i를 1로 설정한다. 단계(S320)에서는 특정 고객의 고객 정보 및 복수의 프로그램 중 i 번째 프로그램에 관한 정보를 심층 학습 모듈(130)로 입력하여 i 번째 프로그램에 대한 시청 확률값을 제공한다. 본 단계에서는 특정 고객의 고객 정보 및 i 번째 프로그램에 관한 정보를 입력 계층으로 입력하여 임베딩 처리를 수행함으로써 입력 벡터들을 출력하고, 입력 벡터들을 심층 신경망 계층으로 입력하여 복수의 출력 값을 제공하고, 복수의 출력 값을 시그모이드 함수 계층으로 입력하여 i 번째 프로그램에 대한 시청 확률값을 제공하는 동작을 실행할 수 있다. 단계(S325)에서는 변수 i를 1만큼 증가시킨다. 단계(S330)에서는 변수 i가 N 보다 큰지를 검사한다. 단계(S330)에서의 검사 결과 i가 N 보다 크지 않은 것으로 판단되는 경우 프로세스는 단계(S320)로 복귀하여 다음 프로그램에 대한 시청 확률값을 제공한다. 이런 식으로 루프를 돌면서 복수의 프로그램에 대한 시청 확률값들을 제공한다. 한편 단계(S330)에서의 검사 결과 i가 N 보다 큰 것으로 판단되는 경우 프로세스는 단계(S335)로 진행하여 복수의 프로그램에 대한 시청 확률값들에 기초하여 특정 고객에게 복수의 프로그램 중 적어도 하나의 프로그램을 추천하는 것으로 결정한다. 일 실시예에서, 본 단계에서는 시청 확률값들 중 가장 큰 시청 확률값을 식별하고, 식별된 가장 큰 시청 확률값을 제공하기 위해 심층 학습 모듈(130)로 입력된 프로그램에 관한 정보에 해당하는 프로그램을 식별하고, 특정 고객에게 식별된 프로그램을 추천하는 것으로 결정하는 동작을 실행할 수 있다. 일 실시예에서, 본 단계에서는 시청 확률값들 중 선정된 개수의 가장 큰 시청 확률값들을 식별하고, 식별된 선정된 개수의 가장 큰 시청 확률값들을 제공하기 위해 심층 학습 모듈(130)로 각각 입력된 프로그램에 관한 정보에 해당하는 프로그램들을 식별하고, 특정 고객에게 식별된 프로그램들을 추천하는 것으로 결정하는 동작을 실행할 수 있다. 일 실시예에서, 본 단계에서는 시청 확률값들 중 선정된 임계값 이상인 적어도 하나의 시청 확률값을 식별하고, 식별된 적어도 하나의 시청 확률값을 제공하기 위해 심층 학습 모듈(130)로 입력된 프로그램에 관한 정보에 해당하는 적어도 하나의 프로그램을 식별하고, 특정 고객에게 식별된 적어도 하나의 프로그램을 추천하는 것으로 결정하는 동작을 실행할 수 있다.As shown in FIG. 3 , the present real-time program recommendation method starts with a step S305 of receiving customer information of a specific customer and information on a plurality of programs. The customer information of the specific customer may include real-time program viewing sequence information for the specific customer. The customer information of the specific customer may further include a customer ID of the specific customer and/or profile information of the specific customer. The specific customer's profile information may include subscription information of the specific customer, information about the specific customer's age, and/or information about the specific customer's gender. The plurality of programs may be programs currently being aired on channels other than the channel currently being viewed by a specific customer. The information about the plurality of programs may include IDs of the plurality of programs and/or program meta information. In step S310, the variable N is set to the number of a plurality of programs. In step S315, the variable i is set to 1. In step S320, customer information of a specific customer and information about an i-th program among a plurality of programs are input into the deep learning module 130 to provide a viewing probability value for the i-th program. In this step, input vectors are output by performing embedding processing by inputting customer information of a specific customer and information about the i-th program to the input layer, and input vectors to the deep neural network layer to provide a plurality of output values, An operation of providing a viewing probability value for the i-th program may be performed by inputting an output value of α to the sigmoid function layer. In step S325, the variable i is increased by 1. In step S330, it is checked whether the variable i is greater than N. If it is determined that i is not greater than N as a result of the check in step S330, the process returns to step S320 to provide a viewing probability value for the next program. In this way, viewing probability values for a plurality of programs are provided while looping. On the other hand, if it is determined that i is greater than N as a result of the inspection in step S330, the process proceeds to step S335 and provides at least one program among a plurality of programs to a specific customer based on the viewing probability values for the plurality of programs. Decide to recommend In one embodiment, in this step, the highest viewing probability value among the viewing probability values is identified, and the program corresponding to the information about the program input into the deep learning module 130 to provide the identified largest viewing probability value is identified and , an action that determines to recommend the identified program to a particular customer may be performed. In one embodiment, in this step, a selected number of highest viewing probability values among the viewing probability values are identified, and the program input into the deep learning module 130 to provide the identified predetermined number of largest viewing probability values. It is possible to identify programs corresponding to the related information, and perform an operation of determining to recommend the identified programs to a specific customer. In one embodiment, in this step, at least one viewing probability value greater than or equal to a selected threshold value among viewing probability values is identified, and information about a program input into the deep learning module 130 to provide the identified at least one viewing probability value At least one program corresponding to , may be identified, and an operation of determining to recommend the at least one identified program to a specific customer may be performed.

이상으로 설명한 방식에 따라 적어도 하나의 프로그램을 고객에게 추천하는 것으로 결정되면, 해당 프로그램의 ID가 IPTV 서비스 사업자의 서비스 제공 서버로 전달될 수 있다. 서비스 제공 서버는 추천되는 프로그램의 ID를 전달받으면 해당 프로그램을 추천하는 안내 메시지가 고객이 현재 시청 중인 프로그램의 장면들 상에 오버레이되는 방식으로 디스플레이될 수 있도록 고객이 시청 중인 프로그램의 데이터에 안내 메시지 데이터를 함께 실어 고객의 셋탑박스(set-top box)로 전송할 수 있다.When it is determined to recommend at least one program to the customer according to the method described above, the ID of the corresponding program may be transmitted to the service providing server of the IPTV service provider. When the service providing server receives the ID of the recommended program, the guide message data is added to the data of the program the customer is watching so that the guide message recommending the program is displayed in a way that is overlaid on the scenes of the program the customer is currently watching. can be loaded together and sent to the customer's set-top box.

이상의 설명에 있어서 어떤 구성 요소가 다른 구성 요소에 접속되거나 결합된다는 기재의 의미는 당해 구성 요소가 그 다른 구성 요소에 직접적으로 접속되거나 결합된다는 의미뿐만 아니라 이들이 그 사이에 개재된 하나 또는 그 이상의 타 구성 요소를 통해 접속되거나 결합될 수 있다는 의미를 포함하는 것으로 이해되어야 한다. 이외에도 구성 요소들 간의 관계를 기술하기 위한 용어들(예컨대, '간에', '사이에' 등)도 유사한 의미로 해석되어야 한다.In the above description, the meaning of the description that a component is connected to or coupled to another component means that the component is directly connected or coupled to the other component, as well as one or more other components interposed therebetween. It should be understood to include the meaning that may be connected or coupled through an element. In addition, terms for describing the relationship between elements (eg, 'between', 'between', etc.) should also be interpreted with similar meanings.

본원에 개시된 실시예들에 있어서, 도시된 구성 요소들의 배치는 발명이 구현되는 환경 또는 요구 사항에 따라 달라질 수 있다. 예컨대, 일부 구성 요소가 생략되거나 몇몇 구성 요소들이 통합되어 하나로 실시될 수 있다. 또한 일부 구성 요소들의 배치 순서 및 연결이 변경될 수 있다.In the embodiments disclosed herein, the arrangement of the illustrated components may vary depending on the environment or requirements in which the invention is implemented. For example, some components may be omitted or some components may be integrated and implemented as one. Also, the arrangement order and connection of some components may be changed.

이상에서는 본 발명의 다양한 실시예들에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예들에 한정되지 아니하며, 상술한 실시예들은 첨부하는 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양하게 변형 실시될 수 있음은 물론이고, 이러한 변형 실시예들이 본 발명의 기술적 사상이나 범위와 별개로 이해되어져서는 아니 될 것이다. 따라서, 본 발명의 기술적 범위는 오직 첨부된 특허청구범위에 의해서만 정해져야 할 것이다.In the above, various embodiments of the present invention have been shown and described, but the present invention is not limited to the specific embodiments described above, and the above-described embodiments depart from the gist of the present invention as claimed in the appended claims. Without this, various modifications may be made by those of ordinary skill in the art to which the present invention pertains, and these modified embodiments should not be understood separately from the technical spirit or scope of the present invention. Accordingly, the technical scope of the present invention should be defined only by the appended claims.

100: 실시간 프로그램 추천을 위한 장치
110: 데이터베이스부
120: 프로세싱 엔진
130: 심층 학습 모듈
133: 입력 계층
135: 심층 신경망 계층
137: 시그모이드 함수 계층
140: 추천 대상 프로그램 결정 모듈
100: device for real-time program recommendation
110: database unit
120: processing engine
130: deep learning module
133: input layer
135: deep neural network layer
137: sigmoid function layer
140: Recommendation target program determination module

Claims (33)

심층 학습(Deep Learning)에 기반한 실시간 프로그램 추천 방법으로서,
특정 고객의 고객 정보 및 복수의 프로그램에 관한 정보를 입력받는 단계 - 상기 특정 고객의 고객 정보는 실시간 프로그램 시청 시퀀스 정보를 포함하고, 상기 복수의 프로그램은 상기 특정 고객이 현재 시청하고 있는 채널 이외의 채널들에서 현재 방영되고 있는 프로그램들임 -,
상기 특정 고객의 고객 정보 및 상기 복수의 프로그램에 관한 정보를 기초로 상기 복수의 프로그램의 각각에 대한 시청 확률값을 제공하는 단계 - 상기 시청 확률값은 상기 특정 고객이 상기 해당 프로그램을 시청할 확률을 나타냄 -, 및
상기 시청 확률값들에 기초하여 상기 특정 고객에게 상기 복수의 프로그램 중 적어도 하나의 프로그램을 추천하는 것으로 결정하는 단계를 포함하는, 실시간 프로그램 추천 방법.
As a real-time program recommendation method based on deep learning,
receiving customer information of a specific customer and information on a plurality of programs - The customer information of the specific customer includes real-time program viewing sequence information, and the plurality of programs are on channels other than the channel currently being watched by the specific customer. Programs currently airing in
providing a viewing probability value for each of the plurality of programs based on customer information of the specific customer and information about the plurality of programs, wherein the viewing probability value represents a probability that the specific customer will view the corresponding program; and
and determining to recommend at least one program among the plurality of programs to the specific customer based on the viewing probability values.
제1항에 있어서,
상기 실시간 프로그램 시청 시퀀스 정보는 상기 특정 고객이 시청한 적어도 하나의 프로그램 및 그 시청 순서에 관한 정보인, 실시간 프로그램 추천 방법.
According to claim 1,
The real-time program viewing sequence information is information about at least one program viewed by the specific customer and a viewing order thereof.
제1항에 있어서,
상기 특정 고객의 고객 정보는 상기 특정 고객의 고객 ID(Identification) 및 상기 특정 고객의 프로필 정보를 더 포함하는, 실시간 프로그램 추천 방법.
According to claim 1,
The customer information of the specific customer further includes a customer ID (Identification) of the specific customer and profile information of the specific customer, a real-time program recommendation method.
제3항에 있어서,
상기 특정 고객의 프로필 정보는 상기 특정 고객의 가입 정보, 상기 특정 고객의 나이에 관한 정보 및 상기 특정 고객의 성별에 관한 정보를 포함하는, 실시간 프로그램 추천 방법.
4. The method of claim 3,
The profile information of the specific customer includes subscription information of the specific customer, information about the age of the specific customer, and information about the gender of the specific customer, a real-time program recommendation method.
제1항에 있어서,
상기 복수의 프로그램에 관한 정보는 상기 복수의 프로그램의 프로그램 ID들을 포함하는, 실시간 프로그램 추천 방법.
According to claim 1,
The information about the plurality of programs includes program IDs of the plurality of programs.
제5항에 있어서,
상기 복수의 프로그램에 관한 정보는 상기 복수의 프로그램의 프로그램 메타 정보(program meta information)를 더 포함하는, 실시간 프로그램 추천 방법.
6. The method of claim 5,
The information on the plurality of programs further includes program meta information of the plurality of programs.
제1항에 있어서,
상기 특정 고객의 고객 정보 및 상기 복수의 프로그램에 관한 정보를 기초로 상기 복수의 프로그램의 각각에 대한 시청 확률값을 제공하는 단계 - 상기 시청 확률값은 상기 특정 고객이 상기 해당 프로그램을 시청할 확률을 나타냄 - 는, 상기 특정 고객의 고객 정보 및 상기 해당 프로그램에 관한 정보를 심층 학습 모듈로 입력함으로써 상기 해당 프로그램에 대한 시청 확률값을 제공하는 단계를 포함하는, 실시간 프로그램 추천 방법.
According to claim 1,
providing a viewing probability value for each of the plurality of programs based on customer information of the specific customer and information about the plurality of programs, wherein the viewing probability value represents a probability that the specific customer will view the corresponding program; , A real-time program recommendation method comprising the step of providing a viewing probability value for the corresponding program by inputting customer information of the specific customer and information about the corresponding program into a deep learning module.
제1항에 있어서,
상기 특정 고객의 고객 정보 및 상기 복수의 프로그램에 관한 정보를 기초로 상기 복수의 프로그램의 각각에 대한 시청 확률값을 제공하는 단계 - 상기 시청 확률값은 상기 특정 고객이 상기 해당 프로그램을 시청할 확률을 나타냄 - 는,
상기 특정 고객의 고객 정보 및 상기 해당 프로그램에 관한 정보를 입력 계층으로 입력하여 임베딩(embedding) 처리를 수행함으로써 입력 벡터들을 출력하는 단계,
상기 입력 벡터들을 심층 신경망(Deep Neural Network: DNN) 계층으로 입력하여 복수의 출력 값을 제공하는 단계, 및
상기 복수의 출력 값을 시그모이드 함수 계층(Sigmoid Function Layer)으로 입력하여 상기 해당 프로그램에 대한 시청 확률값을 제공하는 단계를 포함하는, 실시간 프로그램 추천 방법.
According to claim 1,
providing a viewing probability value for each of the plurality of programs based on customer information of the specific customer and information about the plurality of programs, wherein the viewing probability value represents a probability that the specific customer will view the corresponding program; ,
outputting input vectors by performing embedding processing by inputting customer information of the specific customer and information about the corresponding program into an input layer;
providing a plurality of output values by inputting the input vectors to a deep neural network (DNN) layer; and
and providing a viewing probability value for the corresponding program by inputting the plurality of output values into a sigmoid function layer.
제8항에 있어서,
상기 특정 고객의 고객 정보 및 상기 해당 프로그램에 관한 정보를 입력 계층으로 입력하여 임베딩(embedding) 처리를 수행함으로써 입력 벡터들을 출력하는 단계는, 상기 실시간 프로그램 시청 시퀀스 정보에 임베딩 함수(embedding function)를 적용하여 실시간 채널 시청 패턴 특징 벡터를 출력하는 단계를 포함하는, 실시간 프로그램 추천 방법.
9. The method of claim 8,
The step of outputting input vectors by performing embedding processing by inputting customer information of the specific customer and information on the corresponding program into an input layer includes applying an embedding function to the real-time program viewing sequence information. and outputting a real-time channel viewing pattern feature vector by doing so, a real-time program recommendation method.
제9항에 있어서,
상기 특정 고객의 고객 정보 및 상기 해당 프로그램에 관한 정보를 입력 계층으로 입력하여 임베딩(embedding) 처리를 수행함으로써 입력 벡터들을 출력하는 단계는, 상기 특정 고객의 고객 ID, 상기 특정 고객의 프로필 정보, 상기 해당 프로그램의 ID 및 상기 해당 프로그램의 프로그램 메타 정보에 임베딩 함수들을 각각 적용하는 단계를 포함하는, 실시간 프로그램 추천 방법.
10. The method of claim 9,
The step of inputting the customer information of the specific customer and the information about the corresponding program into an input layer and performing an embedding process to output input vectors includes: the customer ID of the specific customer, the profile information of the specific customer, the A real-time program recommendation method, comprising the step of applying embedding functions to an ID of a corresponding program and program meta information of the corresponding program, respectively.
제8항에 있어서,
상기 특정 고객의 고객 정보 및 복수의 프로그램에 관한 정보를 입력받는 단계 - 상기 특정 고객의 고객 정보는 실시간 프로그램 시청 시퀀스 정보를 포함하고, 상기 복수의 프로그램은 상기 특정 고객이 현재 시청하고 있는 채널 이외의 채널들에서 현재 방영되고 있는 프로그램들임 - 이전에, 상기 입력 계층, 상기 심층 신경망 계층 및 상기 시그모이드 함수 계층을 학습 데이터로 학습시키는 단계를 더 포함하는, 실시간 프로그램 추천 방법.
9. The method of claim 8,
receiving customer information of the specific customer and information about a plurality of programs - The customer information of the specific customer includes real-time program viewing sequence information, and the plurality of programs are selected from channels other than the channel currently being viewed by the specific customer. Programs currently being aired on channels - Previously, the method further comprising the step of learning the input layer, the deep neural network layer and the sigmoid function layer with training data.
제11항에 있어서,
상기 학습 데이터는 고객에 대한 실시간 프로그램 시청 시퀀스 정보를 포함하고,
상기 입력 계층, 상기 심층 신경망 계층 및 상기 시그모이드 함수 계층은 복수의 입력 노드 및 복수의 출력 노드를 포함하고,
상기 입력 노드들과 상기 출력 노드들 간에는 가중치들이 설정되어 있으며,
상기 입력 계층, 상기 심층 신경망 계층 및 상기 시그모이드 함수 계층을 학습 데이터로 학습시키는 단계는, 상기 실시간 프로그램 시퀀스 정보 및 상기 실시간 프로그램 시퀀스 정보에 포함된 프로그램들 중 어느 하나의 프로그램 ID를 상기 입력 계층으로 입력시켰을 때 상기 시그모이드 함수 계층으로부터 출력되는 시청 확률값이 선정된 임계값 이상이 되도록 상기 가중치들을 변경하는 단계를 포함하는, 실시간 프로그램 추천 방법.
12. The method of claim 11,
The learning data includes real-time program viewing sequence information for a customer,
The input layer, the deep neural network layer and the sigmoid function layer include a plurality of input nodes and a plurality of output nodes,
Weights are set between the input nodes and the output nodes,
The step of learning the input layer, the deep neural network layer, and the sigmoid function layer as training data may include setting a program ID of any one of the real-time program sequence information and the programs included in the real-time program sequence information to the input layer. and changing the weights so that the viewing probability value output from the sigmoid function layer is greater than or equal to a predetermined threshold value when inputted as .
제8항에 있어서,
상기 복수의 출력 값을 시그모이드 함수 계층(Sigmoid Function Layer)으로 입력하여 상기 해당 프로그램에 대한 시청 확률값을 제공하는 단계는, 상기 복수의 출력값에 시그모이드 함수(Sigmoid Function)를 적용해서 상기 시청 확률값을 제공하는 단계를 포함하는, 실시간 프로그램 추천 방법.
9. The method of claim 8,
The step of providing a viewing probability value for the corresponding program by inputting the plurality of output values to a sigmoid function layer includes applying a sigmoid function to the plurality of output values to see the viewing A real-time program recommendation method comprising the step of providing a probability value.
제7항에 있어서,
상기 시청 확률값들에 기초하여 상기 특정 고객에게 상기 복수의 프로그램 중 적어도 하나의 프로그램을 추천하는 것으로 결정하는 단계는,
상기 시청 확률값들 중 가장 큰 시청 확률값을 식별하는 단계,
상기 식별된 가장 큰 시청 확률값을 제공하기 위해 상기 심층 학습 모듈로 입력된 프로그램에 관한 정보에 해당하는 프로그램을 식별하는 단계, 및
상기 특정 고객에게 상기 식별된 프로그램을 추천하는 것으로 결정하는 단계를 포함하는, 실시간 프로그램 추천 방법.
8. The method of claim 7,
The step of determining to recommend at least one program among the plurality of programs to the specific customer based on the viewing probability values,
identifying the highest viewing probability value among the viewing probability values;
identifying a program corresponding to information about the program input into the deep learning module to provide the identified largest viewing probability value; and
and determining to recommend the identified program to the particular customer.
제7항에 있어서,
상기 시청 확률값들에 기초하여 상기 특정 고객에게 상기 복수의 프로그램 중 적어도 하나의 프로그램을 추천하는 것으로 결정하는 단계는,
상기 시청 확률값들 중 선정된 개수의 가장 큰 시청 확률값들을 식별하는 단계,
상기 식별된 선정된 개수의 가장 큰 시청 확률값들을 제공하기 위해 상기 심층 학습 모듈로 각각 입력된 프로그램에 관한 정보에 해당하는 프로그램들을 식별하는 단계, 및
상기 특정 고객에게 상기 식별된 프로그램들을 추천하는 것으로 결정하는 단계를 포함하는, 실시간 프로그램 추천 방법.
8. The method of claim 7,
The step of determining to recommend at least one program among the plurality of programs to the specific customer based on the viewing probability values,
identifying a selected number of highest viewing probability values among the viewing probability values;
identifying programs corresponding to information about the program each input into the deep learning module to provide the identified predetermined number of greatest viewing probability values; and
and determining to recommend the identified programs to the particular customer.
제7항에 있어서,
상기 시청 확률값들에 기초하여 상기 특정 고객에게 상기 복수의 프로그램 중 적어도 하나의 프로그램을 추천하는 것으로 결정하는 단계는,
상기 시청 확률값들 중 선정된 임계값 이상인 적어도 하나의 시청 확률값을 식별하는 단계,
상기 식별된 적어도 하나의 시청 확률값을 제공하기 위해 상기 심층 학습 모듈로 입력된 프로그램에 관한 정보에 해당하는 적어도 하나의 프로그램을 식별하는 단계, 및
상기 특정 고객에게 상기 식별된 적어도 하나의 프로그램을 추천하는 것으로 결정하는 단계를 포함하는, 실시간 프로그램 추천 방법.
8. The method of claim 7,
The step of determining to recommend at least one program among the plurality of programs to the specific customer based on the viewing probability values,
identifying at least one viewing probability value greater than or equal to a selected threshold value among the viewing probability values;
identifying at least one program corresponding to information about the program input into the deep learning module to provide the identified at least one viewing probability value; and
and determining to recommend the identified at least one program to the particular customer.
심층 학습에 기반한 실시간 프로그램 추천을 위한 장치로서,
특정 고객의 고객 정보 및 복수의 프로그램에 관한 정보를 저장하는 데이터베이스부 - 상기 특정 고객의 고객 정보는 실시간 프로그램 시청 시퀀스 정보를 포함하고, 상기 복수의 프로그램은 상기 특정 고객이 현재 시청하고 있는 채널 이외의 채널들에서 현재 방영되고 있는 프로그램들임 -, 및
상기 특정 고객의 고객 정보 및 상기 복수의 프로그램에 관한 정보를 기초로 상기 복수의 프로그램의 각각에 대한 시청 확률값을 제공하고 - 상기 시청 확률값은 상기 특정 고객이 상기 해당 프로그램을 시청할 확률을 나타냄 -, 상기 시청 확률값들에 기초하여 상기 특정 고객에게 상기 복수의 프로그램 중 적어도 하나의 프로그램을 추천하는 것으로 결정하도록 구성된 프로세싱 엔진을 포함하는, 실시간 프로그램 추천 장치.
As a device for real-time program recommendation based on deep learning,
A database unit for storing customer information of a specific customer and information on a plurality of programs, wherein the customer information of the specific customer includes real-time program viewing sequence information, and the plurality of programs are selected from channels other than the channel currently being viewed by the specific customer. the programs currently airing on the channels -, and
providing a viewing probability value for each of the plurality of programs based on customer information of the specific customer and information about the plurality of programs, wherein the viewing probability value represents a probability that the specific customer will view the corresponding program; and a processing engine configured to determine to recommend at least one of the plurality of programs to the particular customer based on viewing probability values.
제17항에 있어서,
상기 실시간 프로그램 시청 시퀀스 정보는 상기 특정 고객이 시청한 적어도 하나의 프로그램 및 그 시청 순서에 관한 정보인, 실시간 프로그램 추천 장치.
18. The method of claim 17,
The real-time program viewing sequence information is information on at least one program viewed by the specific customer and a viewing order thereof.
제17항에 있어서,
상기 특정 고객의 고객 정보는 상기 특정 고객의 고객 ID 및 상기 특정 고객의 프로필 정보를 더 포함하는, 실시간 프로그램 추천 장치.
18. The method of claim 17,
The customer information of the specific customer further includes a customer ID of the specific customer and profile information of the specific customer.
제19항에 있어서,
상기 특정 고객의 프로필 정보는 상기 특정 고객의 가입 정보, 상기 특정 고객의 나이에 관한 정보 및 상기 특정 고객의 성별에 관한 정보를 포함하는, 실시간 프로그램 추천 장치.
20. The method of claim 19,
The profile information of the specific customer includes subscription information of the specific customer, information about the age of the specific customer, and information about the gender of the specific customer, a real-time program recommendation device.
제17항에 있어서,
상기 복수의 프로그램에 관한 정보는 상기 복수의 프로그램의 프로그램 ID들을 포함하는, 실시간 프로그램 추천 장치.
18. The method of claim 17,
The information about the plurality of programs includes program IDs of the plurality of programs, a real-time program recommendation apparatus.
제21항에 있어서,
상기 복수의 프로그램에 관한 정보는 상기 복수의 프로그램의 프로그램 메타 정보를 더 포함하는, 실시간 프로그램 추천 장치.
22. The method of claim 21,
The information on the plurality of programs further includes program meta information of the plurality of programs.
제17항에 있어서,
상기 프로세싱 엔진은 심층 학습 모듈을 구현하며, 상기 프로세싱 엔진은 상기 특정 고객의 고객 정보 및 상기 복수의 프로그램의 각각에 관한 정보를 심층 학습 모듈로 입력함으로써 상기 해당 프로그램에 대한 시청 확률값을 제공하도록 더 구성되는, 실시간 프로그램 추천 장치.
18. The method of claim 17,
The processing engine implements a deep learning module, and the processing engine is further configured to provide a viewing probability value for the corresponding program by inputting customer information of the specific customer and information about each of the plurality of programs into the deep learning module. Being a real-time program recommendation device.
제17항에 있어서,
상기 프로세싱 엔진은 입력 계층, 심층 신경망 계층 및 시그모이드 함수 계층을 포함하는 심층 학습 모듈을 구현하며,
상기 프로세싱 엔진은, 상기 특정 고객의 고객 정보 및 상기 복수의 프로그램의 각각에 관한 정보를 입력 계층으로 입력하여 임베딩 처리를 수행함으로써 입력 벡터들을 출력하고, 상기 입력 벡터들을 심층 신경망 계층으로 입력하여 복수의 출력 값을 제공하고, 상기 복수의 출력 값을 시그모이드 함수 계층으로 입력하여 상기 해당 프로그램에 대한 시청 확률값을 제공하도록 더 구성되는, 실시간 프로그램 추천 장치.
18. The method of claim 17,
The processing engine implements a deep learning module comprising an input layer, a deep neural network layer and a sigmoid function layer,
The processing engine outputs input vectors by inputting customer information of the specific customer and information on each of the plurality of programs to an input layer to perform embedding processing, and inputting the input vectors to a deep neural network layer to a plurality of and providing an output value, and inputting the plurality of output values to a sigmoid function layer to provide a viewing probability value for the corresponding program.
제24항에 있어서,
상기 입력 계층은, 상기 실시간 프로그램 시청 시퀀스 정보에 임베딩 함수를 적용하여 실시간 채널 시청 패턴 특징 벡터를 출력하도록 구성되는, 실시간 프로그램 추천 장치.
25. The method of claim 24,
and the input layer is configured to output a real-time channel viewing pattern feature vector by applying an embedding function to the real-time program viewing sequence information.
제25항에 있어서,
상기 입력 계층은, 상기 특정 고객의 고객 ID, 상기 특정 고객의 프로필 정보, 상기 복수의 프로그램의 각각의 프로그램의 ID 및 상기 해당 프로그램의 프로그램 메타 정보에 임베딩 함수들을 각각 적용하도록 더 구성되는, 실시간 프로그램 추천 장치.
26. The method of claim 25,
wherein the input layer is further configured to apply embedding functions to the customer ID of the specific customer, the profile information of the specific customer, the ID of each program of the plurality of programs, and the program meta information of the corresponding program, respectively, respectively. Recommended device.
제24항에 있어서,
상기 프로세싱 엔진은 상기 입력 계층, 상기 심층 신경망 계층 및 상기 시그모이드 함수 계층을 학습 데이터로 학습시키도록 더 구성되는, 실시간 프로그램 추천 장치.
25. The method of claim 24,
The processing engine is further configured to train the input layer, the deep neural network layer, and the sigmoid function layer as training data.
제27항에 있어서,
상기 학습 데이터는 고객에 대한 실시간 프로그램 시청 시퀀스 정보를 포함하고,
상기 입력 계층, 상기 심층 신경망 계층 및 상기 시그모이드 함수 계층은 복수의 입력 노드 및 복수의 출력 노드를 포함하고,
상기 입력 노드들과 상기 출력 노드들 간에는 가중치들이 설정되어 있으며,
상기 프로세싱 엔진은, 상기 실시간 프로그램 시퀀스 정보 및 상기 실시간 프로그램 시퀀스 정보에 포함된 프로그램들 중 어느 하나의 프로그램 ID를 상기 입력 계층으로 입력시켰을 때 상기 시그모이드 함수 계층으로부터 출력되는 시청 확률값이 선정된 임계값 이상이 되도록 상기 가중치들을 변경하도록 더 구성되는, 실시간 프로그램 추천 장치.
28. The method of claim 27,
The learning data includes real-time program viewing sequence information for a customer,
The input layer, the deep neural network layer and the sigmoid function layer include a plurality of input nodes and a plurality of output nodes,
Weights are set between the input nodes and the output nodes,
The processing engine determines a threshold at which a viewing probability value output from the sigmoid function layer is selected when a program ID of any one of the real-time program sequence information and the programs included in the real-time program sequence information is input to the input layer. and change the weights to be greater than or equal to a value.
제24항에 있어서,
상기 시그모이드 함수 계층은, 상기 복수의 출력값에 시그모이드 함수를 적용해서 상기 시청 확률값을 제공하도록 더 구성되는, 실시간 프로그램 추천 장치.
25. The method of claim 24,
The sigmoid function layer is further configured to provide the viewing probability value by applying the sigmoid function to the plurality of output values.
제23항에 있어서,
상기 프로세싱 엔진은, 상기 시청 확률값들 중 가장 큰 시청 확률값을 식별하고, 상기 식별된 가장 큰 시청 확률값을 제공하기 위해 상기 심층 학습 모듈로 입력된 프로그램에 관한 정보에 해당하는 프로그램을 식별하고, 상기 특정 고객에게 상기 식별된 프로그램을 추천하는 것으로 결정하도록 더 구성되는, 실시간 프로그램 추천 장치.
24. The method of claim 23,
The processing engine identifies a highest viewing probability value among the viewing probability values, identifies a program corresponding to information about a program input into the deep learning module to provide the identified largest viewing probability value, and the specific and determine to recommend the identified program to the customer.
제23항에 있어서,
상기 프로세싱 엔진은, 상기 시청 확률값들 중 선정된 개수의 가장 큰 시청 확률값들을 식별하고, 상기 식별된 선정된 개수의 가장 큰 시청 확률값들을 제공하기 위해 상기 심층 학습 모듈로 각각 입력된 프로그램에 관한 정보에 해당하는 프로그램들을 식별하고, 상기 특정 고객에게 상기 식별된 프로그램들을 추천하는 것으로 결정하도록 더 구성되는, 실시간 프로그램 추천 장치.
24. The method of claim 23,
The processing engine identifies a predetermined number of highest viewing probability values among the viewing probability values, and provides information about a program each input to the deep learning module to provide the identified predetermined number of largest viewing probability values. and identify corresponding programs and determine to recommend the identified programs to the particular customer.
제23항에 있어서,
상기 프로세싱 엔진은, 상기 시청 확률값들 중 선정된 임계값 이상인 적어도 하나의 시청 확률값을 식별하고, 상기 식별된 적어도 하나의 시청 확률값을 제공하기 위해 상기 심층 학습 모듈로 입력된 프로그램에 관한 정보에 해당하는 적어도 하나의 프로그램을 식별하고, 상기 특정 고객에게 상기 식별된 적어도 하나의 프로그램을 추천하는 것으로 결정하도록 더 구성되는, 실시간 프로그램 추천 장치.
24. The method of claim 23,
The processing engine identifies at least one viewing probability value that is greater than or equal to a selected threshold value among the viewing probability values, and corresponds to information about a program input into the deep learning module to provide the identified at least one viewing probability value. and identify at least one program and determine to recommend the identified at least one program to the particular customer.
프로그램을 기록한 컴퓨터 판독가능 기록매체로서, 상기 프로그램은 명령어들을 포함하고, 상기 명령어들은 컴퓨터에 의해 실행될 때 제1항 내지 제16항 중 어느 하나의 항에 따른 방법을 수행하는, 컴퓨터 판독가능 기록매체.A computer-readable recording medium recording a program, the program including instructions, which, when executed by a computer, perform the method according to any one of claims 1 to 16. .
KR1020200042085A 2020-04-07 2020-04-07 Method and Apparatus for Deep Learning Based Real-time Program Recommendation KR102357360B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200042085A KR102357360B1 (en) 2020-04-07 2020-04-07 Method and Apparatus for Deep Learning Based Real-time Program Recommendation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200042085A KR102357360B1 (en) 2020-04-07 2020-04-07 Method and Apparatus for Deep Learning Based Real-time Program Recommendation

Publications (2)

Publication Number Publication Date
KR20210124709A true KR20210124709A (en) 2021-10-15
KR102357360B1 KR102357360B1 (en) 2022-01-27

Family

ID=78150986

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200042085A KR102357360B1 (en) 2020-04-07 2020-04-07 Method and Apparatus for Deep Learning Based Real-time Program Recommendation

Country Status (1)

Country Link
KR (1) KR102357360B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110070375A (en) * 2009-12-18 2011-06-24 주식회사 케이티 Broadcast program recommendation method and apparatus
KR101624246B1 (en) * 2012-02-21 2016-05-25 우얄라, 인크. Automatically recommending content
KR20180121466A (en) * 2017-04-06 2018-11-07 네이버 주식회사 Personalized product recommendation using deep learning
KR102086604B1 (en) * 2018-09-10 2020-03-09 서울대학교산학협력단 Deep learning based conversation-style sentence spacing method and system using context information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110070375A (en) * 2009-12-18 2011-06-24 주식회사 케이티 Broadcast program recommendation method and apparatus
KR101624246B1 (en) * 2012-02-21 2016-05-25 우얄라, 인크. Automatically recommending content
KR20180121466A (en) * 2017-04-06 2018-11-07 네이버 주식회사 Personalized product recommendation using deep learning
KR102086604B1 (en) * 2018-09-10 2020-03-09 서울대학교산학협력단 Deep learning based conversation-style sentence spacing method and system using context information

Also Published As

Publication number Publication date
KR102357360B1 (en) 2022-01-27

Similar Documents

Publication Publication Date Title
US9654825B2 (en) Systems and methods for detecting inconsistent user actions and providing feedback
US11636335B2 (en) System and method for content discovery
US20070288965A1 (en) Recommended program information providing method and apparatus
CN109829064B (en) Media resource sharing and playing method and device, storage medium and electronic device
US11153655B1 (en) Content appeal prediction using machine learning
US20170374426A1 (en) Binary tv
CN112100504B (en) Content recommendation method and device, electronic equipment and storage medium
US20210103606A1 (en) Methods and systems for performing context maintenance on search queries in a conversational search environment
US11657219B2 (en) Systems and methods for using machine learning models to organize and select modular components for user interface templates
US10003836B2 (en) Systems and methods for improving accuracy in media asset recommendation models based on users' levels of enjoyment with respect to media assets
CN113207010A (en) Model training method, live broadcast recommendation method, device and program product
CN115066906A (en) Method and system for recommending based on user-provided criteria
JP2004519902A (en) Television viewer profile initializer and related methods
CN114357201A (en) Audio-visual recommendation method and system based on information perception
US20220295131A1 (en) Systems, methods, and apparatuses for trick mode implementation
KR102357360B1 (en) Method and Apparatus for Deep Learning Based Real-time Program Recommendation
JP7090777B1 (en) Content recommendation device and content recommendation method
KR102342492B1 (en) Method and Apparatus for Deep Learning Based Content Recommendation
CN116361508A (en) Video recommendation method and related equipment
KR102342485B1 (en) Method and Apparatus for Deep Learning Based Content Recommendation
KR102361593B1 (en) Method and Apparatus for Determining Whether to Automatically Play Recommended Content Based on Deep Learning
KR102536499B1 (en) Method and Apparatus for Deep Learning Based Content Recommendation
KR102391644B1 (en) Method and Apparatus for VOD Content Recommendation
KR102624926B1 (en) System of manufacturing contents considering consumer preferences
KR102391640B1 (en) Method and Apparatus for VOD Content Recommendation

Legal Events

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