WO2023058835A1 - 전자 장치 및 그 제어 방법 - Google Patents

전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
WO2023058835A1
WO2023058835A1 PCT/KR2022/007406 KR2022007406W WO2023058835A1 WO 2023058835 A1 WO2023058835 A1 WO 2023058835A1 KR 2022007406 W KR2022007406 W KR 2022007406W WO 2023058835 A1 WO2023058835 A1 WO 2023058835A1
Authority
WO
WIPO (PCT)
Prior art keywords
content
information
viewing
user
users
Prior art date
Application number
PCT/KR2022/007406
Other languages
English (en)
French (fr)
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 US17/966,237 priority Critical patent/US20230110006A1/en
Publication of WO2023058835A1 publication Critical patent/WO2023058835A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements

Definitions

  • 20 is a flowchart illustrating an operation in which a terminal device and a device are connected to use a conversation function among joint viewing functions.
  • the preset groups are a first group that watches sports content in the morning, a second group that watches drama content in the morning, and a third group that watches news content in the afternoon.
  • the processor 120 may analyze content viewing history information of the first user to identify which group the first user belongs to from among the first to third groups. If the first user watches sports content in the morning for five or more days a week, the processor 120 may identify the first user as belonging to the first group.
  • the processor 120 may provide recommended content to the plurality of users based on content information corresponding to the viewing groups.
  • the information related to the recommended content may mean summary information representing the recommended content.
  • the information related to the recommended content may include at least one of a name, a thumbnail image, a play time, and a play count of the recommended content. The user can determine whether to watch the recommended content by viewing information related to the recommended content.
  • the preset event may include at least one of an event for providing recommended content, an event for receiving a user command for co-viewing, an event for ending the currently viewed content, or an event for receiving a user input for viewing new content.
  • the processor 120 may provide various services to users by providing recommended user information for joint viewing together with recommended content.
  • the terminal device 200 may display the recommended content received from the electronic device 100 (S465). As a result, the terminal device 200 can automatically provide content suitable for the user by displaying recommended content based on content viewing history information.
  • node 521 may represent v1 and node 522 may represent v2.
  • Edge 523 may represent a connection relationship between node 521 and node 522 .
  • the edge 523 may represent heading from the node 521 to the node 522, and may represent the order of the node 521-node 522.
  • FIG. 7 is a diagram for explaining a viewing group identification operation.
  • the electronic device 100 may determine a higher threshold number of contents (eg, three) having a high prediction probability value among a plurality of contents as recommended contents. Operations related to this have been described in the embodiment 930.
  • the electronic device 100 may include a first system 1410 and a second system 1420.
  • the first system 1410 may be a system processing information of a first user
  • the second system 1420 may be a system processing information of a second user. That is, the electronic device 100 may process information by using a separate system for each user.
  • the electronic device 100 may recommend the second user to the first user and the first user to the second user.
  • the electronic device 100 may provide a function for joint viewing by the first user and the second user based on the first user's selection and the second user's selection.
  • 18 is a diagram for explaining a UI for providing recommended users and guiding selection of recommended users.
  • attribute information for each content may include information related to a viewing pattern.
  • step of grouping (S2215) representative values for each of a plurality of users corresponding to graph information for each of a plurality of users are acquired, and a plurality of representative values corresponding to a plurality of viewing groups are compared with representative values for each of a plurality of users. Users of may be grouped into a plurality of viewing groups.

Abstract

본 전자 장치는 적어도 하나의 명령을 저장하는 메모리 및 메모리와 연결되어 전자 장치를 제어하는 프로세서를 포함하며, 프로세서는 적어도 하나의 명령어를 실행함으로써, 복수의 사용자 별 컨텐츠 시청 이력 정보에 기초하여 시청 컨텐츠가 시간 순으로 배열되는 복수의 사용자 별 그래프 정보를 획득하고, 복수의 사용자 별 그래프 정보를 그래프 신경망(Graph Neural Network, GNN) 모델에 입력하여 컨텐츠 별 속성 정보를 획득하고, 복수의 사용자 별 그래프 정보 및 컨텐츠 별 속성 정보에 기초하여 복수의 사용자를 복수의 시청 그룹으로 그룹핑하고, 복수의 시청 그룹에 대응되는 컨텐츠 정보에 기초하여 추천 컨텐츠를 제공한다.

Description

전자 장치 및 그 제어 방법
본 개시는 전자 장치 및 그 제어방법에 관한 것으로, 더욱 상세하게는 사용자에게 추천할 컨텐츠를 제공하는 전자 장치 및 그 제어방법에 대한 것이다.
컨텐츠 제공 서비스는 컨텐츠 자체를 제공하는 것을 넘어서 사용자의 시청 습관을 분석하여 추천 컨텐츠를 제공할 수 있다. 여기서, 추천 컨텐츠를 결정하기 위해 시청 이력이 이용된다. 예를 들어, 제1 사용자가 스포츠를 종하는 것으로 판단되면, 전자 장치는 제1 사용자에게 스포츠와 관련된 컨텐츠를 추천할 수 있다.
여기서, 추천 컨텐츠를 결정하는 동작에 있어서 컨텐츠의 개수가 다양하면 지금까지 시청했던 이력에 반영되지 않은 컨텐츠는 추천되기 어려울 수 있다.
또한, 추천 컨텐츠를 결정함에 있어 시간 정보가 반영되지 않으면 사용자가 시청하는 시간에 따라 달라지는 선호도가 반영되지 못하는 문제점이 있다.
또한, 추천 컨텐츠를 결정하는 동작에 있어서 한 사용자의 시청 이력만을 고려하는 경우 다양한 종류의 컨텐츠가 추천되지 못하는 문제점이 있다.
상술한 정보는 본 개시 내용의 이해를 돕기 위한 배경 정보로서만 제공된다. 상기 중 어느 것이 본 개시와 관련하여 선행 기술로서 적용될 수 있는지 여부에 대한 결정 및 주장이 이루어지지 않았다.
본 개시는 상술한 문제를 개선하기 위해 고안된 것으로, 본 개시의 목적은 시청 이력 정보에 대응되는 그래프 정보와 복수의 시청 그룹에 기초하여 추천 컨텐츠를 제공하는 전자 장치 및 그의 제어 방법을 제공함에 있다.
상술한 목적을 달성하기 위한 본 실시 예에 따른 전자 장치는 적어도 하나의 명령을 저장하는 메모리 및 상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서를 포함하며, 상기 프로세서는 상기 적어도 하나의 명령어를 실행함으로써, 복수의 사용자 별 컨텐츠 시청 이력 정보에 기초하여 시청 컨텐츠가 시간 순으로 배열되는 복수의 사용자 별 그래프 정보를 획득하고, 상기 복수의 사용자 별 그래프 정보를 그래프 신경망(Graph Neural Network, GNN) 모델에 입력하여 컨텐츠 별 속성 정보를 획득하고, 상기 복수의 사용자 별 그래프 정보 및 상기 컨텐츠 별 속성 정보에 기초하여 상기 복수의 사용자를 복수의 시청 그룹으로 그룹핑하고, 상기 복수의 시청 그룹에 대응되는 컨텐츠 정보에 기초하여 추천 컨텐츠를 제공한다.
한편, 상기 프로세서는 상기 복수의 사용자 별 그래프 정보 및 상기 복수의 시청 그룹 각각에 대응되는 가중치 정보에 기초하여 상기 복수의 사용자 별 컨텐츠 별 예측 정보를 획득하고, 상기 복수의 사용자 별 컨텐츠 별 예측 정보에 기초하여 상기 복수의 시청 그룹에 대응되는 컨텐츠 정보를 획득하고, 상기 획득된 컨텐츠 정보에 기초하여 추천 컨텐츠를 제공할 수 있다.
한편, 상기 컨텐츠 별 속성 정보는 시청 패턴과 관련된 정보를 포함할 수 있다.
한편, 상기 프로세서는 시청 패턴과 관련된 상기 컨텐츠 별 속성 정보에 대응되는 텍스트 및 상기 추천 컨텐츠와 관련된 정보를 포함하는 UI(User Interface)를 제공할 수 있다.
한편, 상기 프로세서는 상기 복수의 사용자 별 그래프 정보에 대응되는 복수의 사용자 별 대표값을 획득하고, 상기 복수의 시청 그룹에 대응되는 복수의 대표값과 상기 복수의 사용자 별 대표값을 비교하여 상기 복수의 사용자를 복수의 시청 그룹으로 그룹핑할 수 있다.
한편, 전자 장치는 통신 인터페이스를 더 포함하고, 상기 프로세서는 상기 통신 인터페이스를 통해 단말 장치로부터 기 설정된 이벤트가 수신되면, 공동 시청 기능을 위한 상기 복수의 시청 그룹에 대응되는 추천 사용자 정보를 제공할 수 있다.
한편, 상기 프로세서는 상기 통신 인터페이스를 통해 단말 장치로부터 기 설정된 이벤트가 수신되면, 상기 단말 장치에 대응되는 시청 그룹을 식별하고, 상기 식별된 시청 그룹에 대응되는 적어도 하나의 사용자 정보를 추천 사용자 정보로 제공할 수 있다.
한편, 상기 프로세서는 상기 통신 인터페이스를 통해 단말 장치로부터 기 설정된 이벤트가 수신되면, 상기 추천 컨텐츠 및 상기 추천 사용자 정보를 포함하는 UI를 생성하고, 상기 생성된 UI를 상기 단말 장치에 전송할 수 있다.
한편, 상기 기 설정된 이벤트는 추천 컨텐츠를 제공하는 이벤트, 공동 시청을 위한 사용자 명령이 수신된 이벤트, 현재 시청 중인 컨텐츠가 종료되는 이벤트 또는 새로운 컨텐츠를 시청하는 사용자 입력이 수신된 이벤트 중 적어도 하나를 포함할 수 있다.
한편, 상기 그래프 신경망 모델은 복수의 사용자가 시청한 적어도 하나의 시청 컨텐츠를 입력 학습 데이터로 이용하고 복수의 사용자가 상기 적어도 하나의 시청 컨텐츠를 시청한 이후에 시청한 시청 컨텐츠를 출력 학습 데이터로 이용하여 학습된 모델일 수 있다.
본 실시 예에 따른 전자 장치의 제어 방법은 복수의 사용자 별 컨텐츠 시청 이력 정보에 기초하여 시청 컨텐츠가 시간 순으로 배열되는 복수의 사용자 별 그래프 정보를 획득하는 단계, 상기 복수의 사용자 별 그래프 정보를 그래프 신경망(Graph Neural Network, GNN) 모델에 입력하여 컨텐츠 별 속성 정보를 획득하는 단계, 상기 복수의 사용자 별 그래프 정보 및 상기 컨텐츠 별 속성 정보에 기초하여 상기 복수의 사용자를 복수의 시청 그룹으로 그룹핑하는 단계 및 상기 복수의 시청 그룹에 대응되는 컨텐츠 정보에 기초하여 추천 컨텐츠를 제공하는 단계를 포함한다.
한편, 상기 추천 컨텐츠를 제공하는 단계는 상기 복수의 사용자 별 그래프 정보 및 상기 복수의 시청 그룹 각각에 대응되는 가중치 정보에 기초하여 상기 복수의 사용자 별 컨텐츠 별 예측 정보를 획득하고, 상기 복수의 사용자 별 컨텐츠 별 예측 정보에 기초하여 상기 복수의 시청 그룹에 대응되는 컨텐츠 정보를 획득하고, 상기 획득된 컨텐츠 정보에 기초하여 추천 컨텐츠를 제공할 수 있다.
한편, 상기 컨텐츠 별 속성 정보는 시청 패턴과 관련된 정보를 포함할 수 있다.
한편, 상기 제어 방법은 시청 패턴과 관련된 상기 컨텐츠 별 속성 정보에 대응되는 텍스트 및 상기 추천 컨텐츠와 관련된 정보를 포함하는 UI(User Interface)를 제공하는 단계를 더 포함할 수 있다.
한편, 상기 그룹핑하는 단계는 상기 복수의 사용자 별 그래프 정보에 대응되는 복수의 사용자 별 대표값을 획득하고, 상기 복수의 시청 그룹에 대응되는 복수의 대표값과 상기 복수의 사용자 별 대표값을 비교하여 상기 복수의 사용자를 복수의 시청 그룹으로 그룹핑할 수 있다.
한편, 상기 제어 방법은 단말 장치로부터 기 설정된 이벤트가 수신되면, 공동 시청 기능을 위한 상기 복수의 시청 그룹에 대응되는 추천 사용자 정보를 제공하는 단계를 더 포함할 수 있다.
한편, 상기 추천 사용자 정보를 제공하는 단계는 상기 단말 장치로부터 기 설정된 이벤트가 수신되면, 상기 단말 장치에 대응되는 시청 그룹을 식별하고, 상기 식별된 시청 그룹에 대응되는 적어도 하나의 사용자 정보를 추천 사용자 정보로 제공할 수 있다.
한편, 상기 제어 방법은 상기 단말 장치로부터 기 설정된 이벤트가 수신되면, 상기 추천 컨텐츠 및 상기 추천 사용자 정보를 포함하는 UI를 생성하고, 상기 생성된 UI를 상기 단말 장치에 전송하는 단계를 더 포함할 수 있다.
한편, 상기 기 설정된 이벤트는 추천 컨텐츠를 제공하는 이벤트, 공동 시청을 위한 사용자 명령이 수신된 이벤트, 현재 시청 중인 컨텐츠가 종료되는 이벤트 또는 새로운 컨텐츠를 시청하는 사용자 입력이 수신된 이벤트 중 적어도 하나를 포함할 수 있다.
한편, 상기 그래프 신경망 모델은 복수의 사용자가 시청한 적어도 하나의 시청 컨텐츠를 입력 학습 데이터로 이용하고 복수의 사용자가 상기 적어도 하나의 시청 컨텐츠를 시청한 이후에 시청한 시청 컨텐츠를 출력 학습 데이터로 이용하여 학습된 모델일 수 있다.
본 개시의 특정 실시 예의 상술한 내용 및 다른 내용, 특징, 이점은 아래의 도면과 함께 기재된 구체적인 설명으로부터 명백해질 수 있다.
도 1은 전자 장치 및 복수의 단말 장치를 포함하는 시스템을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치를 도시한 블록도이다.
도 3은 도 2의 전자 장치의 구체적인 구성을 설명하기 위한 블록도이다.
도 4는 단말 장치의 시청 이력 정보에 기초하여 추천 컨텐츠를 제공하는 동작을 설명하기 위한 흐름도이다.
도 5는 그래프 정보를 설명하기 위한 도면이다.
도 6은 그래프 신경망 모델을 설명하기 위한 도면이다.
도 7은 시청 그룹 식별 동작을 설명하기 위한 도면이다.
도 8은 시청 그룹 식별 동작의 구체적인 예시를 설명하기 위한 도면이다.
도 9는 가중치의 변경에 따라 출력 데이터가 달라지는 동작을 설명하기 위한 도면이다.
도 10은 시청 그룹을 정의하는 실시 예를 설명하기 위한 도면이다.
도 11은 그래프 신경망 모델의 학습 동작을 설명하기 위한 도면이다.
도 12는 복수의 사용자 별 컨텐츠 별 예측 정보를 설명하기 위한 도면이다.
도 13은 추천 사용자의 제공 동작 및 추천 사용자의 선택 동작을 설명하기 위한 흐름도이다.
도 14는 공동 시청을 위해 서로 다른 사용자가 매칭되는 동작을 설명하기 위한 흐름도이다.
도 15는 일 실시 예에 따라, 단말 장치의 시청 이력 정보에 기초하여 추천 컨텐츠 및 추천 사용자 정보를 제공하는 동작을 설명하기 위한 흐름도이다.
도 16은 다른 실시 예에 따라, 단말 장치의 시청 이력 정보에 기초하여 추천 컨텐츠 및 추천 사용자 정보를 제공하는 동작을 설명하기 위한 흐름도이다.
도 17은 추천 컨텐츠 및 공동 시청 기능을 가이드하기 위한 UI를 설명하기 위한 도면이다.
도 18은 추천 사용자를 제공하고 추천 사용자의 선택을 가이드하기 위한 UI를 설명하기 위한 도면이다.
도 19는 공동 시청 일정의 등록을 가이드하기 위한 UI를 설명하기 위한 도면이다.
도 20은 공동 시청 기능 중 대화 기능을 이용하기 위해 단말 장치 및 디바이스가 연결되는 동작을 설명하기 위한 흐름도이다.
도 21은 단말 장치와 연결되는 적어도 하나의 디바이스를 설명하기 위한 시스템도이다.
도 22는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 도면이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
본 명세서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
이하 첨부된 도면들을 참조하여 본 개시의 일 실시 예를 보다 상세하게 설명한다.
도 1은 전자 장치(100) 및 복수의 단말 장치(200, 201, 202)를 포함하는 시스템(1000)을 설명하기 위한 도면이다.
도 1을 참조하면, 시스템(1000)은 전자 장치(100) 및 복수의 단말 장치(200, 201, 202)를 포함할 수 있다. 여기서, 시스템(1000)은 시청 이력 정보에 기초하여 추천 컨텐츠를 표시하는 서비스를 제공하는 시스템일 수 있다.
여기서, 전자 장치(100)는 인공 지능 모델을 이용하여 적어도 하나의 단말 장치를 위한 추천 컨텐츠를 식별하는 장치를 의미할 수 있다. 여기서, 인공 지능 모델을 그래프 신경망(Graph Neural Network, GNN) 모델일 수 있다. 여기서, 전자 장치(100)는 복수의 단말 장치(200, 201, 202)로부터 수신된 시청 이력 정보에 기초하여 복수의 단말 장치(200, 201, 202) 각각에 대응되는 추천 컨텐츠를 식별하고, 식별된 추천 컨텐츠를 복수의 단말 장치(200, 201, 202) 각각에 제공할 수 있다.
여기서, 복수의 단말 장치(200, 201, 202)는 컨텐츠를 표시하는 장치를 의미할 수 있다. 예를 들어, 복수의 단말 장치(200, 201, 202)는 디스플레이 또는 스피커 중 적어도 하나를 포함하는 장치를 의미할 수 있다. 여기서, 복수의 단말 장치(200, 201, 202)는 사용자의 시청 이력 정보를 생성하여 전자 장치(100)에 전송할 수 있다. 또한, 복수의 단말 장치(200, 201, 202)는 전자 장치(100)로부터 추천 컨텐츠를 제공받을 수 있다.
한편, 도 1에서는 단말 장치를 3개로 표현하였지만, 구현 예에 따라 단말 장치는 외부 단말 장치에 해당하므로 3개 보다 적거나, 3개 이상일 수 있다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치(100)를 도시한 블록도이다.
도 2를 참조하면, 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함할 수 있다.
여기서, 전자 장치(100)는 컨텐츠를 제공하는 서버를 의미할 수 있다.
한편, 본 명세서의 다양한 실시 예들에 따른 전자 장치는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 데스크탑 PC, 랩탑 PC, PDA, PMP(portable multimedia player) 중 적어도 하나를 포함할 수 있다. 어떤 실시 예들에서, 전자 장치(100)는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM)중 적어도 하나를 포함할 수 있다.
메모리(110)는 프로세서(120)에 포함된 롬(ROM)(예를 들어, EEPROM(electrically erasable programmable read-only memory)), 램(RAM) 등의 내부 메모리로 구현되거나, 프로세서(120)와 별도의 메모리로 구현될 수도 있다. 이 경우, 메모리(110)는 데이터 저장 용도에 따라 전자 장치(100)에 임베디드된 메모리 형태로 구현되거나, 전자 장치(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 전자 장치(100)의 구동을 위한 데이터의 경우 전자 장치(100)에 임베디드된 메모리에 저장되고, 전자 장치(100)의 확장 기능을 위한 데이터의 경우 전자 장치(100)에 탈부착이 가능한 메모리에 저장될 수 있다.
한편, 전자 장치(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현되고, 전자 장치(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결 가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
한편, 메모리(110)는 적어도 하나의 인스트럭션(instruction)을 저장할 수 있다. 메모리(110)에 저장된 인스트럭션에 기초하여 프로세서(120)는 다양한 동작을 수행할 수 있다.
프로세서(120)는 전자 장치(100)의 전반적인 제어 동작을 수행할 수 있다. 구체적으로, 프로세서(120)는 전자 장치(100)의 전반적인 동작을 제어하는 기능을 한다.
프로세서(120)는 디지털 신호를 처리하는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), GPU(graphics-processing unit) 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(120)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다. 또한, 프로세서(120)는 메모리(110)에 저장된 컴퓨터 실행가능 명령어(computer executable instructions)를 실행함으로써 다양한 기능을 수행할 수 있다.
프로세서(120)는 메모리(110)와 연결되어 전자 장치(100)를 제어할 수 있다. 그리고, 프로세서(120)는 적어도 하나의 명령어를 실행함으로써, 복수의 사용자 별 컨텐츠 시청 이력 정보에 기초하여 시청 컨텐츠가 시간 순으로 배열되는 복수의 사용자 별 그래프 정보를 획득하고, 복수의 사용자 별 그래프 정보를 그래프 신경망(Graph Neural Network, GNN) 모델(123)에 입력하여 컨텐츠 별 속성 정보를 획득하고, 복수의 사용자 별 그래프 정보 및 컨텐츠 별 속성 정보에 기초하여 복수의 사용자를 복수의 시청 그룹으로 그룹핑하고, 복수의 시청 그룹에 대응되는 컨텐츠 정보에 기초하여 추천 컨텐츠를 제공할 수 있다.
여기서, 그래프 신경망 모델(123)은 그래프 형태의 데이터인 그래프 정보를 이용하여 학습된 신경망 모델을 의미할 수 있다. 또한, 그래프 신경망 모델(123)은 그래프 정보에 포함된 노드 분류(Node classification) 동작을 수행할 수 있다. 여기서, 노드 분류 동작에 분류 알고리즘이 이용될 수 있다.
여기서, 그래프 정보는 복수의 노드와 복수의 노드를 연결하는 엣지를 포함할 수 있다. 여기서, 노드는 점을 의미할 수 있으며 엣지는 선(또는 링크)을 의미할 수 있다. 여기서, 노드는 컨텐츠를 의미할 수 있으며 엣지는 시간 순서에 따른 복수의 컨텐츠를 연결 관계를 의미할 수 있다. 예를 들어, A노드-엣지-B노드로 구성된 그래프 정보는 A 컨텐츠 시청 이후 B 컨텐츠를 시청하였음을 나타낼 수 있다.
여기서, 프로세서(120)는 복수의 사용자 별 컨텐츠 시청 이력 정보를 획득할 수 있다. 여기서, 컨텐츠 시청 이력 정보는 사용자가 시청 기록이 시간 순서에 따라 저장된 정보를 포함할 수 있다. 컨텐츠 시청 이력 정보는 사용자가 어느 시점에 어떤 컨텐츠를 시청하였는지 나타내는 정보를 포함할 수 있다. 예를 들어, 제1 사용자가 토요일 오전 9시에 드라마 A컨텐츠를 시청하고 토요일 오전 10시에 영화 B 컨텐츠를 시청하고 토요일 오전11시에 애니메이션 C 컨텐츠를 시청하였다고 가정한다. 컨텐츠 시청 이력 정보는 사용자가 토요일 오전9시에 드라마 A 컨텐츠를 시청하였음을 나타내는 정보, 토요일 오전 10시에 영화 B 컨텐츠를 시청하였음을 나타내는 정보, 토요일 오전 11시에 애니메이션 C 컨텐츠를 시청하였음을 나타내는 정보를 모두 포함할 수 있다.
여기서, 프로세서(120)는 복수의 단말 장치(200, 201, 202)로부터 복수의 사용자 별 컨텐츠 시청 이력 정보를 수신할 수 있다. 여기서, 전자 장치(100)는 통신 인터페이스(130)를 포함할 수 있고, 프로세서(120)는 복수의 단말 장치(200, 201, 202)로부터 정보를 수신할 수 있도록 통신 인터페이스(130)를 제어할 수 있다.
여기서, 프로세서(120)는 복수의 단말 장치(200, 201, 202)로부터 수신된 컨텐츠 시청 이력 정보에 기초하여 복수의 사용자 별 그래프 정보를 획득할 수 있다. 여기서, 그래프 정보는 시간 순으로 시청 컨텐츠가 배열된 정보를 의미할 수 있다. 예를 들어, 그래프 정보는 드라마A-영화B-애니메이션C가 연속된 그래프 형태로 나타내는 정보를 의미할 수 있다. 그래프 정보에는 시청 컨텐츠의 순서이외에 시간 정보가 함께 포함될 수 있다. 여기서, 그래프 정보를 획득하는 동작은 데이터 전처리 동작에 해당할 수 있다.
여기서, 프로세서(120)는 복수의 사용자 별 그래프 정보를 입력 데이터로서 그래프 신경망 모델(123)에 입력할 수 있다. 여기서, 그래프 신경망 모델(123)은 그래프 형태로 구성된 정보(그래프 정보)를 분석하여 출력 데이터를 획득하는 네트워크를 의미할 수 있다.
한편, 프로세서(120)는 그래프 신경망 모델(123)을 이용하여 컨텐츠 별 속성 정보를 획득할 수 있다. 여기서, 프로세서(120)는 복수의 사용자 별 그래프 정보를 그래프 신경망 모델(123)에 입력하여 컨텐츠 별 속성 정보를 획득할 수 있다.
여기서, 컨텐츠 별 속성 정보는 시청 패턴과 관련된 정보를 포함할 수 있다. 또한, 컨텐츠 별 속성 정보는 특정 컨텐츠의 시청 전후에 시청한 다른 컨텐츠에 의해 결정되는 정보일 수 있다. 구체적으로, 컨텐츠 별 속성 정보는 특정 컨텐츠가 시간 순으로 배열되는 그래프 정보를 그래프 신경망 모델(123)에 입력하여 획득되는 정보일 수 있다. 여기서, 컨텐츠 별 속성 정보는 그래프 정보에 포함된 특정 컨텐츠에 대응하는 제1 노드와 제1 노드와 인접한 다른 노드에 위치하는 다른 컨텐츠에 따라 결정될 수 있다.
한편, 컨텐츠 별 속성 정보는 컨텐츠의 시청 시간, 시청 지속 시간, 이름, 장르, 국가, 언어, 배우, 제작자 또는 감독 중 적어도 하나에 대한 정보를 추가적으로 포함할 수 있다.
한편, 프로세서(120)는 컨텐츠 시청과 관련된 세부 정보에 기초하여 컨텐츠 별 속성 정보를 획득할 수 있다. 여기서, 컨텐츠 시청과 관련된 세부 정보는 컨텐츠의 시청 시간, 시청 지속 시간, 이름, 장르, 국가, 언어, 배우, 제작자 또는 감독 중 적어도 하나를 포함할 수 있다.
시청 시간과 관련하여, 프로세서(120)는 제1 사용자가 오전에 주로 컨텐츠를 시청하는 패턴을 가진다고 식별할 수 있다. 또한, 프로세서(120)는 제2 사용자가 오후에 주로 컨텐츠를 시청하는 패턴을 가진다고 식별할 수 있다.
시청 지속 시간과 관련하여, 프로세서(120)는 제1 사용자가 1시간동안 연속하여 컨텐츠를 시청하는 패턴을 가진다고 식별할 수 있다. 또한, 프로세서(120)는 제2 사용자가 3시간동안 연속하여 컨텐츠를 시청하는 패턴을 가진다고 식별할 수 있다.
컨텐츠 장르와 관련하여, 프로세서(120)는 제1 사용자가 드라마 컨텐츠를 주로 시청하는 패턴을 가진다고 식별할 수 있다. 또한, 프로세서(120)는 제2 사용자가 주로 스포츠 컨텐츠를 시청하는 패턴을 가진다고 식별할 수 있다.
컨텐츠 국가와 관련하여, 프로세서(120)는 제1 사용자가 한국에서 제작된 컨텐츠를 주로 시청하는 패턴을 가진다고 식별할 수 있다. 또한, 프로세서(120)는 제2 사용자가 주로 미국에서 제작된 컨텐츠를 시청하는 패턴을 가진다고 식별할 수 있다.
컨텐츠 언어와 관련하여, 프로세서(120)는 제1 사용자가 한국어로 제공되는 컨텐츠를 주로 시청하는 패턴을 가진다고 식별할 수 있다. 또한, 프로세서(120)는 제2 사용자가 주로 영어로 제공된 컨텐츠를 시청하는 패턴을 가진다고 식별할 수 있다. 여기서, 컨텐츠 언어는 음성 언어 또는 자막 언어 중 적어도 하나를 포함할 수 있다.
컨텐츠 배우, 제작자, 감독 등과 관련하여, 프로세서(120)는 제1 사용자가 A 배우가 출연한 컨텐츠를 주로 시청하는 패턴을 가진다고 식별할 수 있다. 또한, 프로세서(120)는 제2 사용자가 주로 B 배우가 출연한 컨텐츠를 시청하는 패턴을 가진다고 식별할 수 있다.
한편, 프로세서(120)는 그래프 신경망 모델(123)을 이용하여 복수의 사용자를 복수의 시청 그룹으로 그룹핑 할 수 있다.
구체적으로, 프로세서(120)는 복수의 사용자 별 그래프 정보 및 컨텐츠 별 속성 정보에 기초하여 복수의 사용자를 기 설정된 그룹으로 분할 또는 구분할 수 있다. 여기서, 기 설정된 그룹은 전자 장치(100)의 시스템 관리자가 설정한 그룹일 수 있다.
예를 들어, 기 설정된 그룹이 오전 시간에 스포츠 컨텐츠를 시청하는 제1 그룹, 오전 시간에 드라마 컨텐츠를 시청하는 제2 그룹, 오후 시간에 뉴스 컨텐츠를 시청하는 제3 그룹이라고 가정한다. 프로세서(120)는 제1 사용자의 컨텐츠 시청 이력 정보를 분석하여 제1 사용자가 제1 그룹 내지 제3 그룹 중 어느 그룹에 속하는지 식별할 수 있다. 제1 사용자가 일주일에 5일 이상 오전에 스포츠 컨텐츠를 시청하였다면, 프로세서(120)는 제1 사용자가 제1 그룹에 속하는 것으로 식별할 수 있다.
여기서, 프로세서(120)는 복수의 사용자 별 컨텐츠 시청 이력 정보에 기초하여 복수의 사용자가 기 설정된 복수의 그룹 중 어느 그룹에 속하는지 식별할 수 있다. 프로세서(120)는 사용자가 기 설정된 복수의 그룹 각각에 속할 확률값을 획득할 수 있다. 그리고, 프로세서(120)는 복수의 그룹 각각에 속할 확률값 중 가장 높은 확률값을 갖는 그룹을 식별할 수 있다.
일 예로, 프로세서(120)는 사용자가 가장 높은 확률값을 갖는 그룹에 속하는 것으로 식별할 수 있다. 예를 들어, 제1 사용자가 제1 그룹에 속할 확률값이 0.1, 제2 그룹에 속할 확률값이 0.5, 제3 그룹에 속할 확률값이 0.2라고 가정한다. 프로세서(120)는 제1 사용자가 제2 그룹(최대 확률값을 갖는 그룹)에 속한다고 식별할 수 있다.
다른 예로, 프로세서(120)는 가장 높은 확률 값이 임계값 이상이면, 사용자가 가장 높은 확률값을 갖는 그룹에 속하는 것으로 식별할 수 있다. 예를 들어, 제1 사용자가 제1 그룹에 속할 확률값이 0.1, 제2 그룹에 속할 확률값이 0.5, 제3 그룹에 속할 확률값이 0.2라고 가정하고, 임계값이 0.6이라고 가정한다. 제2 그룹에 속할 확률은 임계값보다 크지 않으므로, 프로세서(120)는 제1 사용자가 어느 그룹에도 속하지 않는다고 판단할 수 있다. 여기서, 프로세서(120)는 기 설정된 제1 그룹 내지 제3 그룹에 포함되지 않는다는 내용을 출력하거나 제4 그룹을 분석이 불가능한 사용자를 그룹핑하는 그룹으로 설정할 수 있다.
한편, 프로세서(120)는 복수의 사용자들을 기 설정된 그룹들로 그룹핑하여 그룹핑된 결과를 메모리(110)에 저장할 수 있다. 여기서, 그룹핑된 결과는 특정 그룹에 어느 사용자가 속해 있는지 나타내는 정보를 의미할 수 있다. 예를 들어, 제1 그룹은 제1 사용자 내지 제10 사용자가 포함되고, 제2 그룹은 제11 사용자 내기 제20 사용자가 포함되고, 제3 그룹은 제21 사용자 내지 제30 사용자가 포함될 수 있다.
한편, 프로세서(120)는 복수의 사용자를 복수의 시청 그룹으로 그룹핑한 후, 복수의 사용자에게 시청 그룹에 대응되는 컨텐츠 정보에 기초하여 추천 컨텐츠를 제공할 수 있다.
여기서, 동일한 그룹은 동일한 시청 패턴을 갖는 사용자들의 집합일 수 있다. 따라서, 동일한 그룹이라면 시청 패턴이 유사하여 선호하는 컨텐츠가 유사할 수 있다. 따라서, 프로세서(120)는 시청 그룹에 대응되는 컨텐츠 정보를 이용하여 복수의 사용자에게 적합한 추천 컨텐츠를 제공할 수 있다.
일 예로, 프로세서(120)는 동일한 그룹에 속한 사용자들에게 동일한 컨텐츠를 추천해줄 수 있다. 다른 예로, 프로세서(120)는 동일한 그룹에 속한 사용자들이지만 일부 상이한 컨텐츠를 추천해줄 수 있다.
한편, 프로세서(120)는 복수의 사용자 별 그래프 정보 및 복수의 시청 그룹 각각에 대응되는 가중치 정보에 기초하여 복수의 사용자 별 컨텐츠 별 예측 정보를 획득하고, 복수의 사용자 별 컨텐츠 별 예측 정보에 기초하여 복수의 시청 그룹에 대응되는 컨텐츠 정보를 획득하고, 획득된 컨텐츠 정보에 기초하여 추천 컨텐츠를 제공할 수 있다.
여기서, 복수의 사용자 별 컨텐츠 별 예측 정보는 기 설정된 복수의 컨텐츠 각각에 대한 예측 확률값을 의미할 수 있다. 예를 들어, 제1 사용자가 토요일 오전 9시에 드라마 A컨텐츠를 시청하고 토요일 오전 10시에 영화 B 컨텐츠를 시청하고 토요일 오전11시에 애니메이션 C 컨텐츠를 시청하였다고 가정한다. C 컨텐츠를 시청한 이후에 제1 사용자가 어떤 컨텐츠를 시청하였는지 추론할 필요성이 있다. 따라서, 컨텐츠 별 예측 정보는 제1 사용자가 어떤 컨텐츠를 시청할 것인지 예측하는 확률값을 의미할 수 있다. 컨텐츠 별 예측 정보는 A 컨텐츠(0.01), B 컨텐츠(0.02), C 컨텐츠(0.03), D 컨텐츠(0.4), E 컨텐츠(0.3) 등을 포함할 수 있다. 기 설정된 컨텐츠가 A 컨텐츠 내지 E 컨텐츠라면, 제1 사용자는 D 컨텐츠를 볼 확률이 가장 높을 수 있다. 따라서, 프로세서(120)는 제1 사용자에게 D 컨텐츠를 추천 컨텐츠로서 제공할 수 있다.
한편, 프로세서(120)는 시청 패턴과 관련된 컨텐츠 별 속성 정보에 대응되는 텍스트 및 추천 컨텐츠와 관련된 정보를 포함하는 UI(User Interface)를 제공할 수 있다.
여기서, 프로세서(120)는 사용자에게 추천 컨텐츠를 제공하기 위한 UI를 생성할 수 있다. 그리고, 프로세서(120)는 생성된 UI를 사용자에게 제공할 수 있다. 구체적으로, 프로세서(120)는 생성된 UI를 사용자의 단말 장치(200)에 전송할 수 있으며, 단말 장치(200)는 전자 장치(100)로부터 수신된 UI를 표시함으로써 사용자에게 제공할 수 있다.
여기서, 컨텐츠 별 속성 정보에 대응되는 텍스트는 특정 사용자의 시청 패턴에 대한 분석 결과를 포함하는 텍스트를 의미할 수 있다. 예를 들어, 컨텐츠 별 속성 정보에 대응되는 텍스트는 "당신의 시청 패턴은 오전-스포츠입니다"라는 내용을 포함할 수 있다.
여기서, 추천 컨텐츠와 관련된 정보는 추천 컨텐츠를 나타내는 요약 정보를 의미할 수 있다. 구체적으로, 추천 컨텐츠와 관련된 정보는 추천된 컨텐츠의 이름, 썸네일 이미지, 재생 시간, 재생 횟수 중 적어도 하나를 포함할 수 있다. 사용자는 추천 컨텐츠와 관련된 정보를 봄으로써 추천 컨텐츠를 시청할 것인지 결정할 수 있다.
한편, 프로세서(120)는 복수의 사용자 별 그래프 정보에 대응되는 복수의 사용자 별 대표값을 획득하고, 복수의 시청 그룹에 대응되는 복수의 대표값과 복수의 사용자 별 대표값을 비교하여 복수의 사용자를 복수의 시청 그룹으로 그룹핑할 수 있다.
여기서, 컨텐츠 시청 이력 정보는 데이터 전처리 동작에 의하여 그래프 정보로 변경될 수 있다. 그리고, 프로세서(120)는 그래프 정보를 이용하여 복수의 사용자 별 대표값을 획득할 수 있다. 여기서, 사용자의 대표값은 특정 사용자의 그래프 정보를 대표하기 위한 값을 의미할 수 있다. 그리고, 사용자의 대표값은 기 설정된 복수의 시청 그룹의 대표값과 비교될 수 있다. 구체적으로, 프로세서(120)는 사용자의 대표값과 기 설정된 그룹의 대표값을 비교하여 사용자가 어느 그룹에 속하는지 결정할 수 있다.
여기서, 프로세서(120)는 복수의 사용자 별 그래프 정보에 기초하여 복수의 사용자 별 대표값을 획득할 수 있다. 그리고, 프로세서(120)는 복수의 사용자 별 대표값 및 복수의 시청 그룹 별 대표값을 비교하여 복수의 사용자를 복수의 시청 그룹으로 그룹핑할 수 있다.
한편, 프로세서(120)는 복수의 시청 그룹에 대응되는 추천 사용자 정보를 제공할 수 있다.
한편, 단말 장치로부터 기 설정된 이벤트가 수신되면, 단말 장치에 대응되는 시청 그룹을 식별하고, 식별된 시청 그룹에 대응되는 적어도 하나의 사용자 정보를 추천 사용자 정보로 제공할 수 있다.
여기서, 기 설정된 이벤트는 추천 컨텐츠를 제공하는 이벤트, 공동 시청을 위한 사용자 명령이 수신된 이벤트, 현재 시청 중인 컨텐츠가 종료되는 이벤트 또는 새로운 컨텐츠를 시청하는 사용자 입력이 수신된 이벤트 중 적어도 하나를 포함할 수 있다.
여기서, 공동 시청은 특정 컨텐츠를 복수의 사용자가 동시에 시청하는 서비스를 의미할 수 있다. 또한, 공동 시청은 특정 컨텐츠를 복수의 사용자가 동시에 시청하면서 음성 대화 또는 시각 대화를 하는 서비스를 의미할 수 있다.
여기서, 추천 사용자 정보는 공동 시청 서비스를 함께 이용할 상대방을 선택하기 위한 정보를 의미할 수 있다. 예를 들어, 추천 사용자 정보는 사용자 이름, ID 또는 썸네일 이미지 중 적어도 하나를 포함하는 프로필 정보를 의미할 수 있다.
여기서, 추천 사용자 정보는 복수의 사용자가 복수의 시청 그룹으로 그룹핑된 정보에 기초하여 획득될 수 있다. 구체적으로, 프로세서(120)는 추천 사용자 정보를 제공해야 하는 사용자를 특정하고, 특정된 사용자가 속하는 시청 그룹을 식별할 수 있다. 그리고, 프로세서(120)는 사용자가 속하는 시청 그룹에 포함된 적어도 하나의 사용자와 관련된 정보를 제공할 수 있다.
예를 들어, 제1 그룹은 제1 사용자 내지 제10 사용자가 포함되고, 제2 그룹은 제11 사용자 내기 제20 사용자가 포함되고, 제3 그룹은 제21 사용자 내지 제30 사용자가 포함되는 것으로 가정한다. 만약, 특정 사용자가 제2 그룹에 속하는 것으로 식별되면, 프로세서(120)는 제2 그룹에 포함된 제11 사용자 내지 제20 사용자를 특정 사용자에게 추천해줄 수 있다.
여기서, 프로세서(120)는 추천 컨텐츠와 함께 공동 시청을 위한 추천 사용자 정보를 함께 제공하여 사용자에게 다양한 서비스를 제공할 수 있다.
한편, 프로세서(120)는 통신 인터페이스(130)를 통해 단말 장치(200)로부터 기 설정된 이벤트가 수신되면, 추천 컨텐츠 및 추천 사용자 정보를 포함하는 UI를 생성하고, 생성된 UI를 단말 장치(200)에 전송할 수 있다.
여기서, UI와 관련된 구체적인 설명은 도 15 내지 도 19에서 기술한다.
한편, 그래프 신경망 모델(123)은 복수의 사용자가 시청한 적어도 하나의 시청 컨텐츠를 입력 학습 데이터로 이용하고 복수의 사용자가 적어도 하나의 시청 컨텐츠를 시청한 이후에 시청한 시청 컨텐츠를 출력 학습 데이터로 이용하여 학습된 모델일 수 있다. 그래프 신경망 모델(123)과 관련한 구체적인 설명은 도3 내지 도 12에서 기재한다.
한편, 상술한 설명에서는 시청 컨텐츠와 관련된 동작을 설명하였으나, 구현 예에 따라, 시간 순서를 포함하는 데이터라면 다양한 실시 예에 본 발명의 특징이 적용될 수 있다. 일 예로, 시청 컨텐츠 대신에 구매 물품이 이용될 수 있다. 예를 들어, 제1 컨텐츠, 제2 컨텐츠, 제3 컨텐츠를 시간 순서대로 시청하는 컨텐츠 시청 이력 정보 대신에 제1 물품, 제2 물품, 제3 물품을 구매하는 물품 구매 이력 정보가 이용될 수 있다. 그리고, 컨텐츠 별 예측 정보 대신에 물품 별 예측 정보가 획득될 수 있다.
한편, 본원 발명은 복수의 시청 그룹과 관련된 그룹 정보를 이용하여 컨텐츠 별 예측 정보를 생성할 수 있다. 그룹 정보를 이용하지 않는 경우 노드 별 연결 정보만을 이용하므로 비슷한 확률값을 가지는 경우가 발생할 수 있다. 하지만, 본원 발명은 그룹 정보를 이용하여 컨텐츠 별 예측 정보를 생성하므로, 정확한 추천 컨텐츠 결정 동작을 수행할 수 있다.
한편, 본원 발명은 추천 컨텐츠 이외에 공동 시청을 위한 기능 또는 서비스를 제공할 수 있다. 추천 컨텐츠를 함께 시청하고자 하는 사용자를 추천함으로써 사용자는 추천 컨텐츠에 대한 공동 시청 기능을 이용할 수 있다. 여기서, 추천 컨텐츠 결정에 이용되었던 그룹 정보가 이용되어 사용자에게 적합한 사용자들이 추천될 수 있다.
한편, 이상에서는 전자 장치(100)를 구성하는 간단한 구성에 대해서만 도시하고 설명하였지만, 구현 시에는 다양한 구성이 추가로 구비될 수 있다. 이에 대해서는 도 3을 참조하여 이하에서 설명한다.
도 3은 도 2의 전자 장치(100)의 구체적인 구성을 설명하기 위한 블록도이다.
한편, 메모리(110) 및 프로세서(120)의 동작 중에서 앞서 설명한 것과 동일한 동작에 대해서는 중복 설명은 생략한다.
통신 인터페이스(130)는 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 장치와 통신을 수행하는 구성이다. 통신 인터페이스(130)는 무선 통신 모듈 또는 유선 통신 모듈을 포함할 수 있다. 여기서, 각 통신 모듈은 적어도 하나의 하드웨어 칩 형태로 구현될 수 있다.
여기서, 무선 통신 모듈은 무선으로 외부 장치와 통신하는 모듈일 수 있다. 예를 들어, 무선 통신 모듈은 와이파이 모듈, 블루투스 모듈, 적외선 통신 모듈 또는 기타 통신 모듈 중 적어도 하나의 모듈을 포함할 수 있다.
여기서, 유선 통신 모듈은 유선으로 외부 장치와 통신하는 모듈일 수 있다. 예를 들어, 유선 통신 모듈은 LAN(Local Area Network) 모듈, 이더넷 모듈, 페어 케이블, 동축 케이블, 광섬유 케이블 또는 UWB(Ultra Wide-Band) 모듈 중 적어도 하나를 포함할 수 있다.
한편, 통신 인터페이스(130)는 외부 기기(예를 들어, 단말 장치)로부터 시청 이력 정보를 수신할 수 있다. 또한, 통신 인터페이스(130)는 단말 장치(200)에 추천 컨텐츠 또는 추천 사용자 정보 중 적어도 하나를 전송할 수 있다.
한편, 프로세서(120)는 시청 이력 정보 수집 모듈(121), 시청 이력 정보 전처리 모듈(122), 그래프 신경망 모델(123) 또는 정보 제공 모듈(124) 중 적어도 하나의 모듈을 포함할 수 있다.
여기서, 시청 이력 정보 수집 모듈(121)은 복수의 사용자 별 컨텐츠 시청 이력 정보를 획득하는 모듈일 수 있다. 구체적으로, 전자 장치(100)는 통신 인터페이스(130)를 통해 복수의 단말 장치(200, 201, 202)로부터 컨텐츠 시청 이력 정보를 수신할 수 있다. 그리고, 전자 장치(100)는 통신 인터페이스(130)를 통해 수신한 복수의 사용자 별 컨텐츠 시청 이력 정보를 시청 이력 정보 수집 모듈(121)에 저장할 수 있다.
여기서, 시청 이력 정보 전처리 모듈(122)은 시청 이력 정보 수집 모듈(121)에서 저장하고 있는 컨텐츠 시청 이력 정보를 그래프 정보로 변환하는 모듈일 수 있다. 컨텐츠 시청 이력 정보를 그래프 정보로 변환하는 이유는 그래프 신경망 모델(123)을 이용하기 위해 입력 데이터를 그래프 형태로 변환해야 하기 때문이다.
여기서, 그래프 신경망 모델(123)은 그래프 정보 수신 모듈(123-1), 컨텐츠 별 속성 정보 획득 모듈(123-2), 그룹 식별 모듈(123-3), 그룹별 가중치 적용 모듈(123-4), 컨텐츠 별 예측 정보 생성 모듈(123-5)을 포함할 수 있다.
여기서, 그래프 정보 수신 모듈(123-1)은 시청 이력 정보 전처리 모듈(122)에서 생성한 그래프 정보를 수신하는 모듈을 의미할 수 있다. 여기서, 그래프 정보는 그래프 신경망 모델(123)의 입력 데이터로서 이용될 수 있다.
여기서, 컨텐츠 별 속성 정보 획득 모듈(123-2)은 입력된 그래프 정보에 기초하여 사용자의 컨텐츠 시청 패턴에 대응되는 컨텐츠 별 속성 정보를 획득하는 모듈을 의미할 수 있다. 컨텐츠 별 속성 정보 획득 모듈(123-2)은 특정 사용자가 어느 시청 패턴을 가지고 있는지 나타내는 컨텐츠 별 속성 정보를 획득할 수 있다.
여기서, 그룹 식별 모듈(123-3)은 그래프 정보 및 컨텐츠 별 속성 정보에 기초하여 특정 사용자가 기 설정된 복수의 그룹 중 어느 그룹에 속하는지 식별하는 모듈을 의미할 수 있다. 그룹 식별 모듈(123-3)은 복수의 사용자 별 시청 그룹에 대한 정보를 그룹 정보로서 저장할 수 있다.
여기서, 그룹별 가중치 적용 모듈(123-4)은 기 설정된 복수의 그룹 각각의 가중치를 적용하는 모듈을 의미할 수 있다. 기 설정된 복수의 그룹 각각이 서로 다른 가중치를 가지며, 그룹별 가중치 적용 모듈(123-4)은 그룹 별 상이한 가중치가 적용되도록 그래프 신경망 모델(123)에 그룹 별 가중치를 제공할 수 있다. 일 예로, 그룹 별 가중치는 학습 동작에서 기 저장된 정보일 수 있다. 다른 예로, 그룹 별 가중치는 학습 동작 이후에도 실시간으로 수신되는 복수의 입력 데이터에 의하여 업데이트되는 정보일 수 있다.
여기서, 컨텐츠 별 예측 정보 생성 모듈(123-5)은 그래프 정보, 컨텐츠 별 속성 정보, 식별된 그룹 정보, 그룹 별 가중치 정보에 기초하여 컨텐츠 별 예측 정보를 획득할 수 있다. 구체적으로, 컨텐츠 별 예측 정보 생성 모듈(123-5)은 특정 사용자에 대한 기 설정된 복수의 컨텐츠 별 시청 확률값을 획득할 수 있다.
여기서, 정보 제공 모듈(124)은 추천 컨텐츠 결정 모듈(124-1), 추천 사용자 결정 모듈(124-2), UI 생성 모듈(124-3) 또는 공동 시청 매칭 모듈(124-4) 중 적어도 하나를 포함할 수 있다.
여기서, 추천 컨텐츠 결정 모듈(124-1)은 컨텐츠 별 예측 정보 생성 모듈(123-5)에서 획득한 컨텐츠 별 예측 정보에 기초하여 적어도 하나의 추천 컨텐츠를 결정하는 모듈을 의미할 수 있다. 예를 들어, 추천 컨텐츠 결정 모듈(124-1)은 10개의 기 설정된 컨텐츠 항목들 중 가장 확률값이 높은 3개의 컨텐츠 항목들을 추천 컨텐츠로 결정할 수 있다.
여기서, 추천 사용자 결정 모듈(124-2)은 그룹 식별 모듈(123-3)에서 획득한 복수의 사용자 별 그룹 정보에 기초하여 추천 사용자를 결정하는 모듈을 의미할 수 있다. 추천 사용자 결정 모듈(124-2)은 특정 사용자에게 적합한 추천 사용자를 제공하기 위해 복수의 사용자 중 특정 사용자에 대응되는 그룹에 포함된 적어도 하나의 사용자를 추천 사용자로 결정할 수 있다.
여기서, UI 생성 모듈(124-3)은 추천 컨텐츠 또는 추천 사용자 중 적어도 하나를 사용자에게 제공하기 위한 UI를 생성하는 모듈을 의미할 수 있다. 여기서, UI 생성 모듈(124-3)은 UI를 생성할 수 있으며, 생성된 UI는 통신 인터페이스(130)를 통해 특정 사용자의 단말 장치(200)에 전송될 수 있다. 그리고, 단말 장치(200)는 전자 장치(100)로부터 수신된 UI를 특정 사용자에게 제공할 수 있다.
여기서, 공동 시청 매칭 모듈(124-4)은 특정 컨텐츠를 공동으로 시청하기 위한 복수의 사용자를 매칭하는 모듈을 의미할 수 있다. 예를 들어, A 컨텐츠를 공동으로 시청하기 위한 사용자가 2명이면 2명의 사용자를 연결하여 A 컨텐츠를 동시에 시청할 수 있는 서비스를 제공할 수 있다. 여기서, 공동 시청 매칭 모듈(124-4)은 추천 사용자 결정 모듈(124-2)에 의해 결정된 추천 사용자와 특정 사용자를 매칭하는 기능을 수행할 수 있다. 예를 들어, 특정 사용자로부터 추천 사용자와 공동 시청을 위한 사용자 입력이 수신되면, 공동 시청 매칭 모듈(124-4)은 특정 사용자와 추천 사용자를 연결할 수 있다. 또한, 공동 시청 매칭 모듈(124-4)은 특정 사용자와 추천 사용자와 음성 대화 또는 시각 대화를 수행하도록 통신 연결을 수행할 수 있다.
도 4는 단말 장치(200)의 시청 이력 정보에 기초하여 추천 컨텐츠를 제공하는 동작을 설명하기 위한 흐름도이다.
도 4를 참조하면, 단말 장치(200)는 컨텐츠 시청 이력 정보를 생성할 수 있다 (S405). 그리고, 단말 장치(200)는 컨텐츠 시청 이력 정보를 전자 장치(100)에 전송할 수 있다 (S410).
여기서, 전자 장치(100)는 단말 장치(200)로부터 수신된 컨텐츠 시청 이력 정보를 획득할 수 있다 (S415). 그리고, 전자 장치(100)는 컨텐츠 시청 이력 정보에 기초하여 그래프 정보를 획득할 수 있다 (S420). 그리고, 전자 장치(100)는 그래프 정보를 입력 데이터로서 그래프 신경망 모델(123)에 입력할 수 있다.
여기서, 전자 장치(100)는 그래프 정보를 그래프 신경망 모델(123)에 입력하여 컨텐츠 별 속성 정보를 획득할 수 있다 (S425). 여기서, 컨텐츠 별 속성 정보는 사용자의 시청 패턴과 관련된 정보일 수 있다. 그리고, 전자 장치(100)는 그래프 정보 및 컨텐츠 별 속성 정보에 기초하여 시청 그룹을 식별할 수 있다 (S430). 구체적으로, 전자 장치(100)는 단말 장치(200)를 이용하는 사용자가 어느 시청 그룹에 속하는지 판단할 수 있다. 여기서, 시청 그룹은 기 설정된 적어도 두 개의 그룹일 수 있다.
여기서, 전자 장치(100)는 시청 그룹에 대응되는 컨텐츠 정보에 기초하여 추천 컨텐츠를 식별할 수 있다 (S435). 그리고, 전자 장치(100)는 추천 컨텐츠와 관련된 정보를 단말 장치(200)에 전송할 수 있다 (S440). 여기서, 추천 컨텐츠와 관련된 정보는 추천 컨텐츠의 세부 정보를 의미할 수 있다. 예를 들어, 추천 컨텐츠와 관련된 정보는 이름, 재생 시간, 썸네일 이미지 중 적어도 하나를 포함할 수 있다.
여기서, 단말 장치(200)는 전자 장치(100)로부터 추천 컨텐츠와 관련된 정보를 수신할 수 있다. 그리고, 단말 장치(200)는 전자 장치(100)로부터 수신된 추천 컨텐츠와 관련된 정보를 표시할 수 있다 (S445). 그리고, 단말 장치(200)는 추천 컨텐츠를 선택하기 위한 사용자 입력을 수신하는지 여부를 식별할 수 있다 (S450). 추천 컨텐츠를 선택하기 위한 사용자 입력이 수신되지 않으면 (S450-N), 단말 장치(200)는 반복적으로 컨텐츠 시청 이력 정보를 생성할 수 있다.
한편, 추천 컨텐츠를 선택하기 위한 사용자 입력이 수신되면 (S450-Y), 단말 장치(200)는 추천 컨텐츠를 요청하는 신호를 생성하여 전자 장치(100)에 전송할 수 있다 (S455).
그리고, 전자 장치(100)는 단말 장치(200)로부터 전송된 추천 컨텐츠 요청 신호에 응답하여 추천 컨텐츠를 단말 장치(200)에 전송할 수 있다 (S460).
여기서, 단말 장치(200)는 전자 장치(100)로부터 수신된 추천 컨텐츠를 표시할 수 있다 (S465). 결과적으로, 단말 장치(200)는 컨텐츠 시청 이력 정보에 기초하여 추천 컨텐츠를 표시함으로써 사용자에게 적합한 컨텐츠를 자동으로 제공할 수 있다.
도 5는 그래프 정보를 설명하기 위한 도면이다.
도 5의 실시 예(510)를 참조하면, 시간 순서를 갖는 데이터는 복수의 노드(또는 아이템)을 가질 수 있다. 여기서, v1, v2, v3, v4, v5 각각은 하나의 노드를 의미할 수 있다. 실시 예(510)는 v1,v2,v1,v3,v4,v5 순서 정보를 나타낼 수 있다.
도 5의 실시 예(520)는 실시 예(510)와 동일하게 v1,v2,v1,v3,v4,v5 순서 정보를 나타낼 수 있다. 실시 예(520)는 실시 예(510)와 달리 동일한 아이템이 하나의 노드로 표시될 수 있다. 실시 예(520)에서는 v1이 하나의 노드로 구현되지만, 실시 예(510)에서는 v1이 각각의 노드로 구현될 수 있다.
또한, 노드(521)는 v1을 나타낼 수 있고, 노드(522)는 v2를 나타낼 수 있다. 엣지(523)는 노드(521) 및 노드(522) 간 연결 관계를 나타낼 수 있다. 여기서, 엣지(523)는 노드(521)에서 노드(522)로 향함을 나타낼 수 있으며, 노드(521)-노드(522)의 순서를 나타낼 수 있다.
예를 들어, v1,v2,v1,v3,v4,v5은 컨텐츠를 나타낼 수 있으며, 순서 정보는 시청 순서를 나타낼 수 있다. 도5의 실시 예(510, 520)는 제1 컨텐츠(v1), 제2 컨텐츠(v2), 제1 컨텐츠(v1), 제3 컨텐츠(v3), 제4 컨텐츠(v4), 제5 컨텐츠(v5)를 순서대로 시청하였음을 나타내는 그래프 정보일 수 있다.
도 6은 그래프 신경망 모델(123)을 설명하기 위한 도면이다.
도 6을 참조하면, 그래프 신경망 모델(123)은 그래프 정보를 입력 데이터(610)로 획득할 수 있다. 그래프 신경망 모델(123)은 입력 데이터인 그래프 정보에 기초하여 아이템 임베딩(621)을 획득할 수 있다. 아이템 임베딩(621)은 복수의 노드 각각의 세부 정보가 벡터로 정의되는 데이터를 의미할 수 있다. 여기서, 아이템 임베딩(621)에 포함된 각 노드의 데이터 중 적어도 하나가 어텐션 네트워크(622)에 전송될 수 있다.
여기서, 어텐션 네트워크(622)는 아이템 임베딩(621)에 포함된 각 노드의 데이터 또는 아이템 임베딩(621)을 대표하는 데이터 중 적어도 하나에 기초하여 세션 임베딩(623)을 획득할 수 있다. 여기서, 세션 임베딩(623)은 컨텐츠 별 속성 정보를 의미할 수 있다. 여기서, 어텐션 네트워크(622)는 특정 아이템(또는 노드 또는 가중치)에 가중치를 적용하는 동작을 수행할 수 있다. 어텐션 네트워크(622)는 시간 순서에 따라 아이템(또는 모드)에 서로 다른 가중치를 적용할 수 있다. 예를 들어, 어텐션 네트워크(622)는 마지막에 시청한 아이템(또는 노드 또는 컨텐츠)에 가장 높은 가중치를 적용할 수 있다.
여기서, 그룹 네트워크(624)는 아이템 임베딩(621)에 기초하여 특정 사용자의 컨텐츠 시청 이력 정보가 기 설정된 복수의 시청 그룹 중 어느 시청 그룹에 속하는지 식별할 수 있다. 그리고, 복수의 사용자에 대한 컨텐츠 시청 이력 정보를 획득하여 복수의 사용자 각각이 어느 시청 그룹에 속하는지 식별할 수 있다. 그리고, 그룹 네트워크(624)는 시청 그룹을 종합하여 시청 그룹 별 가중치 정보를 생성할 수 있다. 여기서, 그룹 네트워크(624)는 도3의 그룹 식별 모듈(123-3)을 포함할 수 있다.
여기서, 리니어 트랜스폼 레이어(626)은 세션 임베딩(623) 및 가중치 정보(625)를 결합하여 결합 데이터를 생성할 수 있다.
여기서, 소프트 맥스 레이어(627)는 리니어 트랜스폼 레이어(626)에 의하여 결합된 결합 데이터를 이용하여 기 정의된 출력 데이터(630)를 생성할 수 있다. 여기서, 출력 데이터(630)는 복수의 노드 각각에 대한 확률값을 포함할 수 있다.
예를 들어, 그래프 신경망 모델(123)은 v1, v2, v1, v3, v4, v5 순서의 그래프 정보를 입력 받아, v5 이후에 선택이 예측되는 노드(v1, v2, v3, v4, v5)의 예측 확률값을 출력할 수 있다. 여기서, 출력 데이터가 v1 내지 v5로 기재하였지만, 이는 설명의 편의를 위한 것이며, 출력 데이터는 기 저장된 복수의 노드(v1 내지 vn) 각각에 대한 예측 확률값을 포함할 수 있다.
구체적으로, 그래프 신경망 모델(123)은 제1 컨텐츠(v1), 제2 컨텐츠(v2), 제1 컨텐츠(v1), 제3 컨텐츠(v3), 제4 컨텐츠(v4), 제5 컨텐츠(v5)를 순서대로 시청하였음을 나타내는 그래프 정보에 기초하여, 다음에 시청할 컨텐츠를 예측하는 예측 확률 값을 포함하는 출력 데이터를 생성할 수 있다. 여기서, 출력 데이터는 제1 컨텐츠(v1) 내지 제5 컨텐츠(v5) 이외에 기 저장된 복수의 컨텐츠 각각에 대한 예측 확률값을 더 포함할 수 있다.
도 7은 시청 그룹 식별 동작을 설명하기 위한 도면이다.
도 7을 참조하면, 전자 장치(100)는 복수의 사용자가 어느 시청 그룹에 속하는지 판단하고, 복수의 시청 그룹 별 가중치 정보를 획득할 수 있다.
표(710)는 복수의 컨텐츠(v1 내지 v5) 각각이 어떤 데이터인지 나타낸다. 제1 컨텐츠(v1)는 뉴스A이고, 제2 컨텐츠(v2)는 뉴스B이고, 제3 컨텐츠(v3)는 스포츠 A이고, 제4 컨텐츠(v4)는 스포츠 B이고, 제5 컨텐츠(v5)는 드라마A일 수 있다.
표(720)는 기 설정된 복수의 시청 그룹을 나타낸다. 시스템 관리자(전자 장치(100)를 제어하는 관리자)에 의하여 복수의 그룹이 정의될 수 있다. 제1 그룹은 오전에 스포츠를 주로 시청하는 그룹이고, 제2 그룹은 오전에 드라마를 주로 시청하는 그룹이고, 제3 그룹은 오후에 뉴스를 주로 시청하는 그룹으로 정의될 수 있다.
실시 예(730)는 전자 장치(100)가 복수의 사용자 별 컨텐츠 시청 이력 정보에 기초하여 북수의 사용자별 시청 그룹을 식별하는 동작을 나타낸다. 제1 사용자(user 1)가 제1 컨텐츠(v1), 제2 컨텐츠(v2), 제1 컨텐츠(v1) 순서로 시청하였음을 나타내는 컨텐츠 시청 이력 정보가 획득되면, 전자 장치(100)는 제1 사용자가 제3 그룹에 해당함을 식별할 수 있다.
또한, 제2 사용자(user 2)가 제1 컨텐츠(v1), 제3 컨텐츠(v3), 제1 컨텐츠(v1) 순서로 시청하였음을 나타내는 컨텐츠 시청 이력 정보가 획득되면, 전자 장치(100)는 제2 사용자가 제3 그룹에 해당함을 식별할 수 있다.
또한, 제3 사용자(user 3)가 제2 컨텐츠(v2), 제3 컨텐츠(v3), 제4 컨텐츠(v4) 순서로 시청하였음을 나타내는 컨텐츠 시청 이력 정보가 획득되면, 전자 장치(100)는 제3 사용자가 제2 그룹에 해당함을 식별할 수 있다.
또한, 제4 사용자(user 4)가 제5 컨텐츠(v5), 제2 컨텐츠(v2), 제5 컨텐츠(v5) 순서로 시청하였음을 나타내는 컨텐츠 시청 이력 정보가 획득되면, 전자 장치(100)는 제4 사용자가 제1 그룹에 해당함을 식별할 수 있다.
그리고, 전자 장치(100)는 복수의 사용자(제1 사용자 내지 제4 사용자)에 대응되는 시청 그룹 정보에 기초하여 시청 그룹 별 가중치 정보(740)를 획득할 수 있다. 4명의 사용자 중 제1 그룹이 1명, 제2 그룹이 1명, 제3 그룹이 2명이므로, 전자 장치(100)는 제1 그룹의 가중치를 0.25, 제2 그룹의 가중치를 0.25, 제3 그룹의 가중치를 0.5로 결정할 수 있다. 가중치를 획득하는 계산 동작을 일 실시 예에 해당하며 다양한 방식이 적용될 수 있다. 예를 들어, 도 7의 설명에서는 가중치의 합이 1인 것으로 설명하였지만, 실제 구현 예에서는 가중치의 합이 1을 초과할 수 있다. 이와 관련된 예시는 도 9에서 기재한다.
도 8은 시청 그룹 식별 동작의 구체적인 예시를 설명하기 위한 도면이다.
도 8을 참조하면, 전자 장치(100)는 대표값을 이용하여 사용자의 시청 그룹을 식별할 수 있다. 구체적으로, 전자 장치(100)는 제1 사용자(user 1)가 제1 컨텐츠(v1), 제2 컨텐츠(v2), 제1 컨텐츠(v1) 순서로 시청하였음을 나타내는 컨텐츠 시청 이력 정보(810)를 획득할 수 있다. 그리고, 전자 장치(100)는 제1 사용자의 컨텐츠 시청 이력 정보(810)에 대응되는 대표값(820)을 획득할 수 있다.
여기서, 전자 장치(100)는 시청 그룹 별 대표값 정보(830)를 기 저장하고 있을 수 있다. 그리고, 전자 장치(100)는 제1 사용자의 컨텐츠 시청 이력 정보(810)에 대응되는 대표값(820) 및 시청 그룹 별 대표값 정보(830)를 비교하여 유사도를 획득할 수 있다. 그리고, 전자 장치(100)는 획득되는 유사도에 기초하여 제1 사용자가 어느 시청 그룹에 속하는지 식별할 수 있다. 도 8의 실시 예에서는 전자 장치(100)는 제1 사용자가 제3 그룹(840)에 속하는 것으로 식별할 수 있다.
도 9는 가중치의 변경에 따라 출력 데이터가 달라지는 동작을 설명하기 위한 도면이다.
도 9를 참조하면, 전자 장치(100)는 복수의 시청 그룹 별 가중치가 달라질 때마다 상이한 출력 데이터를 획득할 수 있다.
실시 예(910)에서, 제1 그룹에 대한 가중치가 0.31이고, 제2 그룹에 대한 가중치는 0.76이고, 제3 그룹에 대한 가중치가 0.11일 수 있다. 시청 그룹 별 가중치에 기초하여 전자 장치(100)는 컨텐츠 별 예측 정보를 획득할 수 있다. 여기서, 컨텐츠 별 예측 정보는 제1 컨텐츠를 시청할 확률값(0.14), 제2 컨텐츠를 시청할 확률값(0.51), 제3 컨텐츠를 시청할 확률값(0.03), 제4 컨텐츠를 시청할 확률값(0.27), 제5 컨텐츠를 시청할 확률값(0.66)을 포함할 수 있다. 여기서, 전자 장치(100)는 컨텐츠 별 예측 정보에 기초하여 예측 확률값이 가장 높은 제5 컨텐츠(v5)를 추천 컨텐츠로 결정할 수 있다.
실시 예(920)에서, 제1 그룹에 대한 가중치가 0.21이고, 제2 그룹에 대한 가중치는 0.66이고, 제3 그룹에 대한 가중치가 0.91일 수 있다. 시청 그룹 별 가중치에 기초하여 전자 장치(100)는 컨텐츠 별 예측 정보를 획득할 수 있다. 여기서, 컨텐츠 별 예측 정보는 제1 컨텐츠를 시청할 확률값(0.14), 제2 컨텐츠를 시청할 확률값(0.21), 제3 컨텐츠를 시청할 확률값(0.13), 제4 컨텐츠를 시청할 확률값(0.60), 제5 컨텐츠를 시청할 확률값(0.66)을 포함할 수 있다. 여기서, 전자 장치(100)는 컨텐츠 별 예측 정보에 기초하여 예측 확률값이 임계값(예를 들어, 0.6) 이상인 제4 컨텐츠(v4), 제5 컨텐츠(v5)를 추천 컨텐츠로 결정할 수 있다.
실시 예(930)에서, 제1 그룹에 대한 가중치가 0.01이고, 제2 그룹에 대한 가중치는 0.84이고, 제3 그룹에 대한 가중치가 0.21일 수 있다. 시청 그룹 별 가중치에 기초하여 전자 장치(100)는 컨텐츠 별 예측 정보를 획득할 수 있다. 여기서, 컨텐츠 별 예측 정보는 제1 컨텐츠를 시청할 확률값(0.09), 제2 컨텐츠를 시청할 확률값(0.51), 제3 컨텐츠를 시청할 확률값(0.07), 제4 컨텐츠를 시청할 확률값(0.60), 제5 컨텐츠를 시청할 확률값(0.73)을 포함할 수 있다. 여기서, 전자 장치(100)는 컨텐츠 별 예측 정보에 기초하여 예측 확률값이 가장 높은 임계 개수의 컨텐츠인 제2 컨텐츠(v2), 제4 컨텐츠(v4), 제5 컨텐츠(v5)를 추천 컨텐츠로 결정할 수 있다.
일 예로, 전자 장치(100)는 복수의 컨텐츠 중 가장 예측 확률값이 높은 컨텐츠를 추천 컨텐츠로 결정할 수 있다. 이와 관련된 동작은 실시 예(910)에 기재하였다.
다른 예로, 전자 장치(100)는 복수의 컨텐츠 중 예측 확률값이 임계값 이상인 컨텐츠를 추천 컨텐츠로 결정할 수 있다. 이와 관련된 동작은 실시 예(920)에 기재하였다.
또 다른 예로, 전자 장치(100)는 복수의 컨텐츠 중 예측 확률값이 높은 상위 임계 개수(예를 들어, 3개)의 컨텐츠를 추천 컨텐츠로 결정할 수 있다. 이와 관련된 동작은 실시 예(930)에 기재하였다.
도 10은 시청 그룹을 정의하는 실시 예를 설명하기 위한 도면이다.
도 10의 실시 예(1010)는 복수의 시청 그룹이 중복되지 않도록 정의되는 그룹을 나타낸다. 예를 들어, 제1 그룹은 오전에 스포츠를 시청하는 그룹이고, 제2 그룹은 오전에 드라마를 시청하는 그룹이고, 제3 그룹은 오후에 뉴스를 시청하는 그룹을 나타낼 수 있다.
도 10의 실시 예(1020)는 일부 시청 그룹이 중복되도록 정의되는 그룹을 나타낸다. 예를 들어, 제1 그룹은 오전에 스포츠를 시청하는 그룹이고, 제2 그룹은 월요일에 드라마를 시청하는 그룹이고, 제3 그룹은 드라마 및 뉴스를 시청하는 그룹일 수 있다.
도 11은 그래프 신경망 모델의 학습 동작을 설명하기 위한 도면이다.
도 11을 참조하면, 전자 장치(100)는 컨텐츠 시청 이력 정보를 획득할 수 있다 (S1105). 그리고, 전자 장치(100)는 컨텐츠 시청 이력 정보에 기초하여 그래프 정보를 획득할 수 있다 (S1110). 여기서, 그래프 정보를 획득하는 동작은 그래프 신경망 모델(123)의 입력 데이터를 획득하기 위한 데이터 전처리 동작일 수 있다.
또한, 전자 장치(100)는 그래프 신경망 모델(123)을 이용하여 딥러닝 네트워크 학습 동작을 수행할 수 있다 (S1115). 구체적으로, 전자 장치(100)는 그래프 정보에 기초하여 시청 그룹을 식별할 수 있다 (S1120). 그리고, 전자 장치(100)는 기 저장된 시청 그룹 별 가중치 정보 및 그래프 정보에 기초하여 컨텐츠 별 예측 정보를 획득할 수 있다. 그리고, 전자 장치(100)는 컨텐츠 별 예측 정보 및 실제 학습 데이터를 비교하여 컨텐츠 예측 손실값을 계산할 수 있다 (S1130). 그리고, 전자 장치(100)는 손실값에 기초하여 딥러닝 니트워크 학습 동작에서 이용되는 적어도 하나의 파라미터를 변경할 수 있다. 여기서, 전자 장치(100)는 일정 학습 동작을 완료하고 최종적으로 그래프 신경망 모델(123)에 이용되는 파라미터를 확정할 수 있다.
도 12는 복수의 사용자 별 컨텐츠 별 예측 정보를 설명하기 위한 도면이다.
도 12를 참조하면, 표(1210)는 복수의 사용자가 시간에 따라 예측되는 컨텐츠 별 예측 정보를 나타낸다. 제1 시간(t1)에는 제1 사용자(user1)가 제1 컨텐츠(v1)를 시청할 예측 확률값이 0.1이고, 제2 컨텐츠(v2)를 시청할 예측 확률값이 0.2이고, 제3 컨텐츠(v3)를 시청할 확률값이 0.1이고, 제4 컨텐츠를 시청할 확률값이 0.2이고 제5 컨텐츠(v5)를 시청할 확률값이 0.5일 수 있다.
제1 사용자에 대한 제2시간(t2), 제3시간(t3)에 대한 설명 및 제2 사용자 및 제3 사용자에 대한 설명은 생략한다.
표(1210)를 참조하면, 전자 장치(100)는 제1 사용자 및 제3 사용자가 제1 시간(t1) 내지 제3 시간(t3)에 모두 제5 컨텐츠(v5)를 시청하였음을 식별할 수 있다. 그리고, 전자 장치(100)는 제1 사용자 및 제3 사용자를 동일한 시청 그룹으로 식별할 수 있다.
도 13은 추천 사용자의 제공 동작 및 추천 사용자의 선택 동작을 설명하기 위한 흐름도이다.
도 13을 참조하면, 전자 장치(100)는 사용자에게 컨텐츠를 제공할 수 있다 (S1305). 구체적으로, 전자 장치(100)가 서버이고 단말 장치(200)가 디스플레이를 포함하는 경우, 전자 장치(100)는 컨텐츠를 단말 장치(200)에 전송하고, 단말 장치(200)는 전자 장치(100)로부터 수신된 컨텐츠를 디스플레이에 표시할 수 있다.
여기서, 전자 장치(100)는 공동 시청을 위한 이벤트가 식별되는지 판단할 수 있다 (S1310). 공동 시청을 위한 이벤트는 추천 컨텐츠를 제공하는 이벤트, 공동 시청을 위한 사용자 명령이 수신된 이벤트, 현재 시청 중인 컨텐츠가 종료되는 이벤트 또는 새로운 컨텐츠를 시청하는 사용자 입력이 수신된 이벤트 중 적어도 하나를 포함할 수 있다.
공동 시청을 위한 이벤트가 식별되지 않으면 (S1310-N)는, 전자 장치(100)는 반복적으로 컨텐츠 제공 동작을 수행할 수 있다. 공동 시청을 위한 이벤트가 식별되면 (S1310-Y), 전자 장치(100)는 추천 사용자를 제공할 수 있다 (S1315). 그리고, 전자 장치(100)는 추천 사용자와 공동 시청을 요청하는 사용자 입력이 수신되었는지 여부를 식별할 수 있다 (S1320).
추천 사용자와 공동 시청을 요청하는 사용자 입력이 수신되지 않으면 (S1320-N), 전자 장치(100)는 추천 사용자의 비선택 결과를 저장할 수 있다 (S1325). 그리고, 전자 장치(100)는 반복적으로 컨텐츠 제공 동작을 수행할 수 있다. 여기서, 추천 사용자의 비선택 결과는 전자 장치(100)가 추천 사용자를 제공하였지만, 사용자가 이를 선택하지 않았다는 내용을 포함할 수 있다. 그리고, 전자 장치(100)는 이러한 결과를 저장하여 동일한 추천 사용자를 제공하는 확률을 낮추도록 그래프 신경망 모델(123)을 학습시킬 수 있다.
추천 사용자와 공동 시청을 요청하는 사용자 입력이 수신되면 (S1320-Y), 전자 장치(100)는 추천 사용자와 공동 시청 기능을 제공할 수 있다 (S1330). 그리고, 전자 장치(100)는 추천 사용자의 선택 결과를 저장할 수 있다 (S1335). 여기서, 추천 사용자의 선택 결과는 전자 장치(100)가 추천 사용자를 제공한 이후, 사용자가 이를 선택하였다는 내용을 포함할 수 있다. 그리고, 전자 장치(100)는 이러한 결과를 저장하여 동일한 추천 사용자를 제공하는 확률을 높이도록 그래프 신경망 모델(123)을 학습시킬 수 있다.
도 14는 공동 시청을 위해 서로 다른 사용자가 매칭되는 동작을 설명하기 위한 흐름도이다.
도 14를 참조하면, 전자 장치(100)는 제1 시스템(1410) 및 제2 시스템(1420)을 포함할 수 있다. 여기서, 제1 시스템(1410)은 제1 사용자의 정보를 처리하는 시스템이며, 제2 시스템(1420)은 제2 사용자의 정보를 처리하는 시스템일 수 있다. 즉, 전자 장치(100)는 사용자 별로 별도의 시스템을 이용하여 정보를 처리할 수 있다.
제1 시스템(1410)은 제1 사용자의 컨텐츠 시청 이력 정보를 획득할 수 있다 (S1411). 그리고, 제1 시스템(1410)은 제1 사용자의 그래프 정보를 획득할 수 있다 (S1412). 그리고, 제1 시스템(1410)은 제1 사용자의 시청 그룹을 식별할 수 있다 (S1413). 여기서, 제1 사용자의 시청 그룹이 식별되지 않으면 (S1413-N), 전자 장치(100)는 반복적으로 제1 사용자의 컨텐츠 시청 이력 정보를 획득할 수 있다. 여기서, 제1 사용자의 시청 그룹이 식별되면 (S1413-Y), 전자 장치(100)는 추천 사용자를 제공하고 다른 사용자와 매칭 동작을 수행할 수 있다 (S1414).
제2 시스템(1420)은 제2 사용자의 컨텐츠 시청 이력 정보를 획득할 수 있다 (S1421). 그리고, 제2 시스템(1420)은 제2 사용자의 그래프 정보를 획득할 수 있다 (S1422). 그리고, 제2 시스템(1420)은 제2 사용자의 시청 그룹을 식별할 수 있다 (S1423). 여기서, 제2 사용자의 시청 그룹이 식별되지 않으면 (S1423-N), 전자 장치(100)는 반복적으로 제2 사용자의 컨텐츠 시청 이력 정보를 획득할 수 있다. 여기서, 제2 사용자의 시청 그룹이 식별되면 (S1423-Y), 전자 장치(100)는 추천 사용자를 제공하고 다른 사용자와 매칭 동작을 수행할 수 있다 (S1424).
여기서, 제1 사용자와 제2 사용자가 동일한 그룹에 속한다고 가정한다. 전자 장치(100)는 제1 사용자에게 제2 사용자를 추천할 수 있으며 제2 사용자에게 제1 사용자를 추천할 수 있다. 그리고, 전자 장치(100)는 제1 사용자의 선택 및 제2 사용자의 선택에 기초하여 제1 사용자 및 제2 사용자가 공동 시청할 수 있는 기능을 제공할 수 있다.
도 15는 일 실시 예에 따라, 단말 장치(200)의 시청 이력 정보에 기초하여 추천 컨텐츠 및 추천 사용자 정보를 제공하는 동작을 설명하기 위한 흐름도이다.
도 15를 참조하면, 단말 장치(200)는 컨텐츠 시청 이력 정보를 생성할 수 있다 (S1505). 그리고, 단말 장치(200)는 컨텐츠 시청 이력 정보를 전자 장치(100)에 전송할 수 있다 (S1510).
여기서, 전자 장치(100)는 단말 장치(200)로부터 수신된 컨텐츠 시청 이력 정보에 기초하여 추천 컨텐츠를 식별할 수 있다. 이와 관련된 동작은 도 4의 S415 내지 S435 단계에서 기재하였으므로 중복 설명을 생략한다.
여기서, 전자 장치(100)는 시청 그룹에 대응되는 컨텐츠 정보에 기초하여 추천 컨텐츠를 식별할 수 있다 (S1515). 그리고, 전자 장치(100)는 시청 그룹에 대응되는 추천 사용자 정보를 식별할 수 있다 (S1520). 여기서, 추천 사용자 정보는 추천 컨텐츠를 공동으로 시청하기 위한 사용자 정보를 의미할 수 있다. 그리고, 전자 장치(100)는 추천 컨텐츠와 관련된 정보 및 추천 사용자 정보를 함께 단말 장치(200)에 전송할 수 있다 (S1525).
여기서, 단말 장치(200)는 전자 장치(100)로부터 추천 컨텐츠와 관련된 정보 및 추천 사용자 정보를 함께 수신할 수 있다. 그리고, 단말 장치(200)는 추천 컨텐츠와 관련된 정보를 우선하여 표시할 수 있다 (S1530). 그리고, 단말 장치(200)는 추천 컨텐츠를 선택하기 위한 사용자 입력이 수신되는지 여부를 식별할 수 있다 (S1535). 추천 컨텐츠를 선택하기 위한 사용자 입력이 수신되지 않으면 (S1535-N), 단말 장치(200)는 반복적으로 컨텐츠 시청 이력 정보를 생성할 수 있다.
한편, 추천 컨텐츠를 선택하기 위한 사용자 입력이 수신되면 (S1535-Y), 단말 장치(200)는 추천 컨텐츠를 요청하기 위한 신호를 생성하여 전자 장치(100)에 전송할 수 있다 (S1540).
여기서, 전자 장치(100)는 전자 장치(100)로부터 수신된 추천 컨텐츠를 요청하기 위한 신호에 응답하여 추천 컨텐츠를 단말 장치(200)에 전송할 수 있다 (S1545).
여기서, 단말 장치(200)는 전자 장치(100)로부터 수신된 추천 컨텐츠를 표시할 수 있다 (S1550). 그리고, 단말 장치(200)는 추천 사용자를 선택하기 위한 사용자 입력이 수신되는지 여부를 식별할 수 있다 (S1555). 추천 사용자를 선택하기 위한 사용자 입력이 수신되지 않으면 (S1555-N), 단말 장치(200)는 추천 컨텐츠 만을 표시한 상태에서 반복적으로 컨텐츠 시청 이력 정보를 생성할 수 있다.
한편, 추천 사용자를 선택하기 위한 사용자 입력이 수신되면 (S1555-Y), 단말 장치(200)는 추천 사용자 매칭을 요청하기 위한 신호를 생성하여 전자 장치(100)에 전송할 수 있다 (S1560).
여기서, 전자 장치(100)는 단말 장치(200)로부터 수신된 추천 사용자 매칭을 요청하기 위한 신호에 응답하여 공동 시청 UI를 생성할 수 있다. 구체적으로, 전자 장치(100)는 단말 장치(200)와 선택된 추천 사용자의 단말 장치를 매칭함으로써 공동 시청 UI를 생성할 수 있다 (S1565). 그리고, 전자 장치(100)는 공동 시청 UI를 단말 장치(200)에 전송할 수 있다 (S1570).
여기서, 단말 장치(200)는 전자 장치(100)로부터 수신된 공동 시청 UI를 표시할 수 있다 (S1575). 단말 장치(200)의 사용자는 추천 컨텐츠 및 추천 사용자를 선택함으로써 공동 시청 서비스를 제공받을 수 있다.
도 16은 다른 실시 예에 따라, 단말 장치(200)의 시청 이력 정보에 기초하여 추천 컨텐츠 및 추천 사용자 정보를 제공하는 동작을 설명하기 위한 흐름도이다.
도 16을 참조하면, 단말 장치(200)는 컨텐츠 시청 이력 정보를 생성할 수 있다 (S1605). 그리고, 단말 장치(200)는 컨텐츠 시청 이력 정보를 전자 장치(100)에 전송할 수 있다 (S1610).
여기서, 전자 장치(100)는 단말 장치(200)로부터 수신한 컨텐츠 시청 이력 정보에 기초하여 추천 컨텐츠를 식별할 수 있다. 이와 관련된 동작은 도 4의 S415 내지 S435 단계에서 기재하였으므로 중복 설명을 생략한다.
여기서, 전자 장치(100)는 시청 그룹에 대응되는 추천 사용자 정보를 식별할 수 있다 (S1620). 그리고, 전자 장치(100)는 추천 컨텐츠와 관련된 정보 및 추천 사용자 정보를 단말 장치(200)에 전송할 수 있다 (S1625).
여기서, 단말 장치(200)는 전자 장치(100)로부터 수신된 추천 컨텐츠와 관련된 정보 및 추천 사용자 정보를 표시할 수 있다 (S1630). 그리고, 단말 장치(200)는 추천 컨텐츠를 선택하기 위한 사용자 입력이 수신되었는지 여부를 식별할 수 있다 (S1635). 추천 컨텐츠를 선택하기 위한 사용자 입력이 수신되지 않으면 (S1635-N), 단말 장치(200)는 반복적으로 컨텐츠 시청 이력 정보를 생성할 수 있다.
추천 컨텐츠를 선택하기 위한 사용자 입력이 수신되면 (S1635-Y), 단말 장치(200)는 추천 사용자를 선택하기 위한 사용자 입력이 수신되었는지 식별할 수 있다 (S1640).
추천 사용자를 선택하기 위한 사용자 입력이 수신되지 않으면 (S1640-N), 단말 장치(200)는 추천 컨텐츠 요청 신호를 전자 장치(100)에 전송할 수 있다 (S1650). 그리고, 전자 장치(100)는 전자 장치(100)로부터 전송된 추천 컨텐츠 요청 신호에 응답하여 추천 컨텐츠를 단말 장치(200)에 전송할 수 있다 (S1651). 그리고, 단말 장치(200)는 전자 장치(100)로부터 수신된 추천 컨텐츠를 표시할 수 있다 (S1652).
한편, 추천 사용자를 선택하기 위한 사용자 입력이 수신되면 (S1640-Y), 단말 장치(200)는 추천 컨텐츠 요청 신호 및 추천 사용자 매칭 요청 신호를 전자 장치(100)에 전송할 수 있다 (S1660). 그리고, 전자 장치(100)는 단말 장치(200)에서 요청한 신호들에 응답하여 단말 장치(200)와 추천 사용자의 단말 장치를 매칭하여 공동 시청 UI를 생성할 수 있다 (S1661). 그리고, 전자 장치(100)는 추천 컨텐츠 및 공동 시청 UI를 단말 장치(200)에 전송할 수 있다 (S1662). 그리고, 단말 장치(200)는 전자 장치(100)로부터 수신된 추천 컨텐츠 및 공동 시청 UI를 표시할 수 있다 (S1663).
도 17은 추천 컨텐츠 및 공동 시청 기능을 가이드하기 위한 UI를 설명하기 위한 도면이다.
도 17을 참조하면, 전자 장치(100)는 추천 컨텐츠 및 공동 시청 기능을 가이드하는 UI(1700)를 생성할 수 있다.
여기서, UI(1700)는 적어도 하나의 추천 컨텐츠를 선택하도록 가이드하는 UI(1710), 공동 시청 기능의 이용 여부를 질의하는 UI(1720) 또는 사용자의 최종 선택을 확정하는 UI(1730) 중 적어도 하나를 포함할 수 있다.
전자 장치(100)는 UI(1700)를 생성하여 단말 장치(200)에 전송할 수 있으며, 단말 장치(200)는 수신된 UI(1700)를 표시할 수 있다. 그리고, 단말 장치(200)는 UI(1700)를 통해 사용자 입력이 수신되면, 사용자 입력에 대응되는 정보를 전자 장치(100)에 전송할 수 있다.
도 18은 추천 사용자를 제공하고 추천 사용자의 선택을 가이드하기 위한 UI를 설명하기 위한 도면이다.
도 18을 참조하면, 전자 장치(100)는 공동 시청을 함께할 추천 사용자의 선택을 가이드하는 UI(1800)를 생성할 수 있다.
여기서, UI(1800)는 공동 시청을 위한 사용자를 선택하라는 텍스트 정보(1810), 공동 시청 컨텐츠와 관련된 정보를 포함하는 UI(1820), 등록된 복수의 사용자 중 추천 사용자를 포함하는 UI(1830) 또는 미등록된 복수의 사용자 중 추천 사용자를 포함하는 UI(1840) 중 적어도 하나를 포함할 수 있다.
전자 장치(100)는 UI(1800)를 생성하여 단말 장치(200)에 전송할 수 있으며, 단말 장치(200)는 수신된 UI(1800)를 표시할 수 있다. 그리고, 단말 장치(200)는 UI(1800)를 통해 사용자 입력이 수신되면, 사용자 입력에 대응되는 정보를 전자 장치(100)에 전송할 수 있다.
도 19는 공동 시청 일정의 등록을 가이드하기 위한 UI를 설명하기 위한 도면이다.
도 19를 참조하면, 전자 장치(100)는 공동 시청 일정의 등록을 가이드하는 UI(1900)를 생성할 수 있다.
여기서, UI(1900)는 공동 시청 일정의 등록을 선택하도록 가이드하는 텍스트 정보(1910), 공동 시청 컨텐츠와 관련된 정보를 포함하는 UI(1920) 또는 공동 시청 일정의 등록을 선택 여부를 질의하는 UI(1930) 중 적어도 하나를 포함할 수 있다.
전자 장치(100)는 UI(1900)를 생성하여 단말 장치(200)에 전송할 수 있으며, 단말 장치(200)는 수신된 UI(1900)를 표시할 수 있다. 그리고, 단말 장치(200)는 UI(1900)를 통해 사용자 입력이 수신되면, 사용자 입력에 대응되는 정보를 전자 장치(100)에 전송할 수 있다.
도 20은 공동 시청 기능 중 대화 기능을 이용하기 위해 단말 장치(200) 및 디바이스가 연결되는 동작을 설명하기 위한 흐름도이다.
도 20을 참조하면, 단말 장치(200)는 사용자 입력을 수신하기 위한 디바이스 목록을 저장할 수 있다 (S2005). 그리고, 단말 장치(200)는 공동 시청을 요청하는 명령을 획득할 수 있다 (S2010). 그리고, 단말 장치(200)는 우선 순위에 따라 디바이스 연결 가능 여부를 검색할 수 있다 (S2015). 예를 들어, 단말 장치(200)는 기 저장된 디바이스 목록 중 기 설정된 우선 순위에 따라 디바이스 각각에 연결을 시도할 수 있다.
여기서, 단말 장치(200)는 하나의 검색된 디바이스와 통신 연결을 수행할 수 있다 (S2020). 그리고, 단말 장치(200)는 통신 연결된 디바이스를 통해 사용자 입력을 수신할 수 있다 (S2025). 그리고, 단말 장치(200)는 수신된 사용자 입력을 전자 장치(100)에 제공하여 공동 대화 기능을 사용자에게 제공할 수 있다 (S2030).
도 21은 단말 장치(200)와 연결되는 적어도 하나의 디바이스(301, 302, 303, 304)를 설명하기 위한 시스템도이다.
도 21을 참조하면, 시스템(2100)은 단말 장치(200) 및 사용자 입력을 수신하는 복수의 디바이스(301, 302, 303, 304)를 포함한다. 여기서, 복수의 디바이스(301, 302, 303, 304)는 사용자 입력을 수신하는 디바이스일 수 있다. 여기서, 제1 디바이스(301)는 휴대폰일 수 있고, 제2 디바이스(302)는 리모컨이고, 제3 디바이스(303)는 AI 스피커이고, 제4 디바이스(304)는 노트북일 수 있다. 사용자는 복수의 디바이스(301, 302, 303, 304)를 통해 음성 및 텍스트를 입력할 수 있고, 단말 장치(200)는 사용자의 입력을 복수의 디바이스(301, 302, 303, 304)를 통해 수신할 수 있다. 그리고, 단말 장치(200)는 수신된 사용자 입력을 전자 장치(100)에 전송할 수 있다.
도 22는 본 개시의 일 실시 예에 따른 전자 장치(100)의 제어 방법을 설명하기 위한 도면이다.
도 22를 참조하면, 전자 장치(100)의 제어 방법은 복수의 사용자 별 컨텐츠 시청 이력 정보에 기초하여 시청 컨텐츠가 시간 순으로 배열되는 복수의 사용자 별 그래프 정보를 획득하는 단계 (S2205), 복수의 사용자 별 그래프 정보를 그래프 신경망(Graph Neural Network, GNN) 모델에 입력하여 컨텐츠 별 속성 정보를 획득하는 단계 (S2210), 복수의 사용자 별 그래프 정보 및 컨텐츠 별 속성 정보에 기초하여 복수의 사용자를 복수의 시청 그룹으로 그룹핑하는 단계 (S2215) 및 복수의 시청 그룹에 대응되는 컨텐츠 정보에 기초하여 추천 컨텐츠를 제공하는 단계 (S2220)를 포함한다.
한편, 추천 컨텐츠를 제공하는 단계 (S2220)는 복수의 사용자 별 그래프 정보 및 복수의 시청 그룹 각각에 대응되는 가중치 정보에 기초하여 복수의 사용자 별 컨텐츠 별 예측 정보를 획득하고, 복수의 사용자 별 컨텐츠 별 예측 정보에 기초하여 복수의 시청 그룹에 대응되는 컨텐츠 정보를 획득하고, 획득된 컨텐츠 정보에 기초하여 추천 컨텐츠를 제공할 수 있다.
한편, 컨텐츠 별 속성 정보는 시청 패턴과 관련된 정보를 포함할 수 있다.
한편, 제어 방법은 시청 패턴과 관련된 컨텐츠 별 속성 정보에 대응되는 텍스트 및 추천 컨텐츠와 관련된 정보를 포함하는 UI(User Interface)를 제공하는 단계를 더 포함할 수 있다.
한편, 그룹핑하는 단계 (S2215)는 복수의 사용자 별 그래프 정보에 대응되는 복수의 사용자 별 대표값을 획득하고, 복수의 시청 그룹에 대응되는 복수의 대표값과 복수의 사용자 별 대표값을 비교하여 복수의 사용자를 복수의 시청 그룹으로 그룹핑할 수 있다.
한편, 제어 방법은 단말 장치(200)로부터 기 설정된 이벤트가 수신되면, 공동 시청 기능을 위한 복수의 시청 그룹에 대응되는 추천 사용자 정보를 제공하는 단계를 더 포함할 수 있다.
한편, 추천 사용자 정보를 제공하는 단계는 단말 장치(200)로부터 기 설정된 이벤트가 수신되면, 단말 장치(200)에 대응되는 시청 그룹을 식별하고, 식별된 시청 그룹에 대응되는 적어도 하나의 사용자 정보를 추천 사용자 정보로 제공할 수 있다.
한편, 제어 방법은 단말 장치(200)로부터 기 설정된 이벤트가 수신되면, 추천 컨텐츠 및 추천 사용자 정보를 포함하는 UI를 생성하고, 생성된 UI를 단말 장치(200)에 전송하는 단계를 더 포함할 수 있다.
한편, 기 설정된 이벤트는 추천 컨텐츠를 제공하는 이벤트, 공동 시청을 위한 사용자 명령이 수신된 이벤트, 현재 시청 중인 컨텐츠가 종료되는 이벤트 또는 새로운 컨텐츠를 시청하는 사용자 입력이 수신된 이벤트 중 적어도 하나를 포함할 수 있다.
한편, 그래프 신경망 모델(123)은 복수의 사용자가 시청한 적어도 하나의 시청 컨텐츠를 입력 학습 데이터로 이용하고 복수의 사용자가 적어도 하나의 시청 컨텐츠를 시청한 이후에 시청한 시청 컨텐츠를 출력 학습 데이터로 이용하여 학습된 모델일 수 있다.
한편, 도 22와 같은 전자 장치(100)의 제어 방법은 도 2 또는 도 3의 구성을 가지는 전자 장치(100) 상에서 실행될 수 있으며, 그 밖의 구성을 가지는 전자 장치 상에서도 실행될 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 설치 가능한 어플리케이션 형태로 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들은 전자 장치에 구비된 임베디드 서버, 또는 전자 장치 및 디스플레이 장치 중 적어도 하나의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장 매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.

Claims (15)

  1. 전자 장치에 있어서,
    적어도 하나의 명령을 저장하는 메모리; 및
    상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서;를 포함하며,
    상기 프로세서는,
    상기 적어도 하나의 명령어를 실행함으로써,
    복수의 사용자 별 컨텐츠 시청 이력 정보에 기초하여 시청 컨텐츠가 시간 순으로 배열되는 복수의 사용자 별 그래프 정보를 획득하고,
    상기 복수의 사용자 별 그래프 정보를 그래프 신경망(Graph Neural Network, GNN) 모델에 입력하여 컨텐츠 별 속성 정보를 획득하고,
    상기 복수의 사용자 별 그래프 정보 및 상기 컨텐츠 별 속성 정보에 기초하여 상기 복수의 사용자를 복수의 시청 그룹으로 그룹핑하고,
    상기 복수의 시청 그룹에 대응되는 컨텐츠 정보에 기초하여 추천 컨텐츠를 제공하는, 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 사용자 별 그래프 정보 및 상기 복수의 시청 그룹 각각에 대응되는 가중치 정보에 기초하여 상기 복수의 사용자 별 컨텐츠 별 예측 정보를 획득하고,
    상기 복수의 사용자 별 컨텐츠 별 예측 정보에 기초하여 상기 복수의 시청 그룹에 대응되는 컨텐츠 정보를 획득하고,
    상기 획득된 컨텐츠 정보에 기초하여 추천 컨텐츠를 제공하는, 전자 장치.
  3. 제1항에 있어서,
    상기 컨텐츠 별 속성 정보는,
    시청 패턴과 관련된 정보를 포함하는, 전자 장치.
  4. 제3항에 있어서,
    상기 프로세서는,
    시청 패턴과 관련된 상기 컨텐츠 별 속성 정보에 대응되는 텍스트 및 상기 추천 컨텐츠와 관련된 정보를 포함하는 UI(User Interface)를 제공하는, 전자 장치.
  5. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 사용자 별 그래프 정보에 대응되는 복수의 사용자 별 대표값을 획득하고,
    상기 복수의 시청 그룹에 대응되는 복수의 대표값과 상기 복수의 사용자 별 대표값을 비교하여 상기 복수의 사용자를 복수의 시청 그룹으로 그룹핑하는, 전자 장치.
  6. 제1항에 있어서,
    통신 인터페이스;를 더 포함하고,
    상기 프로세서는,
    상기 통신 인터페이스를 통해 단말 장치로부터 기 설정된 이벤트가 수신되면, 공동 시청 기능을 위한 상기 복수의 시청 그룹에 대응되는 추천 사용자 정보를 제공하는, 전자 장치.
  7. 제6항에 있어서,
    상기 프로세서는,
    상기 통신 인터페이스를 통해 단말 장치로부터 기 설정된 이벤트가 수신되면, 상기 단말 장치에 대응되는 시청 그룹을 식별하고, 상기 식별된 시청 그룹에 대응되는 적어도 하나의 사용자 정보를 추천 사용자 정보로 제공하는, 전자 장치.
  8. 제6항에 있어서,
    상기 프로세서는,
    상기 통신 인터페이스를 통해 단말 장치로부터 기 설정된 이벤트가 수신되면, 상기 추천 컨텐츠 및 상기 추천 사용자 정보를 포함하는 UI를 생성하고, 상기 생성된 UI를 상기 단말 장치에 전송하는, 전자 장치.
  9. 제6항에 있어서,
    상기 기 설정된 이벤트는,
    추천 컨텐츠를 제공하는 이벤트, 공동 시청을 위한 사용자 명령이 수신된 이벤트, 현재 시청 중인 컨텐츠가 종료되는 이벤트 또는 새로운 컨텐츠를 시청하는 사용자 입력이 수신된 이벤트 중 적어도 하나를 포함하는, 전자 장치.
  10. 제1항에 있어서,
    상기 그래프 신경망 모델은,
    복수의 사용자가 시청한 적어도 하나의 시청 컨텐츠를 입력 학습 데이터로 이용하고 복수의 사용자가 상기 적어도 하나의 시청 컨텐츠를 시청한 이후에 시청한 시청 컨텐츠를 출력 학습 데이터로 이용하여 학습된 모델인, 전자 장치.
  11. 전자 장치의 제어 방법에 있어서,
    복수의 사용자 별 컨텐츠 시청 이력 정보에 기초하여 시청 컨텐츠가 시간 순으로 배열되는 복수의 사용자 별 그래프 정보를 획득하는 단계;
    상기 복수의 사용자 별 그래프 정보를 그래프 신경망(Graph Neural Network, GNN) 모델에 입력하여 컨텐츠 별 속성 정보를 획득하는 단계;
    상기 복수의 사용자 별 그래프 정보 및 상기 컨텐츠 별 속성 정보에 기초하여 상기 복수의 사용자를 복수의 시청 그룹으로 그룹핑하는 단계; 및
    상기 복수의 시청 그룹에 대응되는 컨텐츠 정보에 기초하여 추천 컨텐츠를 제공하는 단계;를 포함하는, 제어 방법.
  12. 제11항에 있어서,
    상기 추천 컨텐츠를 제공하는 단계는,
    상기 복수의 사용자 별 그래프 정보 및 상기 복수의 시청 그룹 각각에 대응되는 가중치 정보에 기초하여 상기 복수의 사용자 별 컨텐츠 별 예측 정보를 획득하고,
    상기 복수의 사용자 별 컨텐츠 별 예측 정보에 기초하여 상기 복수의 시청 그룹에 대응되는 컨텐츠 정보를 획득하고,
    상기 획득된 컨텐츠 정보에 기초하여 추천 컨텐츠를 제공하는, 제어 방법.
  13. 제11항에 있어서,
    상기 컨텐츠 별 속성 정보는,
    시청 패턴과 관련된 정보를 포함하는, 제어 방법.
  14. 제13항에 있어서,
    상기 제어 방법은,
    시청 패턴과 관련된 상기 컨텐츠 별 속성 정보에 대응되는 텍스트 및 상기 추천 컨텐츠와 관련된 정보를 포함하는 UI(User Interface)를 제공하는 단계;를 더 포함하는, 제어 방법.
  15. 제11항에 있어서,
    상기 그룹핑하는 단계는,
    상기 복수의 사용자 별 그래프 정보에 대응되는 복수의 사용자 별 대표값을 획득하고,
    상기 복수의 시청 그룹에 대응되는 복수의 대표값과 상기 복수의 사용자 별 대표값을 비교하여 상기 복수의 사용자를 복수의 시청 그룹으로 그룹핑하는, 제어 방법.
PCT/KR2022/007406 2021-10-08 2022-05-25 전자 장치 및 그 제어 방법 WO2023058835A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/966,237 US20230110006A1 (en) 2021-10-08 2022-10-14 Electronic apparatus and controlling method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2021-0133651 2021-10-08
KR1020210133651A KR20230050590A (ko) 2021-10-08 2021-10-08 전자 장치 및 그 제어 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/966,237 Continuation US20230110006A1 (en) 2021-10-08 2022-10-14 Electronic apparatus and controlling method thereof

Publications (1)

Publication Number Publication Date
WO2023058835A1 true WO2023058835A1 (ko) 2023-04-13

Family

ID=85803532

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/007406 WO2023058835A1 (ko) 2021-10-08 2022-05-25 전자 장치 및 그 제어 방법

Country Status (2)

Country Link
KR (1) KR20230050590A (ko)
WO (1) WO2023058835A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102624926B1 (ko) * 2023-09-27 2024-01-15 노용우 소비자 기호 반영 컨텐츠 제공 및 제작 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101647364B1 (ko) * 2013-08-26 2016-08-23 네이버 주식회사 사용자 특성정보 및 상호작용 기반의 컨텐츠 추천 시스템,방법 및 그 기록매체
KR20210018384A (ko) * 2019-08-08 2021-02-17 네이버 주식회사 개인화 컨텐츠 추천을 위한 실시간 그래프기반 임베딩 구축 방법 및 시스템
KR20210051349A (ko) * 2019-10-30 2021-05-10 삼성전자주식회사 전자장치 및 그 제어방법
KR20210097432A (ko) * 2020-01-30 2021-08-09 주식회사 케이티 콘텐츠를 추천하기 위한 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101647364B1 (ko) * 2013-08-26 2016-08-23 네이버 주식회사 사용자 특성정보 및 상호작용 기반의 컨텐츠 추천 시스템,방법 및 그 기록매체
KR20210018384A (ko) * 2019-08-08 2021-02-17 네이버 주식회사 개인화 컨텐츠 추천을 위한 실시간 그래프기반 임베딩 구축 방법 및 시스템
KR20210051349A (ko) * 2019-10-30 2021-05-10 삼성전자주식회사 전자장치 및 그 제어방법
KR20210097432A (ko) * 2020-01-30 2021-08-09 주식회사 케이티 콘텐츠를 추천하기 위한 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JUNG JISUN, CHOI CHULWOONG, YEOM SUNGWOONG, KIM KYUNGBAEK: "Analysis on Research Trend of Graph Neural Network", FALL CONFERENCE OF KISM 2020, 20 November 2020 (2020-11-20), pages 1 - 4, XP093055865, Retrieved from the Internet <URL:https://manuscriptlink-society-file.s3-ap-northeast-1.amazonaws.com/sma/conference/sma2020fall/presentation/39.pdf> [retrieved on 20230620] *

Also Published As

Publication number Publication date
KR20230050590A (ko) 2023-04-17

Similar Documents

Publication Publication Date Title
WO2017099444A1 (en) Content processing apparatus, content processing method thereof, server, information providing method of server and information providing system
WO2016117836A1 (en) Apparatus and method for editing content
WO2014003283A1 (en) Display apparatus, method for controlling display apparatus, and interactive system
WO2016032021A1 (ko) 음성 명령 인식을 위한 장치 및 방법
WO2018026162A1 (en) Electronic apparatus and method of operating the same
WO2016060486A1 (en) User terminal apparatus and iris recognition method thereof
WO2015194693A1 (ko) 영상 표시 기기 및 그의 동작 방법
WO2015026058A1 (en) Method, terminal, and system for reproducing content
EP3430811A1 (en) Electronic apparatus and method of operating the same
WO2015126044A1 (ko) 이미지를 처리하기 위한 방법 및 그 전자 장치
WO2016099228A1 (en) Method of providing content and electronic apparatus performing the method
WO2015111833A1 (ko) 가상 광고 제공 장치 및 방법
WO2017131348A1 (en) Electronic apparatus and controlling method thereof
WO2014182066A1 (en) Content providing method and device
WO2018110970A1 (en) Terminal device, electronic device and control method for determining the position of searching object device
WO2020130425A1 (en) Electronic apparatus, controlling method of electronic apparatus and computer readable medium
WO2020022819A1 (en) Communication via simulated user
WO2023058835A1 (ko) 전자 장치 및 그 제어 방법
WO2019203421A1 (ko) 디스플레이 장치 및 디스플레이 장치의 제어 방법
WO2015178716A1 (en) Search method and device
WO2019135433A1 (ko) 디스플레이 장치 및 디스플레이 장치를 포함하는 시스템
WO2017146454A1 (ko) 컨텐트를 인식하는 방법 및 장치
WO2020017827A1 (ko) 전자 장치, 및 전자 장치의 제어 방법
WO2019225892A1 (en) Electronic apparatus, controlling method and computer readable medium
WO2018097504A2 (en) Electronic device and method for updating channel map thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22878658

Country of ref document: EP

Kind code of ref document: A1