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

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

Info

Publication number
KR102595508B1
KR102595508B1 KR1020180158940A KR20180158940A KR102595508B1 KR 102595508 B1 KR102595508 B1 KR 102595508B1 KR 1020180158940 A KR1020180158940 A KR 1020180158940A KR 20180158940 A KR20180158940 A KR 20180158940A KR 102595508 B1 KR102595508 B1 KR 102595508B1
Authority
KR
South Korea
Prior art keywords
user
characteristic data
users
server
electronic device
Prior art date
Application number
KR1020180158940A
Other languages
English (en)
Other versions
KR20200071327A (ko
Inventor
조건희
양기영
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020180158940A priority Critical patent/KR102595508B1/ko
Priority to US17/285,029 priority patent/US11438430B2/en
Priority to PCT/KR2019/017230 priority patent/WO2020122512A1/ko
Priority to EP19896847.1A priority patent/EP3840336B1/en
Publication of KR20200071327A publication Critical patent/KR20200071327A/ko
Application granted granted Critical
Publication of KR102595508B1 publication Critical patent/KR102595508B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2407Monitoring of transmitted content, e.g. distribution time, number of downloads
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/30Types of network names
    • H04L2101/365Application layer names, e.g. buddy names, unstructured names chosen by a user or home appliance name
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4532Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

전자장치는, 복수의 사용자특성에 관한 각 외부장치의 특성데이터를 획득하고, 획득된 특성데이터에 기초하여 복수의 외부장치를 사용자특성이 유사한 복수의 그룹으로 분류하고, 복수의 외부장치 중에서 하나 이상의 제1외부장치의 지정에 대응하여, 제1외부장치와, 복수의 그룹 중 제1외부장치가 포함된 그룹의 복수의 제2외부장치 사이에서 사용자특성의 유사도를 산출하고, 복수의 제2외부장치 중에서 유사도가 상대적으로 높은 하나 이상의 제2외부장치를 선별한다.

Description

전자장치 및 그 제어방법 {ELECTRONIC APPARATUS AND CONTROL METHOD THEREOF}
본 발명은 다수의 외부장치에 관한 데이터를 관리하고 각 외부장치에 기 설정된 서비스를 제공할 수 있는 전자장치 및 그 제어방법에 관한 것으로서, 상세하게는 다양한 외부장치의 사용자의 성향에 맞는 맞춤형 서비스를 제공함에 있어서, 특정 성향을 가진 사용자들의 외부장치들을 식별하기 위한 구조의 전자장치 및 그 제어방법에 관한 것이다.
소정의 정보를 특정 프로세스에 따라서 연산 및 처리하기 위해, 연산을 위한 CPU, 칩셋, 메모리 등의 전자부품들을 기본적으로 포함하는 전자장치는, 처리 대상이 되는 정보 또는 사용 용도가 무엇인지에 따라서 다양한 종류로 구분될 수 있다. 예를 들면, 전자장치에는 범용의 정보를 처리하는 PC나 서버 등의 정보처리장치, 영상데이터를 처리하는 영상처리장치, 오디오를 처리하는 오디오장치, 가정 내 잡무를 수행하는 생활가전 등이 있다. 영상처리장치는 처리된 영상데이터를 자체 구비한 디스플레이 패널(display panel) 상에 영상으로 표시하는 디스플레이장치로 구현될 수 있다. 이와 같은 다양한 종류의 전자장치들은 상호 통신이 가능한 서버 및 클라이언트의 역할을 각기 수행할 수 있다.
서버로 동작하는 전자장치는, 네트워크를 통해 클라이언트로 동작하는 다수의 외부장치와 통신한다. 이러한 일대 다의 통신망을 사용하여, 서버는 외부장치들에게 다양한 서비스를 제공할 수 있다. 서비스를 제공하는 예시로서, 서버는 복수의 서비스에 관한 정보를 안내하는 웹 페이지를 표시하고, 해당 웹 페이지에 접속하는 클라이언트가 원하는 서비스를 선택하면, 선택된 서비스의 컨텐츠 데이터를 해당 클라이언트에게 전송하는 수동적인 방식을 사용할 수 있다. 또는, 서버는 각 클라이언트의 성향을 개별적으로 판단하고, 판단한 성향에 대응하게 마련된 서비스를 클라이언트에게 제공하거나 또는 안내하는 능동적인 방식을 사용할 수도 있다.
앞서 설명한 능동적인 방식은 개인화 상품 추천 시스템에 활용되고 있다. 이는, 특정 사용자에게 적합한 상품이나 물품 등의 서비스를 구축하기 위한 것이다. 그런데, 서버가 관리하는 클라이언트의 수가 천만 단위, 억 단위 정도로 많고, 이렇게 많은 클라이언트들 중에서 특정 성향을 가진 클라이언트들을 식별해 내는 것은 용이하지 않다. 예를 들어, 서버는 관리자로부터 소정의 공통된 성향을 가진 소수의 클라이언트에 관한 정보가 입력되면, 입력된 정보에 나타나는 성향에 관한 데이터를, 서버가 관리하는 각 클라이언트의 데이터와 일대 일로 비교한다. 그러나, 서버가 관리하는 클라이언트의 데이터가 방대한 빅 데이터를 이루고 있다면, 이러한 비교 방법은 서버에 있어서 큰 부담이 되고, 시간적으로도 많은 지연을 초래한다.
따라서, 서버가 특정 성향에 대응하는 서비스를 제공함에 있어서, 해당 성향을 가지거나 또는 해당 성향과 유사한 특성의 클라이언트들을, 상대적으로 빠르고 용이하게 식별하기 위한 방법이 필요할 수 있다.
본 발명의 실시예에 따른 전자장치는, 복수의 외부장치와 통신하는 통신부와, 상기 통신부를 통하여 복수의 사용자특성에 관한 상기 각 외부장치의 특성데이터를 획득하고, 상기 획득된 특성데이터에 기초하여 상기 복수의 외부장치를 상기 사용자특성이 유사한 복수의 그룹으로 분류하고, 상기 복수의 외부장치 중에서 하나 이상의 제1외부장치의 지정에 대응하여, 상기 제1외부장치와, 상기 복수의 그룹 중 상기 제1외부장치가 포함된 그룹의 복수의 제2외부장치 사이에서 상기 사용자특성의 유사도를 산출하고, 상기 복수의 제2외부장치 중에서 상기 산출된 유사도가 상대적으로 높은 하나 이상의 제2외부장치를 선별하는 프로세서를 포함한다. 이로써, 전자장치는 외부장치들을 관리하는 빅 데이터 내에서, 지정된 외부장치의 성향과 유사한 사용자특성의 외부장치들을 용이하게 식별하여 서비스를 제공할 수 있다.
여기서, 상기 사용자특성은, 상기 외부장치의 사용자의 사용 이력으로부터 도출된 상기 사용자의 행동 패턴을 나타낼 수 있다.
또한, 상기 특성데이터는, 사용자의 기 설정된 복수의 행위에 관한 복수의 단위 항목과, 상기 사용자가 상기 행위를 수행했는지 여부를 나타내는 상기 항목의 값을 포함할 수 있다.
여기서, 상기 프로세서는, 기 설정된 복수의 비트 위치에서 상기 복수의 특성데이터 사이의 상기 항목의 값들을 서로 비교하고, 동일한 값을 나타내는 비트 개수에 기초하여 상기 복수의 특성데이터 간의 상기 사용자특성의 유사 여부를 판단할 수 있다.
또한, 상기 프로세서는, 상기 하나 이상의 제1외부장치의 특성데이터의 센트로이드(centroid)를 도출하고, 상기 복수의 제2외부장치의 특성데이터 각각에 대한 상기 센트로이드와의 유사도를 산출함으로써, 상기 제1외부장치 및 상기 제2외부장치 사이에서 사용자특성의 유사도를 산출할 수 있다.
여기서, 상기 프로세서는, 상기 복수의 제2외부장치의 특성데이터와 상기 센트로이드 사이의 유클리드 거리를 산출하고, 상기 산출된 유클리드 거리가 문턱값보다 작은 상기 제2외부장치를 상기 산출된 유사도가 상대적으로 높은 것으로 선별할 수 있다.
또한, 상기 센트로이드는, 상기 하나 이상의 제1외부장치의 특성데이터의 좌표값의 평균일 수 있다.
또한, 본 발명의 실시예에 따른 전자장치의 제어방법은, 복수의 사용자특성에 관한 복수의 외부장치의 특성데이터를 각기 획득하는 단계와, 상기 획득된 특성데이터에 기초하여 상기 복수의 외부장치를 상기 사용자특성이 유사한 복수의 그룹으로 분류하는 단계와, 상기 복수의 외부장치 중에서 하나 이상의 제1외부장치의 지정에 대응하여, 상기 제1외부장치와, 상기 복수의 그룹 중 상기 제1외부장치가 포함된 그룹의 복수의 제2외부장치 사이에서 상기 사용자특성의 유사도를 산출하는 단계와, 상기 복수의 제2외부장치 중에서 상기 산출된 유사도가 상대적으로 높은 하나 이상의 제2외부장치를 선별하는 단계를 포함한다.
도 1은 본 발명의 실시예에 따른 전자장치의 예시도이다.
도 2는 본 발명의 실시예에 따른 서버의 구성 블록도이다.
도 3은 본 발명의 실시예에 따른 서버의 제어방법을 나타내는 플로우차트이다.
도 4는 본 발명의 실시예에 따른 서버가 각 단말로부터 수집된 사용자의 행동 데이터와, 이로부터 도출된 그룹 별 분류 방법을 나타내는 예시도이다.
도 5는 본 발명의 실시예에 따른 서버가 두 특성데이터 사이의 유사도를 판단하는 원리를 나타내는 예시도이다.
도 6은 본 발명의 실시예에 따른 서버가 참조하는 사용자 ID의 특성데이터들을 유클리드 평면 상에 배치한 모습을 나타내는 예시도이다.
도 7은 도 6에 나타난 그룹 중 버킷 1에서, 지정받은 특성데이터와 유사한 특성데이터를 선별하는 방법을 나타내는 예시도이다.
도 8은 본 발명의 실시예에 따른 서버가 각 단말로부터 수집한 사용 이력 데이터에 기초하여, 각 단말을 유사한 사용자특성의 그룹으로 분류하는 방법을 나타내는 플로우차트이다.
도 9는 본 발명의 실시예에 따른 서버가 외부로부터 지정된 하나 이상의 제1단말과 유사한 행동 패턴의 제2단말들을 식별하는 방법을 나타내는 플로우차트이다.
이하에서는 첨부도면을 참조하여 본 발명에 따른 실시예들에 관해 상세히 설명한다. 각 도면을 참조하여 설명하는 실시예들은 특별한 언급이 없는 한 상호 배타적인 구성이 아니며, 하나의 장치 내에서 복수 개의 실시예가 선택적으로 조합되어 구현될 수 있다. 이러한 복수의 실시예의 조합은 본 발명의 기술분야에서 숙련된 기술자가 본 발명의 사상을 구현함에 있어서 임의로 선택되어 적용될 수 있다.
만일, 실시예에서 제1구성요소, 제2구성요소 등과 같이 서수를 포함하는 용어가 있다면, 이러한 용어는 다양한 구성요소들을 설명하기 위해 사용되는 것이며, 용어는 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용되는 바, 이들 구성요소는 용어에 의해 그 의미가 한정되지 않는다. 실시예에서 사용하는 용어는 해당 실시예를 설명하기 위해 적용되는 것으로서, 본 발명의 사상을 한정하지 않는다.
또한, 본 명세서에서의 복수의 구성요소 중 "적어도 하나(at least one)"라는 표현이 나오는 경우에, 본 표현은 복수의 구성요소 전체 뿐만 아니라, 복수의 구성요소 중 나머지를 배제한 각 하나 혹은 이들의 조합 모두를 지칭한다.
도 1은 본 발명의 실시예에 따른 전자장치의 예시도이다.
도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 전자장치는 서버(110)로 구현되며, 네트워크를 통해 복수의 클라이언트 또는 단말(120, 130, 140)과 각기 통신 가능하게 접속된다. 다만, 전자장치가 서버(110)로 구현되는 경우는 한 가지 예시일 뿐이며, 전자장치는 다양한 종류의 단말(120, 130, 140)에 각기 통신 가능하게 접속되는 호스트장치로 구현될 수도 있다. 서버(110) 및 단말(120, 130, 140) 사이의 접속 방식은 광역 네트워크, 근거리 네트워크, 케이블에 의한 일대 다 접속 등으로 다양하다. 단말(120, 130, 140)은 TV, 컴퓨터, 셋탑박스, 태블릿, 휴대용 미디어 플레이어, 웨어러블 디바이스, 생활가전 등 다양한 종류의 장치로 구현될 수 있다. 본 실시예에서는 서버(110)에 3대의 단말(120, 130, 140)이 접속되는 것으로 표현하고 있지만, 실질적으로 서버(110)에 통신 가능하게 접속되는 단말(120, 130, 140)의 수는 한정되지 않는다.
본 실시예에서는 한 대의 서버(110)가 관련 동작을 수행하는 경우에 관해서만 설명하지만, 이는 한 가지 예시일 뿐이며, 복수의 서버(110)가 연계하여 동작하는 경우에도 본 실시예가 적용될 수 있다. 이 경우에, 복수의 서버(110)가 관련 동작을 분담하여 수행할 수 있다.
서버(110)는 접속되는 복수의 단말(120, 130, 140)을 상호 식별할 수 있게 마련된다. 구체적인 단말(120, 130, 140)의 식별 방법으로, 서버(110)는 각 단말(120, 130, 140)의 장치 ID를 통해 식별하거나, 각 단말(120, 130, 140)을 사용하는 사용자의 ID를 통해 식별할 수 있다. 단말(120, 130, 140)의 ID는 해당 단말(120, 130, 140)이 서버(110)에 전달할 수도 있고, 서버(110)가 접속되는 단말(120, 130, 140)의 ID를 임의로 할당할 수도 있다. 이하 실시예에서는, 서버(110)가 사용자 ID에 따라서 각 단말(120, 130, 140)을 구별하는 것으로 설명한다.
서버(110)는 각 단말(120, 130, 140)의 사용자 ID를 관리하는 것과 함께, 각 단말(120, 130, 140)의 사용 이력 정보를 저장한다. 예를 들면, 서버(110)는 각 단말(120, 130, 140)로부터 사용자가 다양한 컨텐츠를 시청한 이력 정보를 수집하고, 수집된 이력 정보에 기초하여 사용자의 시청 패턴 또는 행동 패턴에 관한 정보를 도출한다. 서버(110)는 도출된 정보를 사용자의 행동 패턴을 나타내는 특징 데이터로서, 사용자 ID와 대응하도록 저장한다.
서버(110)는 각 단말(120, 130, 140)에 개별적으로 기 설정된 서비스를 제공할 수 있다. 이러한 서비스는 서버(110)에 구현되어 있는 컨텐츠에 따라서 다양하게 마련되며, 본 실시예에서는 한 가지 예시로서, 소정의 제품에 관한 광고가 단말(120, 130, 140)에 제공되는 경우에 관해 설명한다. 광고 이외의 컨텐츠가 서비스로 제공되는 경우에도, 본 발명의 실시예가 응용되어 적용될 수 있다.
서버(110)는 특정 제품의 광고를 모든 단말(120, 130, 140)에 공통적으로 제공할 수도 있다. 그러나, 사용자의 성향 및 선호도가 서로 동일하지 않으므로, 해당 제품을 선호하는 사용자에게는 해당 광고가 유용할 수 있지만, 해당 제품을 선호하지 않는 사용자에게는 해당 광고가 불필요할 수 있다. 즉, 서버(110)는 서버(110)가 관리하는 사용자의 빅 데이터 내에서, 해당 제품을 선호하는 사용자들을 선별하고, 선별된 사용자들에 대해 맞춤형 광고를 제공한다.
여기서, 야구 컴퓨터게임 광고의 예를 들면, 본 광고는 "야구 컴퓨터게임"을 좋아하는 성향의 사용자에게 유용할 것이라고 쉽게 예상된다. 그러나, 본 광고가 단지 "야구 컴퓨터게임"만을 좋아하는 성향 뿐만 아니라, "야구"를 좋아하는 성향의 사용자, "컴퓨터게임"을 좋아하는 성향의 사용자, 나아가서는 전반적인 레크리에이션을 좋아하는 성향의 사용자에게도 유효할 수 있다. 이러한 관점에서, 서버(110)는 본 광고의 주요 대상인 "야구 컴퓨터게임"을 좋아하는 성향의 사용자가 결정되면, 이러한 사용자와 성향이 유사한 사용자들을 선별하여 본 광고를 제공하는 것이 바람직하다.
따라서, 본 발명의 실시예에 관한 서버(110)는 소정의 서비스를 제공함에 있어서, 해당 서비스가 유용하다고 판단되는 성향의 사용자 또는 단말(120, 130, 140)이 1차적으로 결정되면, 이 결정된 사용자 또는 단말(120, 130, 140)과 유사한 성향을 가진 타 사용자들 또는 타 단말(120, 130, 140)들을 2차적으로 선별한다. 서버(110)는 이와 같이 선별된 사용자 또는 단말(120, 130, 140)에 대해 서비스를 제공한다. 이로써, 서버(110)는 특정 성향에 대응하는 서비스를 제공함에 있어서, 해당 성향을 가지거나 또는 해당 성향과 유사한 특성의 사용자들을 빠르고 용이하게 식별할 수 있다.
이하, 서버(110)를 이루는 하드웨어 구성에 관해 설명한다.
도 2는 본 발명의 실시예에 따른 서버의 구성 블록도이다.
도 2에 도시된 바와 같이, 서버(200)는 복수의 단말(201)과 통신하는 통신부(210)와, 사용자 입력이 수행되는 사용자입력부(220)와, 데이터가 저장되는 저장부(230)와, 데이터를 처리하는 프로세서(240)를 포함한다.
통신부(210)는 다양한 종류의 유선 및 무선 통신 프로토콜에 대응하는 통신모듈, 통신칩 등의 구성요소들 중 적어도 하나 이상을 포함하는 양방향 통신회로이다. 예를 들면, 통신부(210)는 와이파이 방식에 따라서 AP와 무선통신을 수행하는 무선통신모듈이나, 라우터 또는 게이트웨이에 유선 접속된 랜카드로 구현될 수 있다. 예를 들면, 통신부(120)는 네트워크를 통해 단말(201)과 통신함으로써, 단말(201)과의 사이에 데이터 패킷을 송수신할 수 있다.
사용자입력부(220)는 사용자의 입력을 수행하기 위해 마련된 다양한 종류의 입력 인터페이스를 포함한다. 사용자입력부(220)는 사용자 조작 방식에 따라서 여러 가지 형태의 구성이 가능하며, 예를 들면 서버(200)에 마련된 버튼부, 키보드, 마우스, 터치패드, 터치스크린, 리모트 컨트롤러 등이 있다.
저장부(230)는 프로세서(240)에 의해 억세스되며, 프로세서(240)의 제어에 따라서 데이터의 독취, 기록, 수정, 삭제, 갱신 등의 동작이 수행된다. 저장부(230)는 전원의 제공 유무와 무관하게 데이터를 저장할 수 있는 플래시메모리(flash-memory), HDD(hard-disc drive), SSD(solid-state drive) 등과 같은 비휘발성 메모리와, 처리를 위한 데이터가 로딩되는 버퍼(buffer), 램(RAM; Random Access Memory) 등과 같은 휘발성 메모리를 포함한다.
본 실시예에 따른 저장부(230)는 복수의 단말(201)의 사용자를 식별하기 위한 복수의 사용자 ID와, 각 사용자 ID의 사용자 특성에 관한 특성 데이터에 관한 빅 데이터와, 단말(201)에 제공하기 위한 다양한 서비스의 컨텐츠를 저장한다. 상기한 특성 데이터에 관한 설명은 후술한다. 설계 방식에 따라서는, 서비스의 컨텐츠는 서버(200)가 접속 가능한 별도의 외부장치에 저장될 수도 있다.
프로세서(240)는 인쇄회로기판 상에 장착되는 CPU, 칩셋, 버퍼, 회로 등으로 구현되는 하나 이상의 하드웨어 프로세서를 포함하며, 설계 방식에 따라서는 SOC(system on chip)로 구현될 수도 있다. 프로세서(240)는 접속되는 복수의 단말(201)을 사용자 ID에 따라서 식별하고, 제공하고자 하는 서비스가 결정되면, 빅 데이터 내에서 해당 서비스를 제공받을 대상이 되는 사용자 ID들을 선별하고, 선별된 사용자 ID들의 단말(201)들에 해당 서비스를 제공한다.
이하, 본 발명의 실시예에 따른 프로세서(240)의 동작에 관해 설명한다.
도 3은 본 발명의 실시예에 따른 서버의 제어방법을 나타내는 플로우차트이다.
도 3에 도시된 바와 같이, 하기 동작은 서버의 프로세서에 의해 수행된다.
310 단계에서 서버는 복수의 단말과 통신 가능하게 접속한다.
320 단계에서 서버는 복수의 사용자특성에 관한 각 외부장치의 특성데이터를 획득한다. 각 외부장치는 사용자 ID에 의해 구별되며, 사용자특성에 관한 특성데이터는 외부장치로부터 수집된 사용자의 행동 패턴에 관한 특징을 나타내는 정보이다.
330 단계에서 서버는 획득한 특성데이터에 기초하여, 복수의 외부장치를 사용자특성이 유사한 복수의 그룹으로 분류한다. 즉, 서버는 행동 패턴이 유사하다고 판단되는 사용자 ID를 그룹 단위로 분류한다. 하나의 그룹에 속하는 사용자 ID들의 단말들은, 유사한 행동 패턴을 나타내는 사용자들을 가진다.
340 단계에서 서버는 복수의 외부장치 중 하나 이상의 제1외부장치의 지정을 수신한다. 여기서, 제1외부장치의 지정은 서버의 관리자에 의해 입력될 수 있고, 서버와 통신하는 별도의 외부장치 또는 타 서버로부터 수신할 수도 있다.
350 단계에서 서버는 복수의 그룹 중에서, 제1외부장치가 포함된 그룹의 복수의 제2외부장치와, 제1외부장치의 사이에서 사용자특성의 유사도를 산출한다. 즉, 서버는 제1외부장치의 사용자 ID가 포함되지 않은 그룹을 배제하고, 제1외부장치의 사용자 ID가 포함된 그룹을 선택한다. 서버는 선택된 그룹에 속하는 복수의 사용자 ID 각각이, 제1외부장치의 사용자 ID의 행동 패턴과 얼마나 유사한지를 나타내는 유사도를 개별적으로 산출한다.
360 단계에서 서버는 복수의 제2외부장치 중에서, 산출된 유사도가 상대적으로 높은 하나 이상의 제2외부장치를 선별한다.
이로써, 서버는 빅 데이터 내에서 제1외부장치의 사용자특성과 유사한 제2외부장치를 용이하게 선택하고, 제1외부장치의 사용자특성에 대응하는 서비스를 제1외부장치 및 제2외부장치에 대해 제공할 수 있다.
이하, 서버의 각 동작에 대해 보다 구체적으로 설명한다.
도 4는 본 발명의 실시예에 따른 서버가 각 단말로부터 수집된 사용자의 행동 데이터와, 이로부터 도출된 그룹 별 분류 방법을 나타내는 예시도이다.
도 4에 도시된 바와 같이, 서버(401)는 복수의 단말(402)로부터 각기 해당 단말(402)의 사용자의 행동 데이터(410)를 취득한다. 사용자의 행동 데이터(410)는, 사용자의 다양한 컨텐츠에 대한 시청 이력에 관한 것으로서, 컨텐츠에 관련된 사용자의 다양한 행동 패턴을 나타낸다. 예를 들면, 사용자의 다양한 행동은, 컨텐츠의 장르 또는 종류 별 시청 패턴 및 선호 여부, 방송 프로그램의 다양한 채널의 선호 여부, 다양한 웹 사이트의 접속 패턴, 컨텐츠의 시청 시간, 특정 종류의 물품에 관한 광고에 대한 선택 여부, VOD 컨텐츠의 재선택 여부, 특정 어플리케이션의 실행 여부 등, 광범위한 사항을 포함한다.
이와 같이 취득한 사용자의 행동 데이터(410)는 사용자 ID에 대응하게 테이블(420)로 정리될 수 있다. 본 테이블(420)은 본 발명의 실시예를 명확하고 간략하게 설명하기 위해 마련된 것으로서, 본 테이블(420)이 반드시 서버(401)에 의해 작성되어야만 하는 것은 아니다.
사용자의 행동은 복수의 단위 행위로 정리될 수 있다. 예를 들면, 행위 1은 "1주일 동안 뉴스 장르의 방송 프로그램을 시청한 시간이 3시간 이상", 행위 2는 "1주일 동안 방송 프로그램의 특정 채널을 시청한 시간이 5시간 이상", 행위 3은 "10일간 인터넷에서 옷 광고를 클릭한 회수가 10회 이상", 행위 4는 "영화 관련 검색어를 인터넷의 검색엔진으로 검색한 회수가 10일간 5회 이상", 행위 5는 "1주일 이내에 VOD 제공 사이트에서 특정 드라마를 스트리밍하여 시청함" 등과 같이, 단위 행위는 사용자가 컨텐츠와 관련하여 수행할 수 있는 다양한 행동 패턴을 반영한다. 상기한 바와 같은 단위 행위의 사용자의 행동에 관한 내용을 단위 행위의 패러미터(parameter)라고 한다. 또한, 각 단위 행위의 패러미터는, 사용자가 해당 패러미터에 따른 행동을 수행하였는지 여부를 나타내는 행위값을 가진다. 예를 들면, 사용자가 특정 패러미터에 따른 행위를 수행하였다면 행위값은 "○", 수행하지 않았다면 행위값은 "X"로 나타낼 수 있다.
서버(401)는 취득한 사용자의 행동 데이터(410)에 기초하여, 본 테이블(420)에서 나타내는 바와 같이 사용자 ID 별로 기 설정된 행동 데이터(420)를 도출한다.
예를 들면, 본 테이블(420)은 복수의 사용자의 ID와, 복수의 기 설정된 단위 행위의 패러미터에 대한 각 사용자 별 행위값을 나타낸다. 예를 들어, 사용자 ID가 1번인 사용자의 행동 데이터는, 행위 1, 행위 2, 행위 3에 대해 "○"의 행위값을 나타내고, 행위 4, 행위 5에 대해 "X"의 행위값을 나타낸다. 사용자 ID가 7번인 사용자의 행동 데이터는, 행위 1, 행위 2, 행위 3, 행위 4에 대해 "X"의 행위값을 나타내고, 행위 5에 대해 "○"의 행위값을 나타낸다.
서버(401)는 테이블(420)과 같은 행동 데이터를 변환 및 분석하여, 각 사용자 ID를 유사한 사용자특성, 즉 유사한 행동 패턴을 나타내는 복수의 그룹으로 분류한다. 이와 같은 분류 결과는 테이블(430)과 같이 나타내어질 수 있다.
본 테이블(430)과 같은 그룹의 분류를 위해, 서버(401)는 먼저 테이블(420)의 사용자 ID 별 행동 데이터를 벡터화시켜 특성데이터로 변환시킨다. 예를 들면, 사용자 ID 2번의 행동 데이터는 행위 1부터 행위 5까지의 다섯가지 패러미터에 대해 각각 X, X, ○, ○, X의 행위값을 나타낸다. 서버(401)는 이러한 행위값을 사용자 ID 2번의 특성데이터로 변환하는 바, "○"의 행위값을 1로, "X"의 행위값을 0으로 적용하여 각 행위 순서에 따른 벡터값을 도출한다. 이에 따르면, 사용자 ID 2번의 특성데이터는 (0,0,1,1,0)이 된다.
모든 사용자 ID에 대한 특성데이터가 도출되면, 서버(401)는 사용자특성이 유사한 특성데이터를 가진 사용자 ID를 그룹화시킨다. 이상 설명한 바와 같은 과정은, LSH(Locality Sensitive Hashing) 알고리즘의 원리에 기반한 방법을 따른 것이다. LSH 알고리즘은, 고차원 데이터의 차원 확률에 기반한 차원 축소 방법론으로서, 고차원 데이터의 차원을 줄여서 상호 비교함으로써 유사도를 판단하는 방법이다. 예를 들어 하나의 문서가 100개의 단어로 이루어져 있다면, 이를 벡터로 표현하면 100차원이 되는데, 이 100차원 벡터를 제한된 크기인 n차원으로 줄이는 기술이 LSH 알고리즘이다.
본 테이블(430)에 나타난 바와 같이, 유사한 사용자특성의 특성데이터를 가진 사용자 ID는 하나의 그룹으로 분류한다. 본 실시예에서는 그룹을 편의상 버킷(bucket)이라고 표현하지만, 용어가 특징을 한정하는 것은 아니다. 유사한 사용자특성의 사용자 ID 1번, 3번, 4번은 버킷 ID A번의 그룹에 속한다. 동일한 버킷 ID에 속하는 사용자 ID들은 유사한 사용자특성의 행동 패턴을 나타낸다.
이하, 서버(401)가 특성데이터들 사이의 유사도를 판단하는 방법에 관해 설명한다.
도 5는 본 발명의 실시예에 따른 서버가 두 특성데이터 사이의 유사도를 판단하는 원리를 나타내는 예시도이다.
도 5에 도시된 바와 같이, 서버는 소정의 제1특성데이터(510) 및 제2특성데이터(520)가 있을 때, 이들의 바이너리 코드를 서로 비교함으로써 양자간의 유사도를 판단할 수 있다. 여기서, 서버가 제1특성데이터(510) 및 제2특성데이터(520)의 모든 바이너리 코드를 비교하는 것은 시스템 부하 및 소요시간이 크므로, 다음과 같은 방법에 따라서 유사도를 판단한다.
앞선 실시예에서 설명한 바와 같이, 각 사용자 ID 별 특성데이터는 동일한 개수의 행위의 패러미터로부터 생성되므로, 사용자 ID 별 특성데이터는 동일한 데이터 길이를 가진다. 서버는 제1특성데이터(510) 및 제2특성데이터(520)에서, 동일한 비트 위치의 행위값을 서로 비교하고, 행위값이 동일한 비트 개수의 비율이 얼마나 되는지 여부에 따라서 상호간의 유사도를 판단한다.
여기서, 비교를 위한 비트 위치들은, 전체 비트 중에서 주기적으로 선택되거나 또는 무작위로 선택될 수도 있다. 다만, 행위값의 비교는 제1특성데이터(510) 및 제2특성데이터(520)의 동일한 비트 위치에서 수행된다.
예를 들면, 서버는 총 100비트 중에서 0비트 위치부터 4비트 간격으로 복수의 비트 위치를 선택한다. 본 도면에서는 선택된 비트 위치 중 일부인 0비트, 4비트, 52비트, 96비트가 나타나 있다. 서버는 선택된 비트 별로 제1특성데이터(510)의 행위값 및 제2특성데이터(520)의 행위값을 서로 비교한다. 0비트, 4비트, 96비트 위치의 경우에 제1특성데이터(510)의 행위값 및 제2특성데이터(520)의 행위값은 동일하다. 반면, 52비트 위치에서 제1특성데이터(510)의 행위값은 0인 것에 비해 제2특성데이터(520)의 행위값 1로서 서로 상이하다.
이러한 방식으로, 서버는 선택된 전체 비트 개수에 대한, 제1특성데이터(510)의 행위값 및 제2특성데이터(520)의 행위값이 동일한 비트 개수의 비율을 산출할 수 있다. 서버는 산출된 비율이 기 설정된 문턱값보다 높으면 제1특성데이터(510) 및 제2특성데이터(520)가 유사하다고 판단하고, 산출된 비율이 기 설정된 문턱값보다 높지 않으면 제1특성데이터(510) 및 제2특성데이터(520)가 유사하지 않다고 판단한다.
서버는 이와 같이 모든 사용자 ID 별로 특성데이터를 처리하여, 앞선 실시예에서와 같이 유사한 사용자특성을 가진 사용자 ID를 그룹화한다.
이러한 구조 하에서, 소정의 하나 이상의 단말이 지정되었을 때, 지정된 단말과 유사한 사용자특성을 가진 타 단말들을 식별하는 방법에 관해 이하 설명한다.
도 6은 본 발명의 실시예에 따른 서버가 참조하는 사용자 ID의 특성데이터들을 유클리드 평면 상에 배치한 모습을 나타내는 예시도이다.
도 6에 도시된 바와 같이, 복수의 사용자 ID 별 특성데이터는 유클리드 평면 상에 표시될 수 있다. 본 도면에 나타난 각 도트는 사용자 ID 별 특성데이터로서, 각 특성데이터는 n차원의 벡터값으로 나타나므로 유클리드 평면 상에 표현될 수 있다. 또한, 앞서 설명한 바와 같이, 복수의 특성데이터는 유사한 사용자속성을 가진 것들끼리 그룹화될 수 있는데, 유클리드 평면 상에서 유사한 특성데이터들을 상호 근접하게 배치된다.
상호 근접하게 배치된 도트들은 하나의 바운더리 내의 영역으로 묶일 수 있이며, 이들 영역은 유사한 사용자속성을 가진 그룹을 나타낸다. 버킷 1(610), 버킷 2(620), 버킷 3(630), 버킷 4(640)의 네 가지 그룹이 있다고 할 때, 버킷 1(610) 내에 있는 도트들에 대응하는 사용자들은 유사한 사용자속성을 가진다고 볼 수 있다. 마찬가지로, 버킷 1(610) 내에 있는 도트에 대응하는 사용자는, 버킷 2(620) 내에 있는 도트에 대응하는 사용자와 서로 상이한 사용자속성을 가진다고 볼 수 있다. 다만, 여기서 설명하는 사용자속성의 유사함 또는 상이함은 전체적인 관점에서 편의를 위한 표현임을 밝힌다. 앞서 설명한 바와 같이 사용자속성은 다양한 행위를 포함하므로, 두 사용자의 사용자속성이 유사하다고 하더라도 특정 행위에 관해서는 서로 상이함을 나타낼 수도 있고, 반대로 두 사용자의 사용자속성이 서로 상이하다고 하더라도 특정 행위에 관해서는 유사함을 나타낼 수도 있다.
서버는 외부로부터 소정의 사용자속성을 가진 사용자 ID를 지정받을 수 있다. 예를 들어 광고주가 특정 물품의 광고를 제공하고자 하는 경우를 고려한다. 광고주는 광고가 유용할 만 하다고 판단되는 행동 패턴을 가진 사용자를 한 명 이상 지정할 수 있다. 그러나, 광고주가 지정한 이들 소수의 사용자에게만 광고를 제공하는 것은, 보다 많은 사람들에게 제공되는 것이 유리한 광고 특성을 고려하면 효율적이지 않다. 또한, 해당 광고에 관심이 없을 것으로 예상되는 사람들에게까지 광고를 제공하는 것도 바람직하지 않다. 따라서, 서버는 광고주가 지정한 사용자들과 유사한 사용자속성을 가진 타 사용자들을 빅 데이터 내에서 식별하고, 식별된 타 사용자들에게도 해당 광고를 제공해야 할 필요가 있다.
본 도면에서 나타난 도트들 중에서, 서버가 지정받은 사용자 ID의 특성데이터는 원형 도트이며, 그 이외의 특성데이터는 마름모꼴 도트로 나타난다. 서버는 사용자속성 별 그룹 중에서, 지정받은 사용자 ID의 특성데이터를 포함하는 그룹과, 포함하지 않는 그룹을 구별한다. 예를 들면, 버킷 1(610), 버킷 2(620), 버킷 3(630), 버킷 4(640) 중에서, 버킷 1(610), 버킷 2(620), 버킷 3(630)은 지정받은 사용자 ID의 특성데이터를 포함하고, 버킷 4(640)는 지정받은 사용자 ID의 특성데이터를 포함하지 않는다.
서버는 지정받은 사용자 ID의 특성데이터를 포함하지 않는 그룹인 버킷 4(640)를 배제하고, 지정받은 사용자 ID의 특성데이터를 포함하는 그룹인 버킷 1(610), 버킷 2(620), 버킷 3(630)을 처리 대상으로 취한다.
또한, 서버는 지정받은 사용자 ID의 특성데이터의 센트로이드(Centroid)를 구한다. 센트로이드, 무게중심, 또는 도심은 평면 상의 소정 영역의 중심을 나타낸다. 센트로이드를 통하는 임의의 축에 관한 단면 1차 모멘트는 0이다. 단면 1차 모멘트 Sx는, 단면과 어느 축 x가 주어졌을 때, 매소 단면적 dA와 x축까지의 거리 y와의 전단면적에 대해서 구하고 총합한 것이다. 즉, 단면의 중심을 통하는 축에 대한 Sx0는, 0이다. 센트로이드는 주어진 영역 내에 포함되는 모든 점의 좌표값이 평균이 되는 다각형 내의 기하학적 중심으로서, 다각형을 구성하는 점들의 좌표 평균으로 구한다.
본 실시예의 경우에는, 예를 들면 서버는 지정된 특성데이터의 도트들로부터 동일한 거리에 있는 위치를 센트로이드로 구할 수 있다. 지정된 도트들이 2개인 경우에, 서버는 지정된 두 도트를 연결하는 직선 상에서, 두 도트들로부터 동일한 거리에 있는 위치를 센트로이드로 구할 수 있다. 만일 지정된 특성데이터가 하나뿐이라면 센트로이드를 구할 필요가 없으므로, 서버는 해당 특성데이터를 그대로 사용한다.
지정받은 복수의 사용자 ID의 특성데이터 중에서 센트로이드를 구하는 대상을 선택하는 방법은 여러 가지가 있다. 예를 들면, 서버는 지정받은 모든 특성데이터에 의한 하나의 센트로이드를 구할 수 있다. 또는, 서버는 지정받은 특성데이터를 그룹 별로 구분하고, 그룹 별 특성데이터 별로 각기 센트로이드를 구할 수도 있다.
이하, 그룹 별 특성데이터 별로 센트로이드를 구하는 경우의 동작에 관해 설명한다.
도 7은 도 6에 나타난 그룹 중 버킷 1에서, 지정받은 특성데이터와 유사한 특성데이터를 선별하는 방법을 나타내는 예시도이다.
도 7에 도시된 바와 같이, 유사한 사용자속성을 가진 특성데이터들을 포함하는 그룹 중 하나인 버킷 1은 유클리드 평면 상에 표현될 수 있으며, 이 경우에 버킷 1에 속한 각 특성데이터는 도트로 나타날 수 있다. 각 도트의 위치는 특성데이터가 나타내는 사용자속성과 관련되므로, 두 도트 사이의 거리는 해당 도트들에 대응하는 사용자들 사이의 사용자속성의 유사도를 시각적으로 나타낸다.
이러한 버킷 1의 도트는, 지정된 특성데이터의 도트(710, 720)와 나머지 특성데이터의 도트(740)로 구분된다. 서버는 지정된 특성데이터의 도트(710, 720)에 의한 센트로이드(730)를 도출한다. 센트로이드(730)의 도출 방법은 앞선 실시예에서 설명한 바와 같다.
서버는, 센트로이드(730)로부터, 버킷 1의 각 도트(740)까지의 거리 d를 산출한다. 이러한 거리 d는 유클리드 거리라고 지칭한다. 버킷 1 내에서 모든 도트(740)들에 대한 거리 d가 산출되면, 서버는 거리 d가 기 설정된 문턱값보다 작은 복수의 도트(740), 즉 센트로이드(730)로부터 상대적으로 근접하게 배치된 복수의 도트(740)를 선별한다. 서버는 이와 같이 선별된 복수의 도트(740)에 대응하는 복수의 사용자 ID를 식별한다. 이 식별된 복수의 사용자 ID가, 최초 지정된 하나 이상의 사용자 ID와 유사한 사용자특성을 가지는 것들이다.
또는, 서버는 복수의 도트(740) 중에서, 거리 d가 짧은 순서대로 기 설정된 개수만큼의 도트(740)들을 선택할 수도 있다.
이와 같이, 서버는 지정된 하나 이상의 사용자 ID와 사용자특성이 유사한 복수의 사용자 ID를 빅 데이터로부터 도출하고, 도출된 복수의 사용자 ID의 단말에 대해 서비스를 제공할 수 있다.
이하, 본 실시예에 따른 서버의 동작 과정에 관해 설명한다.
도 8은 본 발명의 실시예에 따른 서버가 각 단말로부터 수집한 사용 이력 데이터에 기초하여, 각 단말을 유사한 사용자특성의 그룹으로 분류하는 방법을 나타내는 플로우차트이다.
도 8에 도시된 바와 같이, 다음 동작들은 서버의 프로세서에 의해 실행된다.
810 단계에서 서버는 각 단말로부터 사용 이력의 데이터를 수집한다.
820 단계에서 서버는 수집한 사용 이력의 데이터로부터, 행위 데이터들을 추출한다.
830 단계에서 서버는 각 행위의 발생 빈도에 따라서, 추출한 행위 데이터들에 랭크를 부여한다. 즉, 서버는 복수의 행위 데이터 각각에 대해, 각 행위가 얼마나 많이 단말에서 수행되었는지에 따라서 점수를 부여한다.
840 단계에서 서버는 상대적으로 높은 랭크의 행위 데이터들을 벡터화시켜 각 단말의 특성데이터를 생성한다. 서버는 추출된 행위 데이터들 중에서 상대적으로 많이 수행된 행위 데이터들에 기초하여 특성데이터를 생성한다.
850 단계에서 서버는 LSH 알고리즘에 기반하여, 특성데이터들 사이의 유사도를 판단한다.
860 단계에서 서버는 판단한 유사도에 기반하여, 유사한 행동 패턴을 보이는 단말들을 그룹 별로 분류한다.
870 단계에서 서버는 그룹 별로 분류된 단말들에 관한 정보를 저장한다. 이러한 정보는, 단말의 ID 또는 해당 단말의 사용자 ID, 단말의 특성데이터, 단말이 속하는 그룹 정보를 포함한다.
이와 같이, 서버는 각 단말로부터 수집한 사용 이력에 기반하여, 유사한 행동 패턴을 보이는 단말들의 그룹을 분류할 수 있다.
이하, 각 단말들이 그룹화된 환경 하에서, 서버가 외부로부터 지정된 하나 이상의 제1단말과 유사한 행동 패턴의 제2단말들을 식별하는 방법에 관해 설명한다.
도 9는 본 발명의 실시예에 따른 서버가 외부로부터 지정된 하나 이상의 제1단말과 유사한 행동 패턴의 제2단말들을 식별하는 방법을 나타내는 플로우차트이다.
도 9에 도시된 바와 같이, 다음 동작들은 서버의 프로세서에 의해 실행된다.
910 단계에서 서버는 외부로부터 하나 이상의 제1단말의 지정을 수신한다.
920 단계에서 서버는 유사한 행동 패턴의 단말들의 그룹들 중에서, 제1단말이 포함된 하나 이상의 그룹을 선별한다.
930 단계에서 서버는 하나 이상의 제1단말의 특성데이터에 의한 센트로이드를 산출한다.
940 단계에서 서버는 선별된 그룹 내의 각 특성데이터와 센트로이드 사이의 유사도를 산출한다. 본 유사도는 각 특성데이터 및 센트로이드 사이의 유클리드 거리에 대응한다.
950 단계에서 서버는 선별된 그룹 내의 각 특성데이터 중에서, 산출된 유사도가 상대적으로 높은 특성데이터들을 선별한다. 각 특성데이터 및 센트로이드 사이의 유클리드 거리가 짧을수록 유사도가 높다.
960 단계에서 서버는 선별된 특성데이터들에 대응하는 복수의 제2단말을 식별한다.
이로써, 서버는 제1단말에 대한 맞춤형 서비스를 제2단말들에 대해서도 제공할 수 있다.
이상 실시예들에서 설명한 바와 같은 장치의 동작은, 해당 장치에 탑재된 인공지능에 의해 수행될 수 있다. 인공지능은 기계 학습 알고리즘을 활용하여 다양한 제반 시스템에 적용될 수 있다. 인공지능 시스템은 인간 수준 내지는 인간 수준에 버금가는 지능을 구현하는 컴퓨터 시스템으로서, 기계, 장치 또는 시스템이 자율적으로 학습하고 판단하며, 사용 경험의 누적에 기반하여 인식률 및 판단 정확도가 향상되는 시스템이다. 인공지능 기술은 입력되는 데이터들의 특징을 스스로 분류하고 학습하는 알고리즘을 이용한 기계학습(deep-running) 기술 및 알고리즘을 활용하여, 인간의 두뇌의 인지, 판단 등의 기능을 모사하는 요소 기술들로 구성된다.
요소 기술들은, 예를 들면 인간의 언어와 문자를 인식하는 언어적 이해 기술, 사물을 인간의 시각처럼 인식하는 시각적 이해 기술, 정보를 판단하여 논리적으로 추론하고 예측하는 추론 및 예측 기술, 인간의 경험 정보를 지식 데이터로 처리하는 지식 표현 기술, 차량의 자율 주행이나 로봇의 움직임을 제어하는 동작 제어 기술 중 적어도 어느 하나를 포함한다.
여기서, 언어적인 이해는 인간의 언어 또는 문자를 인식하고 응용 처리하는 기술로서, 자연어의 처리, 기계 번역, 대화 시스템, 질의 응답, 음성 인식 및 합성 등을 포함한다.
추론 예측은 정보를 판단하여 논리적으로 예측하는 기술로서, 지식 및 확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다.
지식 표현은 인간의 경험 정보를 지식 데이터로 자동화 처리하는 기술로서, 데이터의 생성 및 분류와 같은 지식 구축, 데이터의 활용과 같은 지식 관리 등을 포함한다.
본 발명의 예시적 실시예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이러한 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 예를 들어, 컴퓨터 판독 가능 매체는 삭제 가능 또는 재기록 가능 여부와 상관없이, ROM 등의 저장 장치와 같은 휘발성 또는 비휘발성 저장 장치, 또는 예를 들어, RAM, 메모리 칩, 장치 또는 집적 회로와 같은 메모리, 또는 예를 들어 CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 이동 단말 내에 포함될 수 있는 메모리는 본 발명의 실시 예들을 구현하는 지시들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다. 본 저장 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어의 기술 분야에서 숙련된 기술자에게 공지되어 사용 가능한 것일 수도 있다.
200 : 서버
210 : 통신부
230 : 저장부
240 : 프로세서

Claims (14)

  1. 전자장치에 있어서,
    복수의 사용자특성을 각기 가진 복수의 사용자에 의해 사용되는 복수의 외부장치와 통신하는 통신부와,
    상기 통신부를 통하여 상기 복수의 외부장치로부터 상기 복수의 사용자 각각의 상기 사용자특성에 관한 특성데이터를 획득하고,
    상기 획득된 특성데이터에 기초하여 상기 복수의 사용자를 상기 사용자특성이 유사한 복수의 그룹으로 분류하고,
    상기 복수의 사용자특성 중 하나 이상의 사용자특성의 지정을 수신하고,
    상기 수신되는 지정에 응답하여, 상기 복수의 그룹 중에서, 상기 지정된 하나 이상의 사용자특성을 가진 제1사용자를 포함하는 그룹을 선택하고,
    상기 선택된 그룹에 포함된, 상기 제1사용자 및 복수의 나머지 사용자 사이에서 상기 사용자특성의 유사도를 산출하고,
    상기 산출된 유사도에 기초하여 상기 복수의 나머지 사용자 중에서 상기 제1사용자와 유사하다고 식별된 하나 이상의 제2사용자에 의해 사용되는 하나 이상의 상기 외부장치를 선별하는 프로세서를 포함하는 전자장치.
  2. 제1항에 있어서,
    상기 사용자특성은, 상기 외부장치의 사용자의 사용 이력으로부터 도출된 상기 사용자의 행동 패턴을 나타내는 전자장치.
  3. 제1항에 있어서,
    상기 특성데이터는, 사용자의 기 설정된 복수의 행위에 관한 복수의 단위 항목과, 상기 사용자가 상기 행위를 수행했는지 여부를 나타내는 상기 항목의 값을 포함하는 전자장치.
  4. 제3항에 있어서,
    상기 프로세서는, 기 설정된 복수의 비트 위치에서 상기 복수의 특성데이터 사이의 상기 항목의 값들을 서로 비교하고, 동일한 값을 나타내는 비트 개수에 기초하여 상기 복수의 특성데이터 간의 상기 사용자특성의 유사 여부를 판단하는 전자장치.
  5. 제1항에 있어서,
    상기 프로세서는, 상기 제1사용자가 복수로 지정된 경우, 상기 복수의 제1사용자의 특성데이터의 센트로이드(centroid)를 도출하고, 상기 센트로이드로부터 상기 복수의 나머지 사용자의 특성데이터 각각에 대한 거리를 산출함으로써, 상기 유사도를 산출하는 전자장치.
  6. 제5항에 있어서,
    상기 프로세서는, 상기 복수의 나머지 사용자의 특성데이터와 상기 센트로이드 사이의 유클리드 거리를 산출하고, 상기 산출된 유클리드 거리가 문턱값보다 작은 상기 나머지 사용자를 상기 제2사용자로 식별하는 전자장치.
  7. 제5항에 있어서,
    상기 센트로이드는, 상기 복수의 제1사용자의 특성데이터의 좌표값의 평균인 전자장치.
  8. 전자장치의 제어방법에 있어서,
    복수의 사용자특성을 각기 가진 복수의 사용자에 의해 사용되는 복수의 외부장치로부터 상기 복수의 사용자 각각의 상기 사용자특성에 관한 특성데이터를 각기 획득하는 단계와,
    상기 획득된 특성데이터에 기초하여 상기 복수의 사용자를 상기 사용자특성이 유사한 복수의 그룹으로 분류하는 단계와,
    상기 복수의 사용자특성 중 하나 이상의 사용자특성의 지정을 수신하는 단계와,
    상기 수신되는 지정에 응답하여, 상기 복수의 그룹 중에서, 상기 지정된 하나 이상의 사용자특성을 가진 제1사용자를 포함하는 그룹을 선택하는 단계와,
    상기 선택된 그룹에 포함된, 상기 제1사용자 및 복수의 나머지 사용자 사이에서 상기 사용자특성의 유사도를 산출하는 단계와,
    상기 산출된 유사도에 기초하여 상기 복수의 나머지 사용자 중에서 상기 제1사용자와 유사하다고 식별된 하나 이상의 제2사용자에 의해 사용되는 하나 이상의 상기 외부장치를 선별하는 단계를 포함하는 전자장치의 제어방법.
  9. 제8항에 있어서,
    상기 사용자특성은, 상기 외부장치의 사용자의 사용 이력으로부터 도출된 상기 사용자의 행동 패턴을 나타내는 전자장치의 제어방법.
  10. 제8항에 있어서,
    상기 특성데이터는, 사용자의 기 설정된 복수의 행위에 관한 복수의 단위 항목과, 상기 사용자가 상기 행위를 수행했는지 여부를 나타내는 상기 항목의 값을 포함하는 전자장치의 제어방법.
  11. ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    기 설정된 복수의 비트 위치에서 상기 복수의 특성데이터 사이의 상기 항목의 값들을 서로 비교하고, 동일한 값을 나타내는 비트 개수에 기초하여 상기 복수의 특성데이터 간의 상기 사용자특성의 유사 여부를 판단하는 전자장치의 제어방법.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제8항에 있어서,
    상기 제1사용자가 복수로 지정된 경우 상기 복수의 제1사용자의 특성데이터의 센트로이드를 도출하고, 상기 센트로이드로부터 상기 복수의 나머지 사용장의 특성데이터 각각에 대한 거리를 산출함으로써, 상기 유사도를 산출하는 전자장치의 제어방법.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 복수의 나머지 사용자의 특성데이터와 상기 센트로이드 사이의 유클리드 거리를 산출하고, 상기 산출된 유클리드 거리가 문턱값보다 작은 상기 나머지 사용자를 상기 제2사용자로 식별하는 전자장치의 제어방법.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 센트로이드는, 상기 복수의 제1사용자의 특성데이터의 좌표값의 평균인 전자장치의 제어방법.
KR1020180158940A 2018-12-11 2018-12-11 전자장치 및 그 제어방법 KR102595508B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020180158940A KR102595508B1 (ko) 2018-12-11 2018-12-11 전자장치 및 그 제어방법
US17/285,029 US11438430B2 (en) 2018-12-11 2019-12-06 Electronic device and method for controlling same
PCT/KR2019/017230 WO2020122512A1 (ko) 2018-12-11 2019-12-06 전자장치 및 그 제어방법
EP19896847.1A EP3840336B1 (en) 2018-12-11 2019-12-06 Electronic device and method for controlling same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180158940A KR102595508B1 (ko) 2018-12-11 2018-12-11 전자장치 및 그 제어방법

Publications (2)

Publication Number Publication Date
KR20200071327A KR20200071327A (ko) 2020-06-19
KR102595508B1 true KR102595508B1 (ko) 2023-10-31

Family

ID=71077446

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180158940A KR102595508B1 (ko) 2018-12-11 2018-12-11 전자장치 및 그 제어방법

Country Status (4)

Country Link
US (1) US11438430B2 (ko)
EP (1) EP3840336B1 (ko)
KR (1) KR102595508B1 (ko)
WO (1) WO2020122512A1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013218415A (ja) 2012-04-05 2013-10-24 Sharp Corp 類似度算出装置、類似度算出システム、類似度算出方法及び類似度算出プログラム
US20160026669A1 (en) * 2014-07-23 2016-01-28 Sony Computer Entertainment Inc. Information processor, information processing method, program, and information storage medium

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100429792B1 (ko) 2000-11-15 2004-05-03 삼성전자주식회사 특징 벡터 공간의 인덱싱 방법 및 검색 방법
JP4124115B2 (ja) * 2003-12-02 2008-07-23 ソニー株式会社 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
JP2008146355A (ja) 2006-12-11 2008-06-26 Lealcom Kk 情報配信システム、情報配信装置及び情報配信方法
JP5466190B2 (ja) 2011-02-17 2014-04-09 株式会社Nttドコモ アプリケーションをユーザに推薦するサーバ及び推薦方法
KR20130020050A (ko) 2011-08-18 2013-02-27 삼성전자주식회사 로컬리티 센서티브 해시의 버킷 구간 관리 장치 및 그 방법
US10754913B2 (en) * 2011-11-15 2020-08-25 Tapad, Inc. System and method for analyzing user device information
JP5891905B2 (ja) * 2012-03-29 2016-03-23 大日本印刷株式会社 サーバ装置、プログラム及び通信システム
EP2706765A1 (en) 2012-09-07 2014-03-12 Nagravision S.A. Method to create and manage a group of devices by a management center
KR20140090296A (ko) * 2012-12-20 2014-07-17 삼성전자주식회사 유전 정보를 분석하는 방법 및 장치
KR101276314B1 (ko) 2013-02-27 2013-06-18 주식회사 케이쓰리아이 엘에스에이치 알고리즘의 자료조회결과의 특징점을 이용한 매칭포인트 추출시스템 및 그 방법
US10136174B2 (en) * 2015-07-24 2018-11-20 Videoamp, Inc. Programmatic TV advertising placement using cross-screen consumer data
US20170206276A1 (en) * 2016-01-14 2017-07-20 Iddo Gill Large Scale Recommendation Engine Based on User Tastes
TWI642015B (zh) * 2016-11-11 2018-11-21 財團法人工業技術研究院 產生使用者瀏覽屬性的方法、以及非暫存電腦可讀的儲存媒介
JP6929445B2 (ja) * 2018-03-29 2021-09-01 株式会社Nttドコモ 評価装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013218415A (ja) 2012-04-05 2013-10-24 Sharp Corp 類似度算出装置、類似度算出システム、類似度算出方法及び類似度算出プログラム
US20160026669A1 (en) * 2014-07-23 2016-01-28 Sony Computer Entertainment Inc. Information processor, information processing method, program, and information storage medium

Also Published As

Publication number Publication date
US11438430B2 (en) 2022-09-06
EP3840336A1 (en) 2021-06-23
US20210344764A1 (en) 2021-11-04
WO2020122512A1 (ko) 2020-06-18
EP3840336A4 (en) 2021-09-22
EP3840336B1 (en) 2024-05-01
KR20200071327A (ko) 2020-06-19

Similar Documents

Publication Publication Date Title
US11698922B2 (en) Classification and moderation of text
Di Luca et al. Locomotion vault: the extra mile in analyzing vr locomotion techniques
US20210326674A1 (en) Content recommendation method and apparatus, device, and storage medium
Ning et al. A comprehensive survey of neighborhood-based recommendation methods
Desrosiers et al. A comprehensive survey of neighborhood-based recommendation methods
US10509791B2 (en) Statistical feature engineering of user attributes
US10621220B2 (en) Method and system for providing a personalized snippet
US20160188661A1 (en) Multilingual business intelligence for actions
US20130013541A1 (en) System And Method For Invitation Targeting In A Web-Based Social Network
US9830534B1 (en) Object recognition
US20200074481A1 (en) System, method, and device for analyzing media asset data
US11195221B2 (en) System rendering personalized outfit recommendations
CN108959323B (zh) 视频分类方法和装置
CN108304428A (zh) 信息推荐方法及装置
US9336553B2 (en) Diversity enforcement on a social networking system newsfeed
KR102595508B1 (ko) 전자장치 및 그 제어방법
JP6960361B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
Qu et al. The application of interactive methods under swarm computing and artificial intelligence in image retrieval and personalized analysis
KR102465853B1 (ko) 인터랙티브 비디오에서 비디오 경로의 분류 및 카테고리화를 위한 방법 및 시스템
US11651392B2 (en) Electronic apparatus and control method thereof
JP7418379B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
US11838597B1 (en) Systems and methods for content discovery by automatic organization of collections or rails
US11900327B2 (en) Evaluation adjustment factoring for bias
Di Luca et al. Locomotion vault
KR20230077321A (ko) 소셜 네트워크 서비스 시스템에서 수행되는 소셜 네트워크 게시물 분류 방법 및 소셜 네트워크 게시물 분류 방법을 실행시키도록 기록매체에 저장된 컴퓨터 프로그램

Legal Events

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