KR20180070912A - 캘린더에 관한 예측을 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체 - Google Patents

캘린더에 관한 예측을 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR20180070912A
KR20180070912A KR1020160173483A KR20160173483A KR20180070912A KR 20180070912 A KR20180070912 A KR 20180070912A KR 1020160173483 A KR1020160173483 A KR 1020160173483A KR 20160173483 A KR20160173483 A KR 20160173483A KR 20180070912 A KR20180070912 A KR 20180070912A
Authority
KR
South Korea
Prior art keywords
calendar
data
event
user
time
Prior art date
Application number
KR1020160173483A
Other languages
English (en)
Other versions
KR102639152B1 (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 KR1020160173483A priority Critical patent/KR102639152B1/ko
Priority to US15/846,575 priority patent/US20180174108A1/en
Publication of KR20180070912A publication Critical patent/KR20180070912A/ko
Application granted granted Critical
Publication of KR102639152B1 publication Critical patent/KR102639152B1/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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • G06Q10/1093Calendar-based scheduling for persons or groups
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • G06Q10/063116Schedule adjustment for a person or group

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Educational Administration (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명의 일 태양에 따르면, 캘린더(calendar)에 관한 예측을 제공하기 위한 방법으로서, 적어도 하나의 사용자의 캘린더에 존재하는 적어도 하나의 이벤트의 시작 시점(start time)에 관한 정보를 포함하는 캘린더 데이터를 상기 적어도 하나의 이벤트가 상기 적어도 하나의 사용자의 캘린더에 등록된 시점(registered time)을 기준으로 하여 순차적으로 학습함으로써 예측의 대상이 되는 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점에 관한 제1 예측 데이터를 생성하고, 상기 신규 이벤트에 관한 텍스트 정보를 참조하여 상기 신규 이벤트의 시작 시점에 관한 제2 예측 데이터를 생성하고, 캘린더에 관한 상기 타겟 사용자의 선호 정보를 참조하여 상기 신규 이벤트의 시작 시점에 관한 제3 예측 데이터를 생성하는 단계, 및 상기 제1 예측 데이터, 상기 제2 예측 데이터 및 상기 제3 예측 데이터를 참조하여 상기 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯에 대하여 상기 신규 이벤트의 시작 시점을 포함할 가능성을 산출함으로써, 상기 신규 이벤트의 시작 시점을 예측하는 단계를 포함하는 방법이 제공된다.

Description

캘린더에 관한 예측을 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체{METHOD, SYSTEM AND NON-TRANSITORY COMPUTER-READABLE RECORDING MEDIUM FOR PROVIDING PREDICTIONS ON CALENDAR}
본 발명은 캘린더에 관한 예측을 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체에 관한 것이다.
근래에 들어, 인터넷, 클라우드 컴퓨팅 및 모바일 디바이스 분야의 기술이 발달함에 따라 구글 캘린더(Google Calendar), 마이크로소프트 아웃룩(Microsoft Outlook), 아이클라우드(iCloud)와 같은 클라우드 기반의 캘린더 관리 서비스가 다양하게 소개되고 있다.
종래에 소개된 캘린더 관리 서비스는, 사용자가 장소, 시간, 디바이스 등에 구애받지 않고 캘린더를 통합적으로 관리할 수 있도록 지원하는 기능을 제공하고 있지만, 아직까지는 사용자의 명시적이고도 구체적인 입력에 따라 이벤트를 생성, 수정, 삭제 또는 공유할 수 있도록 하는 정도의 기본적인 기능을 제공하는 것에 머무르고 있다.
최근에는, 사용자의 생활 패턴이나 업무 패턴을 분석하여 사용자의 캘린더에 관한 예측을 제공하는 종래 기술이 몇몇 소개되기도 하였지만, 이러한 종래 기술에 의하더라도, 예측의 신뢰도나 정확도가 높지 않아 사용자에게 실질적인 도움을 주기 어렵다는 한계는 여전히 존재한다.
본 발명은 상술한 종래 기술의 문제점을 모두 해결하는 것을 그 목적으로 한다.
본 발명은, 적어도 하나의 사용자의 캘린더에 존재하는 적어도 하나의 이벤트의 시작 시점(start time)에 관한 정보를 포함하는 캘린더 데이터를 적어도 하나의 이벤트가 적어도 하나의 사용자의 캘린더에 등록된 시점(registered time)을 기준으로 하여 순차적으로 학습함으로써 예측의 대상이 되는 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점에 관한 제1 예측 데이터를 생성하고, 신규 이벤트에 관한 텍스트 정보를 참조하여 신규 이벤트의 시작 시점에 관한 제2 예측 데이터를 생성하고, 캘린더에 관한 타겟 사용자의 선호 정보를 참조하여 신규 이벤트의 시작 시점에 관한 제3 예측 데이터를 생성하고, 제1 예측 데이터, 제2 예측 데이터 및 제3 예측 데이터를 참조하여 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯에 대하여 신규 이벤트의 시작 시점을 포함할 가능성을 산출하여 신규 이벤트의 시작 시점을 예측함으로써, 사용자가 자신의 캘린더 내에 새로 등록시키고자 하는 신규 이벤트에 적합한 시작 시점을 예측하는 것을 다른 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 일 태양에 따르면, 캘린더(calendar)에 관한 예측을 제공하기 위한 방법으로서, 적어도 하나의 사용자의 캘린더에 존재하는 적어도 하나의 이벤트의 시작 시점(start time)에 관한 정보를 포함하는 캘린더 데이터를 상기 적어도 하나의 이벤트가 상기 적어도 하나의 사용자의 캘린더에 등록된 시점(registered time)을 기준으로 하여 순차적으로 학습함으로써 예측의 대상이 되는 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점에 관한 제1 예측 데이터를 생성하고, 상기 신규 이벤트에 관한 텍스트 정보를 참조하여 상기 신규 이벤트의 시작 시점에 관한 제2 예측 데이터를 생성하고, 캘린더에 관한 상기 타겟 사용자의 선호 정보를 참조하여 상기 신규 이벤트의 시작 시점에 관한 제3 예측 데이터를 생성하는 단계, 및 상기 제1 예측 데이터, 상기 제2 예측 데이터 및 상기 제3 예측 데이터를 참조하여 상기 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯에 대하여 상기 신규 이벤트의 시작 시점을 포함할 가능성을 산출함으로써, 상기 신규 이벤트의 시작 시점을 예측하는 단계를 포함하는 방법이 제공된다.
본 발명의 다른 태양에 따르면, 캘린더(calendar)에 관한 예측을 제공하기 위한 시스템으로서, 적어도 하나의 사용자의 캘린더에 존재하는 적어도 하나의 이벤트의 시작 시점(start time)에 관한 정보를 포함하는 캘린더 데이터를 상기 적어도 하나의 이벤트가 상기 적어도 하나의 사용자의 캘린더에 등록된 시점(registered time)을 기준으로 하여 순차적으로 학습함으로써 예측의 대상이 되는 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점에 관한 제1 예측 데이터를 생성하는 캘린더 데이터 분석부, 상기 신규 이벤트에 관한 텍스트 정보를 참조하여 상기 신규 이벤트의 시작 시점에 관한 제2 예측 데이터를 생성하는 텍스트 정보 분석부, 캘린더에 관한 상기 타겟 사용자의 선호 정보를 참조하여 상기 신규 이벤트의 시작 시점에 관한 제3 예측 데이터를 생성하는 선호 정보 분석부, 및 상기 제1 예측 데이터, 상기 제2 예측 데이터 및 상기 제3 예측 데이터를 참조하여 상기 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯에 대하여 상기 신규 이벤트의 시작 시점을 포함할 가능성을 산출함으로써, 상기 신규 이벤트의 시작 시점을 예측하는 예측 제공부를 포함하는 시스템이 제공된다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 비일시성의 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
본 발명에 의하면, 사용자가 자신의 캘린더 내에 새로 등록시키고자 하는 신규 이벤트에 적합한 시작 시점을 예측할 수 있게 되는 효과가 달성된다.
또한, 본 발명에 의하면, 사용자의 캘린더에서 나타나는 이벤트 등록 패턴뿐만 아니라 해당 사용자가 새로 등록하고자 하는 신규 이벤트에 관한 텍스트 정보와 해당 사용자의 시간 슬롯에 관한 개인화된 선호 정보를 모두 고려함으로써, 신규 이벤트가 수행되기에 적합한 시간 또는 신규 이벤트가 수행될 가능성이 높은 시간을 예측할 수 있게 되는 효과가 달성된다.
또한, 본 발명에 의하면, 이벤트 등록 패턴에 관한 캘린더 데이터, 이벤트의 제목에 관한 텍스트 정보 및 시간 슬롯에 관한 선호 정보를 복합적으로 활용하여 신경망을 학습시킬 수 있으므로, 신경망 학습에 사용되는 데이터의 양이 상대적으로 적은 경우에도 신규 이벤트의 시작 시점을 충분히 정확하게 예측할 수 있게 되는 효과가 달성된다.
또한, 본 발명에 의하면, 사용자의 이벤트 등록 패턴에 관한 개인화된 캘린더 데이터와 사용자의 시간 슬롯에 관한 개인화된 선호 정보가 모두 고려될 수 있으므로, 사용자마다 개인화된 예측 모델을 따로 마련할 필요 없이 모든 사용자에게 동일하게 적용될 수 있는 통합적인 예측 모델을 구축할 수 있게 되는 효과가 달성된다.
본 발명에 의하면, 캘린더 데이터의 순차적인(sequential) 특성을 이용하여 예측 모델을 정확하게 학습시킬 수 있게 되는 효과가 달성된다.
또한, 본 발명에 의하면, 수많은 사용자의 캘린더로부터 관찰되는 시간 슬롯 선택 행위, 패턴 또는 경향에 관한 정보를 담고 있는 방대한 캘린더 데이터를 학습함으로써, 실제로 어떤 사람이 자신의 캘린더에 신규 이벤트를 새로 등록할 때 신규 이벤트의 시작 시점으로서 결정할 것으로 기대되는 시간 슬롯을 정확하게 예측할 수 있게 되는 효과가 달성된다.
도 1은 본 발명의 일 실시예에 따라 캘린더에 관한 예측을 제공하기 위한 전체 시스템의 개략적인 구성을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 캘린더 관리 시스템의 내부 구성을 예시적으로 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따라 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점을 예측하여 제공하는 구성을 예시적으로 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따라 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점에 적합한 시간 슬롯을 예측하는 구성을 예시적으로 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따라 제1 예측 데이터, 제2 예측 데이터 및 제3 예측 데이터를 각각 생성하고, 이들 예측 데이터를 통합적으로 이용하여 신규 이벤트의 시작 시점에 적합한 시간 슬롯을 예측하는 구성을 개념적으로 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따라 텍스트와 시간 슬롯 사이의 연관성에 관한 정보를 포함하는 언어 모델을 예시적으로 나타내는 도면이다.
도 7 내지 도 13은 본 발명의 일 실시예에 따라 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점에 적합한 시간 슬롯을 실제로 예측하는 실험을 수행한 결과를 예시적으로 나타내는 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
전체 시스템의 구성
도 1은 본 발명의 일 실시예에 따라 캘린더에 관한 예측을 제공하기 위한 전체 시스템의 개략적인 구성을 나타내는 도면이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 전체 시스템은 통신망(100), 캘린더 관리 시스템(200), 사용자 디바이스(300) 및 외부 서버(400)를 포함할 수 있다.
먼저, 본 발명의 일 실시예에 따른 통신망(100)은 유선 통신이나 무선 통신과 같은 통신 양태를 가리지 않고 구성될 수 있으며, 근거리 통신망(LAN; Local Area Network), 도시권 통신망(MAN; Metropolitan Area Network), 광역 통신망(WAN; Wide Area Network) 등 다양한 통신망으로 구성될 수 있다. 바람직하게는, 본 명세서에서 말하는 통신망(100)은 공지의 인터넷 또는 월드와이드웹(WWW; World Wide Web)일 수 있다. 그러나, 통신망(100)은, 굳이 이에 국한될 필요 없이, 공지의 유무선 데이터 통신망, 공지의 전화망 또는 공지의 유무선 텔레비전 통신망을 그 적어도 일부에 있어서 포함할 수도 있다.
다음으로, 본 발명의 일 실시예에 따른 캘린더 관리 시스템(200)은 적어도 하나의 사용자의 캘린더에 존재하는 적어도 하나의 이벤트의 시작 시점(start time)에 관한 정보를 포함하는 캘린더 데이터를 적어도 하나의 이벤트가 적어도 하나의 사용자의 캘린더에 등록된 시점(registered time)을 기준으로 하여 순차적으로 학습함으로써 예측의 대상이 되는 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점에 관한 제1 예측 데이터를 생성하고, 신규 이벤트에 관한 텍스트 정보를 참조하여 신규 이벤트의 시작 시점에 관한 제2 예측 데이터를 생성하고, 캘린더에 관한 타겟 사용자의 선호 정보를 참조하여 신규 이벤트의 시작 시점에 관한 제3 예측 데이터를 생성하고, 제1 예측 데이터, 제2 예측 데이터 및 제3 예측 데이터를 참조하여 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯에 대하여 신규 이벤트의 시작 시점을 포함할 가능성을 산출하여 신규 이벤트의 시작 시점을 예측함으로써, 사용자가 자신의 캘린더 내에 새로 등록시키고자 하는 신규 이벤트에 적합한 시작 시점을 예측하는 기능을 수행할 수 있다.
본 발명에 따른 캘린더 관리 시스템(200)의 구성과 기능에 관하여는 이하의 상세한 설명을 통하여 자세하게 알아보기로 한다.
다음으로, 본 발명의 일 실시예에 따르면, 사용자 디바이스(300)는 사용자가 캘린더 관리 시스템(200) 또는 외부 서버(400)에 접속한 후 통신할 수 있도록 하는 기능을 포함하는 디지털 기기로서, 스마트폰, 태블릿, 데스크탑 컴퓨터, 노트북 컴퓨터, 워크스테이션, PDA, 웹 패드, 이동 전화기 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 디지털 기기라면 얼마든지 본 발명에 따른 사용자 디바이스(300)로서 채택될 수 있다.
특히, 사용자 디바이스(300)는, 사용자가 캘린더 관리 시스템(200)으로부터 캘린더에 관한 서비스를 제공 받을 수 있도록 지원하는 애플리케이션(미도시됨)을 포함할 수 있다. 이와 같은 애플리케이션은 캘린더 관리 시스템(200) 또는 외부 서버(400)로부터 다운로드된 것일 수 있다.
한편, 본 발명의 일 실시예에 따르면, 외부 서버(400)는 캘린더 관리 시스템(200) 또는 사용자 디바이스(300)에게 캘린더 데이터에 관한 정보, 텍스트와 시간 슬롯 사이의 연관성에 관한 정보 또는 시간 슬롯에 대한 사용자의 선호 정보를 제공하는 기능을 수행할 수 있다. 구체적으로, 본 발명의 일 실시예에 따른 외부 서버(400)는, 온라인 캘린더 서비스를 제공하는 주체가 운용하는 서버이거나 사용자에 관한 다양한 문맥 정보 또는 선호 정보를 수집할 수 있는 트위터(Twitter), 페이스북(Facebook), 인스타그램(Instagram) 등의 소셜네트워크서비스(SNS)를 제공하는 주체가 운용하는 서버일 수 있다.
캘린더 관리 시스템의 구성
이하에서는, 본 발명의 구현을 위하여 중요한 기능을 수행하는 캘린더 관리 시스템의 내부 구성 및 각 구성요소의 기능에 대하여 살펴보기로 한다.
도 2는 본 발명의 일 실시예에 따른 캘린더 관리 시스템의 내부 구성을 예시적으로 나타내는 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 캘린더 관리 시스템(200)은, 캘린더 데이터 분석부(210), 텍스트 정보 분석부(220), 선호 정보 분석부(230), 예측 제공부(240), 통신부(250) 및 제어부(260)를 포함할 수 있다. 본 발명의 일 실시예에 따르면, 캘린더 데이터 분석부(210), 텍스트 정보 분석부(220), 선호 정보 분석부(230), 예측 제공부(240), 통신부(250) 및 제어부(260)는 그 중 적어도 일부가 외부 시스템(미도시됨)과 통신하는 프로그램 모듈들일 수 있다. 이러한 프로그램 모듈들은 운영 시스템, 응용 프로그램 모듈 및 기타 프로그램 모듈의 형태로 캘린더 관리 시스템(200)에 포함될 수 있으며, 물리적으로는 여러 가지 공지의 기억 장치 상에 저장될 수 있다. 또한, 이러한 프로그램 모듈들은 캘린더 관리 시스템(200)과 통신 가능한 원격 기억 장치에 저장될 수도 있다. 한편, 이러한 프로그램 모듈들은 본 발명에 따라 후술할 특정 업무를 수행하거나 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하지만, 이에 제한되지는 않는다.
먼저, 본 발명의 일 실시예에 따르면, 캘린더 데이터 분석부(210)는, 적어도 하나의 사용자의 캘린더에 존재하는 적어도 하나의 이벤트의 시작 시점(start time)에 관한 정보를 포함하는 캘린더 데이터를 적어도 하나의 이벤트가 적어도 하나의 사용자의 캘린더에 등록된 시점(registered time)을 기준으로 하여 순차적으로 학습함으로써, 예측의 대상이 되는 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점에 관한 제1 예측 데이터를 생성하는 기능을 수행할 수 있다(일명, 슬롯 임베딩(slot embedding)). 여기서, 본 발명의 일 실시예에 따르면, 제1 예측 데이터는, 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯이 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점을 포함하게 될 가능성(즉, 확률)에 관한 정보를 포함할 수 있다.
여기서, 본 발명의 일 실시예에 따르면, 사용자의 캘린더에 등록되는 적어도 하나의 이벤트는 시작 시점에 근거하여 소정의 시간 구간(예를 들면, 주(week), 월(month) 등)을 단위로 하는 이벤트 그룹으로 그룹화될 수 있으며, 위와 같은 이벤트 그룹 내에 포함되는 복수의 이벤트는 등록 시점의 순서대로 정렬될 수 있다. 또한, 본 발명의 일 실시예에 따르면, 앞서 언급된 제1 예측 데이터를 생성하기 위한 학습은 이벤트 그룹을 단위로 하여 수행될 수 있으며, 이에 따라 캘린더 데이터 분석부(210)는 특정 이벤트 그룹 내에 포함되는 이벤트의 시작 시점에 관한 정보를 포함하는 캘린더 데이터를 순차적으로 학습할 수 있다.
또한, 본 발명의 일 실시예에 따르면, 제1 예측 데이터를 생성하기 위해 수행되는 학습에 사용되는 캘린더 데이터는 복수의 사용자의 캘린더로부터 획득될 수 있고, 필요에 따라서는 예측의 정확도를 높이기 위해 수백 명 또는 수천 명 이상의 사용자의 캘린더로부터 획득되는 방대한 양의 캘린더 데이터가 학습에 사용될 수 있다.
예를 들면, n명의 사용자의 캘린더로부터 2016년 첫 주부터 2016년 마지막 주까지의 기간 내에 시작 시점이 포함되는 수많은 이벤트에 관한 방대한 양의 캘린더 데이터가 수집되는 경우를 가정할 수 있다. 이러한 경우에, 본 발명의 일 실시예에 따르면, 위와 같이 수집되는 캘린더 데이터는 사용자별로 또는 주별로 그룹화될 수 있고, 캘린더 데이터에 대한 학습은 위와 같은 그룹을 단위로 하여 수행될 수 있다. 또한, 본 발명의 일 실시예에 따르면, n명의 사용자의 캘린더로부터 수집된 캘린더 데이터에 대한 학습의 결과는 n명의 사용자에 속하는 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점을 예측하는 데에 사용될 수 있을 뿐만 아니라 n명의 사용자에 속하지 않는 다른 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점을 예측하는 데에도 폭넓게 활용될 수 있다.
구체적으로, 본 발명의 일 실시예에 따르면, 캘린더 데이터 분석부(210)는, 제j-1 이벤트(즉, 사용자의 캘린더에 j-1 번째로 등록되는 이벤트)가 제m 사용자의 캘린더에 등록된 시점 직후에 제m 사용자의 캘린더에 존재하는 적어도 하나의 이벤트의 시작 시점에 관한 정보를 포함하는 제j-1 캘린더 데이터와 제j 이벤트(즉, 사용자의 캘린더에 j 번째로 등록되는 이벤트)가 제m 사용자의 캘린더에 등록된 시점 직후에 제m 사용자의 캘린더에 존재하는 적어도 하나의 이벤트의 시작 시점에 관한 정보를 포함하는 제j 캘린더 데이터를 순차적으로 학습함으로써, 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점에 관한 제1 예측 데이터를 생성할 수 있다. 일반적으로, 사용자는 자신의 캘린더에 이벤트를 등록(즉, 생성)함에 있어서 자신이 선호하는 시간 슬롯을 먼저 활용하는 경향을 보이므로, 본 발명의 일 실시예에 따라 여러 사용자의 캘린더에 등록되는 이벤트의 시작 시점을 그 등록된 시점의 순서를 기준으로 하여 순차적으로 학습함으로써, 타겟 사용자가 자신의 캘린더에 새로 등록할 신규 이벤트의 시작 시점을 배치시키기에 적절한 시간 슬롯을 예측할 수 있게 된다.
보다 구체적으로, 본 발명의 일 실시예에 따르면, 캘린더 데이터 분석부(210)는, 순환형 신경망(Recurrent Neural Network) 알고리즘을 이용하여 캘린더 데이터를 순차적으로 학습할 수 있다. 예를 들면, 본 발명의 일 실시예에 따른 캘린더 데이터 분석부(210)는, RNN-LSTM(Recurrent Neural Network-Long Short Term Memory) 기반의 학습 모델을 사용하여 캘린더 데이터를 순차적으로 학습할 수 있다.
또한, 본 발명의 일 실시예에 따르면, 캘린더 데이터는, 적어도 하나의 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯(slot)을 기준으로 하여 정의되는 캘린더 맵(calendar map)에 의하여 특정될 수 있다.
다음으로, 본 발명의 일 실시예에 따르면, 텍스트 정보 분석부(220)는, 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트에 관한 텍스트 정보를 참조하여 해당 신규 이벤트의 시작 시점에 관한 제2 예측 데이터를 생성하는 기능을 수행할 수 있다(일명, 워드 임베딩(word embedding)). 여기서, 본 발명의 일 실시예에 따르면, 신규 이벤트에 관한 텍스트 정보에는, 해당 신규 이벤트의 제목을 구성하는 텍스트, 해당 신규 이벤트에 관하여 작성된 메모를 구성하는 텍스트, 해당 신규 이벤트에 참여하는 다른 사용자의 이름을 구성하는 텍스트, 해당 신규 이벤트가 개최되는 장소 또는 시간을 가리키는 텍스트 등이 포함될 수 있다. 또한, 본 발명의 일 실시예에 따르면, 제2 예측 데이터는, 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯이 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점을 포함하게 될 가능성(즉, 확률)에 관한 정보를 포함할 수 있다.
구체적으로, 본 발명의 일 실시예에 따르면, 텍스트 정보 분석부(220)는 신규 이벤트의 제목을 구성하는 텍스트와 시간 사이의 연관성을 학습하는 알고리즘을 이용하거나 텍스트와 시간 사이의 소정의 연관성에 관한 정보를 포함하는 모델을 이용하여 신규 이벤트의 시작 시점에 관한 제2 예측 데이터를 생성할 수 있다.
다음으로, 본 발명의 일 실시예에 따르면, 선호 정보 분석부(230)는, 캘린더에 관한 타겟 사용자의 선호 정보를 참조하여 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점에 관한 제3 예측 데이터를 생성하는 기능을 수행할 수 있다(일명, 유저 임베딩(user embedding)). 여기서, 본 발명의 일 실시예에 따르면, 제3 예측 데이터는, 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯이 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점을 포함하게 될 가능성(즉, 확률)에 관한 정보를 포함할 수 있다. 또한, 본 발명의 일 실시예에 따르면, 사용자의 선호 정보는 사용자가 캘린더를 사용하는 양상 또는 경향에 따라 동적으로 업데이트될 수 있다.
구체적으로, 본 발명의 일 실시예에 따르면, 선호 정보 분석부(230)는, 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯에 대한 타겟 사용자의 선호 정보를 참조하여 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점이 포함되기에 적합한 시간 슬롯을 예측함으로써, 신규 이벤트의 시작 시점에 관한 제3 예측 데이터를 생성할 수 있다. 보다 구체적으로, 본 발명의 일 실시예에 따르면, 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯에 대한 타겟 사용자의 선호 정보는, 타겟 사용자의 캘린더에 존재하는 이벤트의 시작 시점에 관한 정보를 포함하는 캘린더 데이터를 이벤트가 타겟 사용자의 캘린더에 등록된 시점을 기준으로 하여 순차적으로 학습한 결과로서 도출될 수 있다.
한편, 본 발명의 일 실시예에 따르면, 앞서 언급된 캘린더 데이터, 텍스트 정보 및 선호 정보는 본 발명에 따른 캘린더 관리 시스템(200)에 의하여 제공되는 캘린더 서비스 내에서 생성되고 관리되는 데이터 또는 정보일 수 있지만, 반드시 이에 한정되는 것은 아니며, 앞서 언급된 캘린더 데이터, 텍스트 정보 및 선호 정보 중 적어도 일부가 본 발명에 따른 캘린더 관리 시스템(200)의 외부에 존재하는 외부 서버(400)로부터 수집될 수도 있음을 밝혀 둔다.
다음으로, 본 발명의 일 실시예에 따르면, 예측 제공부(240)는, 앞서 생성되는 제1 예측 데이터, 제2 예측 데이터 및 제3 예측 데이터를 참조하여, 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점을 예측하는 기능을 수행할 수 있다. 또한, 본 발명의 일 실시예에 따르면, 예측 제공부(240)는, 신규 이벤트의 시작 시점을 포함할 가능성이 높은 것으로 예측되는 적어도 하나의 시간 슬롯을 타겟 사용자에게 추천할 수 있다.
구체적으로, 본 발명의 일 실시예에 따르면, 예측 제공부(240)는, 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯에 대하여 타겟 사용자의 캘린더에 새로 등록된 신규 이벤트의 시작 시점을 포함할 가능성을 산출함으로써 신규 이벤트의 시작 시점을 포함할 가능성이 가장 높은 n개의 시간 슬롯을 결정할 수 있고, 이렇게 결정되는 n개의 시간 슬롯을 예측 결과로서 타겟 사용자에게 제공할 수 있다.
보다 구체적으로, 본 발명의 일 실시예에 따르면, 신규 이벤트의 시작 시점에 관한 제1 예측 데이터, 제2 예측 데이터 및 제3 예측 데이터는 각각 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯이 신규 이벤트의 시작 시점을 포함할 확률을 직접적으로 또는 간접적으로 표현하는 벡터로서 특정될 수 있고, 본 발명의 일 실시예에 따른 예측 제공부(240)는 제1 예측 데이터를 특정하는 벡터, 제2 예측 데이터를 특정하는 벡터 및 제3 예측 데이터를 특정하는 벡터를 결합(composition)한 결과로서 생성되는 출력(output) 벡터를 참조하여 신규 이벤트의 시작 시점을 포함할 가능성이 높은 시간 슬롯을 예측할 수 있다.
도 3은 본 발명의 일 실시예에 따라 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점을 예측하여 제공하는 구성을 예시적으로 나타내는 도면이다.
도 3을 참조하면, 사용자 A가 자신의 캘린더(301)에 "Meeting w/ Jake"라는 신규 이벤트(310)를 새로 등록하는 경우를 가정할 수 있다.
이러한 경우에, 본 발명의 일 실시예에 따른 캘린더 관리 시스템(200)은, 사용자 A를 포함하거나 포함하지 않는 복수의 사용자의 캘린더에 이미 등록되어 있는(즉, 이미 존재하는) 복수의 다른 이벤트(321 내지 327)의 시작 시점에 관한 정보를 포함하는 캘린더 데이터를 복수의 다른 이벤트(321 내지 327)가 복수의 사용자의 캘린더에 등록된 시점의 순서대로 순차적으로 학습함으로써 사용자 A의 캘린더에 새로 등록될 신규 이벤트(310)의 시작 시점에 관한 제1 예측 데이터를 생성할 수 있고, 신규 이벤트(310)의 제목을 구성하는 텍스트 정보(즉, "Meeting w/ Jake")를 참조하여 신규 이벤트(310)의 시작 시점에 관한 제2 예측 데이터를 생성할 수 있고, 사용자 A의 캘린더를 구성하는 시간 슬롯에 대한 사용자 A의 선호 정보를 참조하여 신규 이벤트(310)의 시작 시점에 관한 제3 예측 데이터를 생성할 수 있다. 또한, 본 발명의 일 실시예에 따른 캘린더 관리 시스템(200)은, 위의 생성되는 제1 예측 데이터, 제2 예측 데이터 및 제3 예측 데이터를 모두 참조하여 사용자 A의 캘린더(301)를 구성하는 복수의 시간 슬롯(331 내지 338)에 대하여 신규 이벤트(310)의 시작 시점을 포함할 가능성을 산출할 수 있으며, 위의 산출되는 가능성이 0.30으로 가장 높은 특정 시간 슬롯(335)을 신규 이벤트의 시작 시점에 적합한(또는 신규 이벤트의 시작 시점을 포함할 것으로 예측되는) 시간 슬롯인 것으로 결정할 수 있다.
한편, 본 발명의 일 실시예에 따른 통신부(250)는 캘린더 관리 시스템(200)이 사용자 디바이스(300) 등의 외부 장치와 통신할 수 있도록 하는 기능을 수행한다.
마지막으로, 본 발명의 일 실시예에 따른 제어부(260)는 캘린더 데이터 분석부(210), 텍스트 정보 분석부(220), 선호 정보 분석부(230), 예측 제공부(240) 및 통신부(250) 간의 데이터의 흐름을 제어하는 기능을 수행한다. 즉, 제어부(260)는 외부로부터의 또는 캘린더 관리 시스템(200)의 각 구성요소 간의 데이터의 흐름을 제어함으로써, 캘린더 데이터 분석부(210), 텍스트 정보 분석부(220), 선호 정보 분석부(230), 예측 제공부(240) 및 통신부(250)에서 각각 고유 기능을 수행하도록 제어한다.
실시예
이하에서는, 도 4 내지 도 13을 참조하여, 본 발명의 일 실시예에 따라 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점을 예측하는 구성에 대하여 상세하게 살펴보기로 한다.
본 발명의 일 실시예에 따르면, 사용자의 캘린더에 등록되는 이벤트는, 제목(title), 시작 시점(start time) 및 등록 시점(registered time)이라는 세 가지 속성을 가질 수 있다. 여기서, 본 발명의 일 실시예에 따르면, 이벤트의 제목은 이벤트의 목적, 유형, 장소, 참가자 등을 나타내기 위해 임의로 입력되는 텍스트 정보를 가리키고, 이벤트의 시작 시점은 이벤트가 시작되기로 계획된 시점을 가리키고, 이벤트의 등록 시점은 이벤트가 사용자의 캘린더에 등록된(즉, 생성된) 시점을 가리킬 수 있다. 특히, 본 발명의 일 실시예에 따르면, 사용자는 자신이 선호하는 시간 슬롯일수록 이벤트를 먼저 채워 넣는 성향을 보이는 것이 일반적이므로, 이벤트의 등록 시점은 시간 슬롯에 대한 사용자의 선호도를 학습함에 있어서 중요한 근거로서 활용될 수 있다.
또한, 본 발명의 일 실시예에 따르면, 사용자의 캘린더에 존재하는 이벤트는, 사용자의 캘린더에 등록되는 복수의 이벤트는 시작 시점에 근거하여 소정의 시간 구간(예를 들면, 주(week), 월(month) 등)을 단위로 하여 그룹화될 수 있으며, 위와 같이 그룹화된 이벤트 그룹 내에 포함되는 복수의 이벤트는 등록 시점의 순서대로 정렬될 수 있다.
또한, 본 발명의 일 실시예에 따르면, 사용자 A의 캘린더에서, 시작 시점이 i 번째 시간 구간(예를 들면, 2016년의 i 번째 주 등)에 포함되는 k개의 이벤트는 하나의 이벤트 그룹으로 그룹화될 수 있고, 이러한 이벤트 그룹(Ei)은 다음의 수학식 1과 같이 나타낼 수 있다.
<수학식 1>
Ei = [ei,0, ei,1, ..., ei,k -1]
수학식 1에서, k개의 이벤트는 등록 시점의 순서(j, j = 0 to k-1)에 따라 정렬될 수 있고, k개의 이벤트 각각(ei,j)은 다음의 수학식 2와 같이 나타낼 수 있다.
<수학식 2>
ei,j = (xi,j, ti,j)
수학식 2에서, xi,j는 이벤트 그룹 Ei에서 j+1 번째로 등록된 이벤트의 시작 시점을 포함하는 시간 슬롯을 가리키고, ti,j는 이벤트 그룹 Ei에서 j+1 번째로 등록된 이벤트의 제목을 가리킬 수 있다.
또한, 본 발명의 일 실시예에 따르면, 본 발명의 일 실시예에 따른 캘린더 관리 시스템(200)은, 여러 명의 사용자의 캘린더로부터 얻을 수 있는 캘린더 데이터에 대한 학습 결과와 이벤트의 제목을 구성하는 텍스트 정보 및 시간 슬롯에 대한 타겟 사용자의 선호 정보를 참조하여, 타겟 시간 구간(즉, 스케줄링의 대상이 되는 시간 구간 또는 신규 이벤트의 시작 시점이 포함될 시간 구간) 내에서 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 가장 적합한 시작 시점(즉, 시간 슬롯)을 찾을 수 있다.
구체적으로, 본 발명의 일 실시예에 따른 캘린더 데이터 분석부(210)는, 여러 명의 사용자의 캘린더로부터 획득되는 캘린더 데이터에 대한 학습한 수행한 결과를 참조하여, 타겟 시간 구간(즉, 스케줄링의 대상이 되는 시간 구간 또는 신규 이벤트의 시작 시점이 포함될 시간 구간) 내에 이미 등록되어 있는 j 개의 이벤트가 등록되어 있는 상황에서 해당 시간 구간 내에 새로 등록될 j+1 번째 이벤트(ei,j)(즉, 신규 이벤트)의 시작 시점에 어울리는 시간 슬롯을 예측할 수 있다. 또한, 본 발명의 일 실시예에 따른 텍스트 정보 분석부(220)는, 타겟 시간 구간(즉, 스케줄링의 대상이 되는 시간 구간 또는 신규 이벤트의 시작 시점이 포함될 시간 구간) 내에 새로 등록될 j+1 번째 이벤트(ei,j)의 제목(ti,j)을 참조하여, j+1 번째 이벤트(ei,j)의 시작 시점에 어울리는 시간 슬롯을 예측할 수 있다. 또한, 본 발명의 일 실시예에 따른 선호 정보 분석부(230)는, 타겟 시간 구간(즉, 스케줄링의 대상이 되는 시간 구간 또는 신규 이벤트의 시작 시점이 포함될 시간 구간) 내에 포함되는 시간 슬롯에 대한 타겟 사용자의 선호 정보를 참조하여 j+1 번째 이벤트(ei,j)의 시작 시점에 어울리는 시간 슬롯을 예측할 수 있다.
보다 구체적으로, 본 발명의 일 실시예에 따르면, 타겟 시간 구간(즉, 스케줄링의 대상이 되는 시간 구간 또는 신규 이벤트의 시작 시점이 포함될 시간 구간)에 속하는 어떤 시간 슬롯(xi,j)이 새로 등록될 j+1 번째 이벤트(ei,j)의 시작 시점을 포함할 가능성을 나타내는 조건부 확률(p)을 다음의 수학식 3과 같이 나타낼 수 있다.
<수학식 3>
p(xi,j|ei,0, ei,1, ..., ei,j-1, ti,j)
수학식 3에서, ti,j는 새로 등록될 j+1 번째 이벤트의 제목을 가리킬 수 있다.
도 4는 본 발명의 일 실시예에 따라 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점에 적합한 시간 슬롯을 예측하는 구성을 예시적으로 나타내는 도면이다.
도 4를 참조하면, i 번째 주(도 4의 ith week)(401)에 j 개의 이벤트가 등록된 상황에서 새로 등록될 j+1 번째 이벤트(ei,j = (xi,j, ti,j))의 시작 시점에 적합한 시간 슬롯을 예측함에 있어서, 위의 수학식 3에 따른 조건부 확률(p)이 가장 높게 산출되는 시간 슬롯(410)을 j+1 번째 이벤트의 시작 시점에 가장 적합한 시간 슬롯인 것으로 예측할 수 있다.
이하에서는, 타겟 시간 구간(즉, 스케줄링의 대상이 되는 시간 구간 또는 신규 이벤트의 시작 시점이 포함될 시간 구간)을 구성하는 시간 슬롯 중 위의 수학식 3에 따른 조건부 확률이 높게 나타나는 적어도 하나의 시간 슬롯을 예측하는 과정에 대하여 보다 구체적으로 설명하기로 한다.
도 5는 본 발명의 일 실시예에 따라 제1 예측 데이터, 제2 예측 데이터 및 제3 예측 데이터를 각각 생성하고, 위의 세 가지 예측 데이터를 통합적으로 이용하여 신규 이벤트의 시작 시점에 적합한 시간 슬롯을 예측하는 구성을 개념적으로 나타내는 도면이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 캘린더 관리 시스템(200)은, RNN-LSTM 기반의 학습 모델(도 5의 LSTM 또는 Recurrent Neural Network)을 사용하여 여러 명의 사용자의 캘린더로부터 획득되는 수많은 캘린더 데이터에 대한 학습을 수행한 결과를 참조하는 것에 더하여, 타겟 사용자의 캘린더의 타겟 시간 구간(즉, 스케줄링의 대상이 되는 시간 구간 또는 신규 이벤트의 시작 시점이 포함될 시간 구간) 내에 이벤트가 등록될 때마다(즉, 타겟 사용자의 캘린더의 이벤트 등록 상태에 변경이 발생할 때마다) 타겟 사용자의 캘린더에 존재하는 이벤트의 시작 시점(도 5의 Slot 58, 90, 72 35, 108 등)에 관한 정보를 포함하는 캘린더 데이터를 순차적으로 학습함으로써, 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점에 관한 제1 예측 데이터를 생성할 수 있다(도 5의 Slot Embedding).
예를 들면, 타겟 사용자의 캘린더에서 i 번째 주에 t 번째(t = 1 to k) 이벤트(ei,t)가 등록되면, t 번째 이벤트의 시작 시점에 관한 정보(xi,t)가 RNN-LSTM 기반의 학습 모델에 입력될 수 있고, RNN-LSTM 기반의 학습 모델이 위와 입력에 기초하여 학습을 수행함에 따라 i 번째 주에 t+1 번째로 등록될 신규 이벤트(ei,t + 1)의 시작 시점에 관한 제1 예측 데이터(yi,t)가 출력될 수 있고, 이러한 제1 예측 데이터(yi,t)는 소정의 벡터로서 특정될 수 있다.
계속하여, 도 5를 참조하면, 본 발명의 일 실시예에 따른 캘린더 관리 시스템(200)은, 캘린더에 등록되는 이벤트의 제목을 구성할 수 있는 다양한 텍스트와 캘린더를 구성하는 시간 슬롯 사이의 연관성에 관한 정보를 포함하는 소정의 언어 모델(일종의 데이터베이스)과 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 제목(도 5의 w/, John, Dinner, @, Seoul 등)을 참조함으로써, 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점에 관한 제2 예측 데이터를 생성할 수 있다(도 5의 Word Embedding).
예를 들면, 텍스트와 시간 슬롯 사이의 연관성에 관한 정보를 포함하는 언어 모델과 타겟 사용자의 i 번째 주에 t+1 번째로 등록될 신규 이벤트(ei,t + 1)의 제목(ti,t+1)에 근거하여, i 번째 주에 t+1 번째로 등록될 신규 이벤트(ei,t + 1)의 시작 시점에 관한 제2 예측 데이터(Ti,t + 1)가 생성될 수 있고, 이러한 제2 예측 데이터(Ti,t+1)는 벡터로서 특정될 수 있다.
도 6은 본 발명의 일 실시예에 따라 텍스트와 시간 슬롯 사이의 연관성에 관한 정보를 포함하는 언어 모델을 예시적으로 나타내는 도면이다.
도 6을 참조하면, 수많은 사용자들의 캘린더에 등록되는 다양한 이벤트의 제목을 구성하는 텍스트 및 그에 대응하는(또는 연관된) 시간 슬롯에 관한 데이터를 학습한 결과로서, 텍스트와 시간 슬롯 사이의 연관성에 관한 정보를 포함하는 언어 모델(일명, Cal2Vec 모델)이 생성될 수 있다. 특히, 본 발명의 일 실시예에 따르면, 격식을 갖춘 문서나 대화에서 별로 사용되지 않지만 이벤트의 제목에서는 흔히 사용되는 약자(예를 들면, conf, mtg 등) 또는 특수기호(예를 들면, w/, @ 등)에 대하여도 시간 슬롯과의 연관성이 도출될 수 있게 된다.
계속하여, 도 5를 참조하면, 본 발명의 일 실시예에 따른 캘린더 관리 시스템(200)은, 캘린더 서비스의 안팎에서 관찰되는 시간 슬롯에 대한 타겟 사용자(도 5의 User 0, 53, 99 등)의 선호 정보를 참조하여 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점에 관한 제3 예측 데이터를 생성할 수 있다(도 5의 User Embedding).
예를 들면, 타겟 사용자인 사용자 v의 선호 정보에 근거하여 i 번째 주에 t+1 번째로 등록될 신규 이벤트(ei,t + 1)의 시작 시점(xi,t)에 관한 제3 예측 데이터(Uv)가 생성될 수 있고, 이러한 제3 예측 데이터(Uv)는 벡터로서 특정될 수 있다.
계속하여, 도 5를 참조하면, 본 발명의 일 실시예에 따른 캘린더 관리 시스템(200)은, 캘린더 데이터에 근거한 제1 예측 데이터(yi,t), 이벤트의 제목에 근거한 제2 예측 데이터(Ti,t +1) 및 타겟 사용자의 선호 정보에 기초한 제3 예측 데이터(Uv)가 모두 결합(composition)된 또는 임베딩(embedding)된 통합 예측 데이터([yi,t, Ti,t+1, Uv])를 도출할 수 있다(도 5의 Composition Layer).
구체적으로, 본 발명의 일 실시예에 따르면, 제1 예측 데이터(yi,t), 제2 예측 데이터(Ti,t+1) 및 제3 예측 데이터(Uv)를 결합하여 통합 예측 데이터(즉, 출력 벡터)를 도출함에 있어서, 정규화(normalize) 또는 최적화(optimize)에 관한 다양한 알고리즘이 적용될 수 있을 것이다.
계속하여, 도 5를 참조하면, 본 발명의 일 실시예에 따른 캘린더 관리 시스템(200)은, 위와 같이 도출된 통합 예측 데이터에 근거하여 타겟 사용자인 사용자 v(uv)의 캘린더의 i 번째 시간 구간에 속하는 어떤 시간 슬롯(xi,j)이 새로 등록될 t+1 번째 이벤트(ei,t + 1)의 시작 시점을 포함할 가능성을 나타내는 조건부 확률(p)을 산출할 수 있다(도 5의 Next Event Time Prediction). 본 발명의 일 실시예에 따르면, 위의 조건부 확률(p)는 다음의 수학식 4와 같이 나타낼 수 있다.
<수학식 4>
p(xi,t+1|ei,0, ei,1, ..., ei,t, ti,t+1, uv)
계속하여, 도 5를 참조하면, 본 발명의 일 실시예에 따른 캘린더 관리 시스템(200)은, 위의 산출되는 조건부 확률(p)에 근거하여 타겟 사용자인 사용자 v(uv)의 캘린더의 i 번째 시간 구간에 새로 등록될 t+1 번째 이벤트의 시작 시점에 적합한 상위 n개의 시간 슬롯을 사용자에게 추천할 수 있다.
실험예
도 7 내지 도 13은 본 발명의 일 실시예에 따라 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점을 포함하기에 적합한 시간 슬롯을 실제로 예측하는 실험을 수행한 결과를 예시적으로 나타내는 도면이다.
도 7 내지 도 13의 실험예에서, 영어를 사용하는 2,312명의 사용자의 캘린더로부터 2015년 4월부터 2016년 2월까지의 기간에 해당하는 캘린더 데이터가 수집되었고, 캘린더 데이터의 유효성을 높이기 위하여 기설정된 규칙이나 다른 앱에 의하여 자동적으로 생성되는 이벤트, 둘 이상의 사용자가 공유하는 캘린더에서 생성되는 이벤트, 제목이 비어 있거나 별 의미가 없는 제목을 갖는 이벤트 및 특정 시간 슬롯에 국한되지 않고 하루 종일 진행되는 이벤트에 관한 데이터는 제외되었다.
또한, 도 7 내지 도 13의 실험예에서, 위의 수집된 캘린더 데이터 중 캘린더에 등록된 이벤트의 수가 500개 이상인 사용자 100명의 캘린더 데이터가 선별되어 사용되었고, 이렇게 선별된 캘린더 데이터를 구성하는 이벤트의 수는 총 154,590개였다.
또한, 도 7 내지 도 13의 실험예에서, 실험 결과의 다양성과 신뢰성을 높이기 위하여, 학습(즉, 머신 러닝(machine learning)) 또는 예측의 범위를 정의하는 이벤트 그룹을 특정하는 기준이 되는 일주일이라는 시간 구간을 다양한 길이의 시간 슬롯으로 나누어 보았다. 구체적으로, 도 7 내지 도 13의 실험예에서, 일주일을 1시간 길이의 시간 슬롯 168개로 나누어 구성한 경우(도 7의 168 class), 일주일을 2시간 길이의 시간 슬롯 84개로 나누어 구성한 경우(도 7의 84 class), 일주일을 4시간 길이의 시간 슬롯 42개로 나누어 구성한 경우(도 7의 42 class) 및 0시에서 6시까지의 시간대를 제외한 채로 일주일을 밀집된 4시간 길이의 시간 슬롯 42개로 나누어 구성한 경우(도 7의 42 class(density))를 각각 상정하였고, 위의 네 가지 경우 각각에 대하여 신규 이벤트의 시작 시점을 예측한 결과의 정확도(accuracy)를 측정하였다.
먼저, 도 7을 참조하면, WR(Weighted Random) 예측 모델, SVP(Support Vector Machine) 예측 모델, MLP(Multi-Layer Perceptron) 예측 모델 등의 종래 기술에 따른 예측 모델을 사용하여 이벤트의 시작 시점을 예측한 결과의 정확도와 본 발명에 따른 LSTM(Long Short Term Memory) 예측 모델(보다 정확하게는, LSTM_WSU(Long Short Term Memory_Word Slot User)을 사용하여 이벤트의 시작 시점을 예측한 결과의 정확도를 비교하여 확인할 수 있다. 도 7에서, "Top 1"은 예측 모델에 의하여 예측된 상위 한 개의 시간 슬롯이 실제로 신규 이벤트의 시작 시점을 포함하게 될 확률(즉, 예측 모델에 의하여 예측된 한 개의 시간 슬롯이 실제로 사용자에 의해 신규 이벤트의 시작 시점으로서 선택될 확률)을 가리키고, "Top 5"는 예측 모델에 의하여 예측된 상위 다섯 개의 시간 슬롯 중 어느 하나라도 실제로 신규 이벤트의 시작 시점을 포함하게 될 확률(즉, 예측 모델에 의하여 예측된 상위 다섯 개의 시간 슬롯 중 어느 하나라도 실제로 사용자에 의해 신규 이벤트의 시작 시점으로서 선택될 확률)을 가리킨다. 즉, 도 7에서 "Top 1" 또는 "Top 5"의 확률 값이 높게 나타날수록 예측 모델의 예측 정확도가 높다고 할 수 있다.
구체적으로, 도 7을 참조하면, WR 예측 모델을 사용하는 경우에(도 7의 WR) 예측 과정에서 문맥 정보가 고려되지 않기 때문에 예측 정확도가 가장 낮게 나타났다. 계속하여, 도 7을 참조하면, SVP 예측 모델이나 MLP 예측 모델을 사용하는 경우에(도 7의 SVP, MLP)는 WR 예측 모델을 사용하는 경우에 비하여 예측 정확도가 높은 것으로 나타났고, SVP 예측 모델과 MLP 예측 모델 모두에서 이벤트의 시간 슬롯(S)에 관한 정보 또는 이벤트의 제목(W), 사용자의 선호 정보(U) 등의 문맥 정보가 더 반영됨에 따라(도 7의 SVP_W, SVP_WU, MLP_W, MLP_WS, MLP_WSU) 예측 정확도가 높아지는 것으로 나타났다. 계속하여, 도 7을 참조하면, 본 발명에 따른 LSTM 예측 모델을 사용하는 경우에(도 7의 LSTM) 종래 기술에 따른 예측 모델을 사용하는 경우에 비하여 예측 정확도가 높은 것으로 나타났고, 특히, 이벤트의 시간 슬롯(S)에 관한 정보, 이벤트의 제목(W)에 관한 정보 및 사용자의 선호 정보(U)가 더 반영됨에 따라(도 7의 LSTM_W, LSTM_WS, LSTM_WSU) 본 발명에 따른 LSTM 예측 모델의 예측 정확도가 현저하게 높아지는 것으로 나타났다.
특히, 도 7을 참조하면, 본 발명에 따른 워드 임베딩, 슬롯 임베딩 및 유저 임베딩이 모두 적용된 LSTM 예측 모델(도 7의 LSTM_WSU)을 사용하는 경우에, 일주일을 1시간 길이의 시간 슬롯 168개로 나누어 구성한 경우(도 7의 168 class), 일주일을 2시간 길이의 시간 슬롯 84개로 나누어 구성한 경우(도 7의 84 class), 일주일을 4시간 길이의 시간 슬롯 42개로 나누어 구성한 경우(도 7의 42 class) 및 0시에서 6시까지의 시간대를 제외한 채로 일주일을 밀집된 4시간 길이의 시간 슬롯 42개로 나누어 구성한 경우(도 7의 42 class(density)) 모두에서, 예측 정확도가 가장 높은 것으로 나타났다.
한편, 도 7을 참조하면, 0시에서 6시까지의 시간대를 제외한 채로 일주일을 밀집된 4시간 길이의 시간 슬롯 42개로 나누어 구성한 경우(도 7의 42 class(density))의 예측 정확도가 일주일을 4시간 길이의 시간 슬롯 42개로 구성한 경우(도 7의 42 class)의 예측 정확도보다 오히려 낮게 나타난 것을 확인할 수 있다. 따라서, 본 발명의 일 실시예에 따르면, 캘린더 데이터를 순차적으로 학습하거나 이벤트의 제목에 관한 정보 및 사용자의 선호 정보를 고려하여 예측을 수행함에 있어서 균등하게 분할된 시간 슬롯을 사용하는 것이 효과적이라고 할 수 있다.
이하에서는, 본 발명에 따른 예측 모델이 위와 같이 뛰어난 예측 성능을 달성할 수 있게 된 이유에 대하여 상세하게 살펴보기로 한다.
도 8은 본 발명의 일 실시예에 따라 이벤트의 시작 시점에 관한 정보를 포함하는 캘린더 데이터를 이벤트의 등록 시점을 기준으로 하여 순차적으로 학습함으로써 달성될 수 있는 현저한 효과를 예시적으로 나타내는 도면이다.
도 8을 참조하면, 본 발명에 따라 캘린더 데이터를 순차적으로 학습한 결과로서 사용자의 캘린더를 구성하는 시간 슬롯에 이벤트의 시작 시점 및 등록 시점에 관한 소정의 벡터 값이 부여될 수 있는데, 시간적으로 가까운 시간 슬롯들이 서로 유사한 벡터 값을 갖는 경향을 보이는 것을 확인할 수 있다. 예를 들면, 벡터 값에 기초하여 도시된 도 8의 2차원 평면에서, 월요일 오후 시간대(Mon/13 등)에 해당하는 시간 슬롯들이 서로 가깝게 모여 있고, 금요일 저녁부터 일요일 저녁까지의 주말 시간대에 해당하는 시간 슬롯들도 서로 가깝게 모여 있는 것을 확인할 수 있다. 즉, 본 발명에 따른 RNN_LSTM 기반의 예측 모델에 의하면, 사용자의 캘린더에 등록되는 이벤트의 시작 시점 및 등록 시점에서 나타나는 패턴이 관찰될 수 있고, 이에 따라 시간적으로 또는 문맥적으로 가까운 시간 슬롯들 사이에서 소정의 상관 관계가 발견되거나 시간적으로 또는 문맥적으로 먼 시간 슬롯들 사이에서 소정의 우열 관계가 발견될 수도 있다.
도 9 내지 도 12는 본 발명의 일 실시예에 따라 이벤트의 제목을 참조함으로써 달성될 수 있는 현저한 효과를 예시적으로 나타내는 도면이다.
도 9 내지 도 12의 실험예에서, 신규 이벤트의 제목에 포함되는 텍스트를 제외한 나머지 조건은 동일한 두 가지 실험 결과를 비교함으로써, 텍스트의 제목에 포함되는 텍스트가 신규 이벤트의 시작 시점 예측에 미치는 영향을 간접적으로 알아보는 실험을 수행하였다. 도 9 내지 도 12에서, 그리드 패턴(grid pattern)으로 표시된 시간 슬롯은 타겟 사용자의 캘린더에 이미 등록되어 있는 이벤트의 시작 시점을 포함하는 시간 슬롯을 가리키고, 도트 패턴(dot pattern)으로 표시된 시간 슬롯은 타겟 사용자의 캘린더에 새로 등록된 신규 이벤트의 시작 시점을 포함하는 시간 슬롯으로서 실제로 타겟 사용자에 의해 최종적으로 선택된 시간 슬롯을 가리킨다. 또한, 도 19 내지 도 12에서, 시간 슬롯이 신규 이벤트의 시작 시점을 포함할 확률이 높을수록 시간 슬롯에 표시되는 음영이 진하게 표시되었다.
먼저, 도 9를 참조하면, 사용자의 캘린더에 새로 등록된 신규 이벤트의 제목에 "lunch"라는 텍스트가 포함되는 경우에 점심 식사를 하기에 적절하다고 여겨지는 평일 점심 시간대(즉, 도 9의 (a)의 Mon, Tue, Wed, Thu 및 Fri의 (10:00, 12:00) 및 (12:00, 14:00))에 해당하는 시간 슬롯에서 신규 이벤트의 시작 시점을 포함할 확률이 높은 것으로 예측되고, 신규 이벤트의 제목에 "church"라는 텍스트가 포함되는 경우에는 교회에 가기에 적절하다고 여겨지는 주말 오후 시간대(즉, 도 9의 (b)의 Fri, Sat 및 Sun의 오후 시간대)에 해당하는 시간 슬롯에서 신규 이벤트의 시작 시점을 포함할 확률이 높은 것으로 예측되었음을 확인할 수 있다. 즉, 본 발명에 따른 RNN_LSTM 기반의 예측 모델에 의하면, 신규 이벤트의 시작 시점을 예측함에 있어서 이벤트의 제목에 포함되는 텍스트가 갖는 직접적인 의미가 적절하게 고려될 수 있게 된다.
다음으로, 도 10을 참조하면, 사용자의 캘린더에 새로 등록된 신규 이벤트의 제목에 "Holiday party"라는 텍스트가 포함되는 경우에 공휴일에 파티를 하기에 적절하다고 여겨지는 평일 저녁 시간대(즉, 도 10의 (a)의 Mon, Tue, Wed, Thu 및 Fri의 (18:00, 20:00))에 해당하는 시간 슬롯에서 신규 이벤트의 시작 시점을 포함할 확률이 높은 것으로 예측되고, 신규 이벤트의 제목에 "House party"라는 텍스트가 포함되는 경우에는 집에서 파티하기에 적절하다고 여겨지는 주말 저녁 시간대(즉, 도 10의 (b)의 Fri 및 Sat의 (18:00, 20:00))에 해당하는 시간 슬롯에서 신규 이벤트의 시작 시점을 포함할 확률이 높은 것으로 예측되었음을 확인할 수 있다. 즉, 본 발명에 따른 RNN_LSTM 기반의 예측 모델에 의하면, 신규 이벤트의 시작 시점을 예측함에 있어서 이벤트의 제목에 포함되는 텍스트가 갖는 간접적인 의미가 적절하게 고려될 수 있게 된다.
다음으로, 도 11을 참조하면, 사용자의 캘린더에 새로 등록된 신규 이벤트의 제목에 "Meeting"이라는 텍스트가 포함되는 경우와 "Mtg"라는 텍스트가 포함되는 경우 모두에서 미팅 또는 회의를 하기에 적절하다고 여겨지는 평일 오전 또는 오후 시간대(즉, 도 11의 (a) 및 (b)의 Mon, Tue, Wed, Thu 및 Fri의 (10:00, 12:00) 내지 (16:00, 18:00))에 해당하는 시간 슬롯에서 신규 이벤트의 시작 시점을 포함할 확률이 높은 것으로 예측되었음을 확인할 수 있다. 즉, 본 발명에 따른 RNN_LSTM 기반의 예측 모델에 의하면, 신규 이벤트의 시작 시점을 예측함에 있어서 이벤트의 제목에 포함되는 약자 또는 특수 문자가 갖는 의미가 적절하게 고려될 수 있게 된다.
다음으로, 도 12를 참조하면, 사용자의 캘린더에 새로 등록된 신규 이벤트의 제목에 "Yoga @ office"라는 텍스트가 포함되는 경우에 사무실 근처에서 요가를 하기에 적절하다고 여겨지는 평일 아침 또는 저녁 시간대(즉, 도 12의 (a)의 Mon, Tue, Wed, Thu 및 Fri의 (08:00, 10:00) 또는 (18:00, 20:00))에 해당하는 시간 슬롯에서 신규 이벤트의 시작 시점을 포함할 확률이 높은 것으로 예측되고, 신규 이벤트의 제목에 "Yoga @ UNK"라는 텍스트가 포함되는 경우에는 장소와 관계 없이 요가라는 운동을 하기에 적절하다고 여겨지는 평일 저녁 시간대 또는 주말 아침 시간대(즉, 도 12 의 (b)의 Mon, Tue, Wed, Thu 및 Fri의 (18:00, 20:00) 또는 Sat 및 Sun의 (08:00, 10:00))에 해당하는 시간 슬롯에서 신규 이벤트의 시작 시점을 포함할 확률이 높은 것으로 예측되었음을 확인할 수 있다. 즉, 본 발명에 의하면, 신규 이벤트의 시작 시점을 예측함에 있어서 이벤트의 제목에 포함되는 텍스트가 갖는 공간적인 의미가 적절하게 고려될 수 있게 된다.
도 13 및 14는 본 발명의 일 실시예에 따라 사용자의 선호 정보를 참조함으로써 달성될 수 있는 현저한 효과를 예시적으로 나타내는 도면이다.
도 13 및 도 14를 참조하면, 사용자 A의 캘린더에 새로 등록될 신규 이벤트의 제목에 "Workout"(즉, 운동)이라는 텍스트가 포함되어 있는 경우에 주말 오후 시간대에 해당하는 시간 슬롯에서 신규 이벤트의 시작 시점을 포함할 확률이 높은 것으로 예측되었지만(도 13의 (a) 및 (b) 참조), 사용자 B의 캘린더에 새로 등록될 신규 이벤트의 제목에 마찬가지로 "Workout"이라는 텍스트가 포함되어 있는 경우에는, 사용자 A의 경우와는 전혀 다르게, 주중 저녁 시간대에 해당하는 시간 슬롯에서 신규 이벤트의 시작 시점을 포함할 확률이 높은 것으로 예측되었음(도 14의 (a) 및 (b) 참조)을 확인할 수 있다. 즉, 본 발명에 의하면, 신규 이벤트의 시작 시점을 예측함에 있어서 타겟 사용자의 선호 정보가 적절하게 고려될 수 있게 된다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 비일시성의 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 비일시성의 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 비일시성의 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 비일시성의 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
100: 통신망
200: 캘린더 관리 시스템
210: 캘린더 데이터 분석부
220: 텍스트 정보 분석부
230: 선호 정보 분석부
240: 예측 제공부
250: 통신부
260: 제어부
300: 사용자 디바이스
400: 외부 서버

Claims (19)

  1. 캘린더(calendar)에 관한 예측을 제공하기 위한 방법으로서,
    적어도 하나의 사용자의 캘린더에 존재하는 적어도 하나의 이벤트의 시작 시점(start time)에 관한 정보를 포함하는 캘린더 데이터를 상기 적어도 하나의 이벤트가 상기 적어도 하나의 사용자의 캘린더에 등록된 시점(registered time)을 기준으로 하여 순차적으로 학습함으로써 예측의 대상이 되는 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점에 관한 제1 예측 데이터를 생성하고, 상기 신규 이벤트에 관한 텍스트 정보를 참조하여 상기 신규 이벤트의 시작 시점에 관한 제2 예측 데이터를 생성하고, 캘린더에 관한 상기 타겟 사용자의 선호 정보를 참조하여 상기 신규 이벤트의 시작 시점에 관한 제3 예측 데이터를 생성하는 단계, 및
    상기 제1 예측 데이터, 상기 제2 예측 데이터 및 상기 제3 예측 데이터를 참조하여 상기 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯에 대하여 상기 신규 이벤트의 시작 시점을 포함할 가능성을 산출함으로써, 상기 신규 이벤트의 시작 시점을 예측하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 생성 단계에서,
    제j-1 이벤트가 제m 사용자의 캘린더에 등록된 시점 직후에 상기 제m 사용자의 캘린더에 존재하는 적어도 하나의 이벤트의 시작 시점에 관한 정보를 포함하는 제j-1 캘린더 데이터와 제j 이벤트가 상기 제m 사용자의 캘린더에 등록된 시점 직후에 상기 제m 사용자의 캘린더에 존재하는 적어도 하나의 이벤트의 시작 시점에 관한 정보를 포함하는 제j 캘린더 데이터를 순차적으로 학습함으로써 상기 제1 예측 데이터를 생성하는 방법.
  3. 제1항에 있어서,
    상기 생성 단계에서,
    LSTM(Long Short Term Memory) 기반의 순환형 신경망(Recurrent Neural Network) 알고리즘을 이용하여 상기 캘린더 데이터를 순차적으로 학습함으로써 상기 제1 예측 데이터를 생성하는 방법.
  4. 제1항에 있어서,
    상기 생성 단계에서,
    상기 캘린더 데이터는 상기 적어도 하나의 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯(slot)을 기준으로 하여 정의되는 캘린더 맵(calendar map)에 의하여 특정되는 방법.
  5. 제1항에 있어서,
    상기 생성 단계에서,
    상기 텍스트 정보에는, 상기 신규 이벤트의 제목에 포함되는 텍스트에 관한 정보가 포함되는 방법.
  6. 제1항에 있어서,
    상기 생성 단계에서,
    상기 텍스트 정보와 시간 사이의 연관성에 관한 정보를 참조하여 상기 제2 예측 데이터를 생성하는 방법.
  7. 제1항에 있어서,
    상기 생성 단계에서,
    상기 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯에 대한 상기 타겟 사용자의 선호 정보를 참조하여 상기 제3 예측 데이터를 생성하는 방법.
  8. 제7항에 있어서,
    상기 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯에 대한 상기 타겟 사용자의 선호 정보는, 상기 타겟 사용자의 캘린더에 존재하는 이벤트의 시작 시점에 관한 정보를 포함하는 캘린더 데이터를 상기 이벤트가 상기 타겟 사용자의 캘린더에 등록된 시점을 기준으로 하여 순차적으로 학습한 결과로서 도출되는 방법.
  9. 제1항에 있어서,
    상기 예측 단계에서,
    상기 제1 예측 데이터를 특정하는 벡터, 상기 제2 예측 데이터를 특정하는 벡터 및 상기 제3 예측 데이터를 특정하는 벡터를 결합(composition)한 결과로서 생성되는 출력(output) 벡터를 참조하여 상기 신규 이벤트의 시작 시점을 예측하는 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 따른 방법을 실행하기 위한 컴퓨터 프로그램을 기록한 비일시성의 컴퓨터 판독 가능한 기록 매체.
  11. 캘린더(calendar)에 관한 예측을 제공하기 위한 시스템으로서,
    적어도 하나의 사용자의 캘린더에 존재하는 적어도 하나의 이벤트의 시작 시점(start time)에 관한 정보를 포함하는 캘린더 데이터를 상기 적어도 하나의 이벤트가 상기 적어도 하나의 사용자의 캘린더에 등록된 시점(registered time)을 기준으로 하여 순차적으로 학습함으로써 예측의 대상이 되는 타겟 사용자의 캘린더에 새로 등록될 신규 이벤트의 시작 시점에 관한 제1 예측 데이터를 생성하는 캘린더 데이터 분석부,
    상기 신규 이벤트에 관한 텍스트 정보를 참조하여 상기 신규 이벤트의 시작 시점에 관한 제2 예측 데이터를 생성하는 텍스트 정보 분석부,
    캘린더에 관한 상기 타겟 사용자의 선호 정보를 참조하여 상기 신규 이벤트의 시작 시점에 관한 제3 예측 데이터를 생성하는 선호 정보 분석부, 및
    상기 제1 예측 데이터, 상기 제2 예측 데이터 및 상기 제3 예측 데이터를 참조하여 상기 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯에 대하여 상기 신규 이벤트의 시작 시점을 포함할 가능성을 산출함으로써, 상기 신규 이벤트의 시작 시점을 예측하는 예측 제공부
    를 포함하는 시스템.
  12. 제11항에 있어서,
    상기 캘린더 데이터 분석부는, 제j-1 이벤트가 제m 사용자의 캘린더에 등록된 시점 직후에 상기 제m 사용자의 캘린더에 존재하는 적어도 하나의 이벤트의 시작 시점에 관한 정보를 포함하는 제j-1 캘린더 데이터와 제j 이벤트가 상기 제m 사용자의 캘린더에 등록된 시점 직후에 상기 제m 사용자의 캘린더에 존재하는 적어도 하나의 이벤트의 시작 시점에 관한 정보를 포함하는 제j 캘린더 데이터를 순차적으로 학습함으로써 상기 제1 예측 데이터를 생성하는 시스템.
  13. 제11항에 있어서,
    상기 캘린더 데이터 분석부는, LSTM(Long Short Term Memory) 기반의 순환형 신경망(Recurrent Neural Network) 알고리즘을 이용하여 상기 캘린더 데이터를 순차적으로 학습함으로써 상기 제1 예측 데이터를 생성하는 시스템.
  14. 제11항에 있어서,
    상기 캘린더 데이터는 상기 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯(slot)을 기준으로 하여 정의되는 캘린더 맵(calendar map)에 의하여 특정되는 시스템.
  15. 제11항에 있어서,
    상기 텍스트 정보에는, 상기 신규 이벤트의 제목에 포함되는 텍스트에 관한 정보가 포함되는 시스템.
  16. 제11항에 있어서,
    상기 텍스트 정보 분석부는, 상기 텍스트 정보와 시간 사이의 연관성에 관한 정보를 참조하여 상기 제2 예측 데이터를 생성하는 시스템.
  17. 제11항에 있어서,
    상기 선호 정보 분석부는, 상기 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯에 대한 상기 타겟 사용자의 선호 정보를 참조하여 상기 제3 예측 데이터를 생성하는 시스템.
  18. 제17항에 있어서,
    상기 타겟 사용자의 캘린더를 구성하는 적어도 하나의 시간 슬롯에 대한 상기 타겟 사용자의 선호 정보는, 상기 타겟 사용자의 캘린더에 존재하는 이벤트의 시작 시점에 관한 정보를 포함하는 캘린더 데이터를 상기 이벤트가 상기 타겟 사용자의 캘린더에 등록된 시점을 기준으로 하여 순차적으로 학습한 결과로서 도출되는 시스템.
  19. 제11항에 있어서,
    상기 예측 제공부는, 상기 제1 예측 데이터를 특정하는 벡터, 상기 제2 예측 데이터를 특정하는 벡터 및 상기 제3 예측 데이터를 특정하는 벡터를 결합(composition)한 결과로서 생성되는 출력(output) 벡터를 참조하여 상기 신규 이벤트의 시작 시점을 예측하는 시스템.
KR1020160173483A 2016-12-19 2016-12-19 캘린더에 관한 예측을 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체 KR102639152B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160173483A KR102639152B1 (ko) 2016-12-19 2016-12-19 캘린더에 관한 예측을 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체
US15/846,575 US20180174108A1 (en) 2016-12-19 2017-12-19 Method, system and non-transitory computer-readable recording medium for providing predictions on calendar

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160173483A KR102639152B1 (ko) 2016-12-19 2016-12-19 캘린더에 관한 예측을 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체

Publications (2)

Publication Number Publication Date
KR20180070912A true KR20180070912A (ko) 2018-06-27
KR102639152B1 KR102639152B1 (ko) 2024-02-20

Family

ID=62562612

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160173483A KR102639152B1 (ko) 2016-12-19 2016-12-19 캘린더에 관한 예측을 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체

Country Status (2)

Country Link
US (1) US20180174108A1 (ko)
KR (1) KR102639152B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10978073B1 (en) 2017-07-09 2021-04-13 Otter.ai, Inc. Systems and methods for processing and presenting conversations
US11024316B1 (en) 2017-07-09 2021-06-01 Otter.ai, Inc. Systems and methods for capturing, processing, and rendering one or more context-aware moment-associating elements
US20190259004A1 (en) * 2018-02-19 2019-08-22 International Business Machines Corporation Communication event analyzation for automatic scheduling system
JP2021119426A (ja) * 2018-04-24 2021-08-12 ソニーグループ株式会社 情報処理装置、情報処理方法及びプログラム
US20230334338A1 (en) * 2018-06-29 2023-10-19 Meta Platforms, Inc. Predicting a future behavior by applying a predictive model to embeddings representing past behaviors and the future behavior
US11423911B1 (en) * 2018-10-17 2022-08-23 Otter.ai, Inc. Systems and methods for live broadcasting of context-aware transcription and/or other elements related to conversations and/or speeches
CN111353523A (zh) * 2019-12-24 2020-06-30 中国国家铁路集团有限公司 一种对铁路客户进行分类的方法
US11676623B1 (en) 2021-02-26 2023-06-13 Otter.ai, Inc. Systems and methods for automatic joining as a virtual meeting participant for transcription
US20220398547A1 (en) * 2021-06-09 2022-12-15 Ruichen Wang System and method for ai-based task management
CN116151034B (zh) * 2023-04-17 2023-06-27 广东电网有限责任公司揭阳供电局 一种绝缘子芯棒酥化的预测方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050077474A (ko) * 2004-01-28 2005-08-02 마이크로소프트 코포레이션 온라인 캘린더링 시스템 내의 프로젝트 및 회의의 시간할당을 위한 시간 관리 표현 및 자동화
JP2012022530A (ja) * 2010-07-14 2012-02-02 Nippon Telegr & Teleph Corp <Ntt> 行動予測装置、方法及びプログラム
KR20140119532A (ko) * 2013-04-01 2014-10-10 엘지전자 주식회사 이동 단말기 및 그것의 제어방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10510050B2 (en) * 2012-09-10 2019-12-17 Private Secretary, Ltd. Meetings and events coordinating system and method
US10937004B2 (en) * 2013-08-22 2021-03-02 Core De Vie, Llc Behaviorally informed scheduling systems and methods
US10037512B2 (en) * 2014-05-30 2018-07-31 Apple Inc. Calendar event completion
US20160239613A1 (en) * 2015-02-17 2016-08-18 docSynk LLC System and Method for Optimizing and Streamlining the Interaction and Relationship Between Patients and Healthcare Providers with a Smart Scheduler Process
US20160267439A1 (en) * 2015-03-11 2016-09-15 Microsoft Technology Licensing, Llc Contextual calendar conflict resolution
US10176463B2 (en) * 2015-12-17 2019-01-08 International Business Machines Corporation Machine learning system for intelligently identifying suitable time slots in a user's electronic calendar
US20180005151A1 (en) * 2016-06-29 2018-01-04 General Electric Company Asset health management framework
US9830315B1 (en) * 2016-07-13 2017-11-28 Xerox Corporation Sequence-based structured prediction for semantic parsing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050077474A (ko) * 2004-01-28 2005-08-02 마이크로소프트 코포레이션 온라인 캘린더링 시스템 내의 프로젝트 및 회의의 시간할당을 위한 시간 관리 표현 및 자동화
JP2012022530A (ja) * 2010-07-14 2012-02-02 Nippon Telegr & Teleph Corp <Ntt> 行動予測装置、方法及びプログラム
KR20140119532A (ko) * 2013-04-01 2014-10-10 엘지전자 주식회사 이동 단말기 및 그것의 제어방법

Also Published As

Publication number Publication date
KR102639152B1 (ko) 2024-02-20
US20180174108A1 (en) 2018-06-21

Similar Documents

Publication Publication Date Title
KR102639152B1 (ko) 캘린더에 관한 예측을 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체
US10990930B2 (en) Autonomous event generator
Heger et al. Dynamic adjustment of dispatching rule parameters in flow shops with sequence-dependent set-up times
US11521181B2 (en) Mobile secretary meeting scheduler
US20180107987A1 (en) Meeting service with meeting time and location optimization
KR101634773B1 (ko) 캘린더를 이용한 스케쥴 관리시스템 및 스케쥴 관리방법
US11741406B2 (en) Location-based task suggestions
US20180285827A1 (en) Distinguishing events of users for efficient service content distribution
Koeleman et al. Optimal outpatient appointment scheduling with emergency arrivals and general service times
JP2009181580A (ja) 仮想文脈情報を推薦に自動的に組み込む方法
US10896407B2 (en) Cognitive adaptation to user behavior for personalized automatic processing of events
EP3942490B1 (en) Enhanced task management feature for electronic applications
JP5774783B2 (ja) カレンダデータに基づくアップリンク帯域幅およびダウンリンク帯域幅の動的な最適化
US20180158031A1 (en) Generating itineraries from events and tasks
Etemadi et al. A learning-based resource provisioning approach in the fog computing environment
He et al. Dynamic priority rule-based forward-backward heuristic algorithm for resource levelling problem in construction project
Erdelyi et al. Computing protection level policies for dynamic capacity allocation problems by using stochastic approximation methods
US20150302054A1 (en) Process for identifying contacts likely to be needed based on user communication habits
US20190147389A1 (en) Executable action modification
Iranpoor et al. Machine scheduling in the presence of sequence-dependent setup times and a rate-modifying activity
US11068856B2 (en) Biometric data based scheduling
Hu et al. Task-oriented information value measurement based on space-time prisms
JP7316152B2 (ja) スケジューリングシステム、スケジューリングプログラム及びスケジューリング方法
JP2015069309A (ja) 情報端末装置ならびにそのスケジューリング方法およびプログラム
US20230306837A1 (en) Contextual item discovery and pattern inculcated reminder mechanism

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant