This application claims priority to Korean Patent Application No. 10-2016-0173483 filed on Dec. 19, 2016, the entire contents of which are hereby incorporated by reference.
The present invention relates to a method, system, and non-transitory computer-readable recording medium for providing predictions on a calendar.
Recently, the developments in technologies related to the Internet, cloud computing, and mobile devices have introduced a variety of cloud-based calendar management services such as Google Calendar, Microsoft Outlook, and iCloud.
The conventional calendar management services provide a function that allows a user to manage his/her calendar in a unified manner, regardless of locations, times, devices, and the like. However, they still provide a basic function of simply creating, modifying, deleting, or sharing an event according to an explicit and specific input of the user.
Recently, some conventional techniques for analyzing life patterns or work patterns of a user to provide predictions on the user's calendar have been introduced. However, the conventional techniques are still limited in that the low prediction reliability or accuracy thereof makes it difficult to render substantial assistance to the user.
One object of the present invention is to solve all the above-described problems in the prior art.
Another object of the invention is to predict a start time suitable for a new event that a user intends to newly register in the user's calendar, by generating first prediction data on a start time of a new event to be newly registered in a calendar of a target user for which the prediction is to be made, by sequentially learning calendar data including information on a start time of at least one event existing in a calendar of at least one user, in order of time at which the at least one event is registered in the calendar of the at least one user, generating second prediction data on the start time of the new event with reference to text information on the new event, and generating third prediction data on the start time of the new event with reference to preference information of the target user on the calendar; and predicting the start time of the new event by calculating a likelihood of the start time of the new event being included in at least one time slot constituting the calendar of the target user, with reference to the first, second, and third prediction data.
The representative configurations of the invention to achieve the above objects are described below.
According to one aspect of the invention, there is provided a method for providing a prediction on a calendar, comprising the steps of: generating first prediction data on a start time of a new event to be newly registered in a calendar of a target user for which the prediction is to be made, by sequentially learning calendar data including information on a start time of at least one event existing in a calendar of at least one user, in order of time at which the at least one event is registered in the calendar of the at least one user, generating second prediction data on the start time of the new event with reference to text information on the new event, and generating third prediction data on the start time of the new event with reference to preference information of the target user on the calendar; and predicting the start time of the new event by calculating a likelihood of the start time of the new event being included in at least one time slot constituting the calendar of the target user, with reference to the first, second, and third prediction data.
According to another aspect of the invention, there is provided a system for providing a prediction on a calendar, comprising: a calendar data analysis unit configured to generate first prediction data on a start time of a new event to be newly registered in a calendar of a target user for which the prediction is to be made, by sequentially learning calendar data including information on a start time of at least one event existing in a calendar of at least one user, in order of time at which the at least one event is registered in the calendar of the at least one user; a text information analysis unit configured to generate second prediction data on the start time of the new event with reference to text information on the new event; a preference information analysis unit configured to generate third prediction data on the start time of the new event with reference to preference information of the target user on the calendar; and a prediction provision unit configured to predict the start time of the new event by calculating a likelihood of the start time of the new event being included in at least one time slot constituting the calendar of the target user, with reference to the first, second, and third prediction data.
In addition, there are further provided other methods and systems to implement the invention, as well as non-transitory computer-readable recording media having stored thereon computer programs for executing the methods.
According to the invention, it is possible to predict a start time suitable for a new event that a user intends to newly register in the user's calendar.
According to the invention, it is possible to consider not only event registration patterns occurring in a user's calendar, but also text information on a new event that the user intends to newly register and personalized preference information of the user on time slots, thereby predicting a time at which the new event is suitably implemented or likely to be implemented.
According to the invention, it is possible to train a neural network by comprehensively utilizing calendar data on event registration patterns, text information on titles of events, and preference information on time slots, so that a start time of a new event may be predicted sufficiently accurately even when the amount of data used for the neural network training is relatively small.
According to the invention, it is possible to consider not only personalized calendar data on event registration patterns of a user, but also personalized preference information of the user on time slots, so that an integrated prediction model equally applicable to all users may be constructed without having to separately provide a personalized prediction model for each user.
According to the invention, it is possible to accurately train a prediction model using sequential properties of calendar data.
According to invention, it is possible to learn extensive calendar data including information on time slot selection behaviors, patterns, or tendencies observed from calendars of numerous users, thereby accurately predicting a time slot expected to be actually determined as a start time of a new event when a person newly register the new event in his/her calendar.
In the following detailed description of the present invention, references are made to the accompanying drawings that show, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It is to be understood that the various embodiments of the invention, although different from each other, are not necessarily mutually exclusive. For example, specific shapes, structures and characteristics described herein may be implemented as modified from one embodiment to another without departing from the spirit and scope of the invention. Furthermore, it shall be understood that the locations or arrangements of individual elements within each of the disclosed embodiments may also be modified without departing from the spirit and scope of the invention. Therefore, the following detailed description is not to be taken in a limiting sense, and the scope of the invention, if properly described, is limited only by the appended claims together with all equivalents thereof. In the drawings, like reference numerals refer to the same or similar functions throughout the several views.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings to enable those skilled in the art to easily implement the invention.
Configuration of the Entire System
As shown in
First, the communication network 100 according to one embodiment of the invention may be implemented regardless of communication modality such as wired and wireless communications, and may be constructed from a variety of communication networks such as local area networks (LANs), metropolitan area networks (MANs), and wide area networks (WANs). Preferably, the communication network 100 described herein may be the Internet or the World Wide Web (WWW). However, the communication network 100 is not necessarily limited thereto, and may at least partially include known wired/wireless data communication networks, known telephone networks, or known wired/wireless television communication networks.
Next, the calendar management system 200 according to one embodiment of the invention may function to predict a start time suitable for a new event that a user intends to newly register in the user's calendar, by generating first prediction data on a start time of a new event to be newly registered in a calendar of a target user for which the prediction is to be made, by sequentially learning calendar data including information on a start time of at least one event existing in a calendar of at least one user, in order of time at which the at least one event is registered in the calendar of the at least one user, generating second prediction data on the start time of the new event with reference to text information on the new event, and generating third prediction data on the start time of the new event with reference to preference information of the target user on the calendar; and predicting the start time of the new event by calculating a likelihood of the start time of the new event being included in at least one time slot constituting the calendar of the target user, with reference to the first, second, and third prediction data.
The configuration and function of the calendar management system 200 according to the invention will be discussed in more detail below.
Next, according to one embodiment of the invention, the user device 300 is digital equipment that may function to allow a user to connect to and then communicate with the calendar management system 200 or the external server 400, and any type of digital equipment having a memory means and a microprocessor for computing capabilities, such as a smart phone, a tablet, a desktop computer, a notebook computer, a workstation, a personal digital assistant (PDA), a web pad, and a mobile phone, may be adopted as the user device 300 according to the invention.
Particularly, the user device 300 may include an application (not shown) to assist a user to receive calendar-related services from the calendar management system 200. The application may be downloaded from the calendar management system 200 or the external server 400.
Meanwhile, according to one embodiment of the invention, the external server 400 may function to provide the calendar management system 200 or the user device 300 with information on calendar data, information on relationships between texts and time slots, or preference information of the user on time slots. Specifically, the external server 400 according to one embodiment of the invention may be a server operated by an entity providing an online calendar service, or providing a social network service (SNS) such as Twitter, Facebook, and Instagram from which various context information or preference information on the user may be collected.
Configuration of the Calendar Management System
Hereinafter, the internal configuration of the calendar management system crucial for implementing the invention and the functions of the respective components thereof will be discussed.
Referring to
First, according to one embodiment of the invention, the calendar data analysis unit 210 may function to generate first prediction data on a start time of a new event to be newly registered in a calendar of a target user for which the prediction is to be made, by sequentially learning calendar data including information on a start time of at least one event existing in a calendar of at least one user, in order of time at which the at least one event is registered in the calendar of the at least one user (so-called “slot embedding”). Here, according to one embodiment of the invention, the first prediction data may include information on a likelihood (i.e., probability) that at least one time slot constituting the calendar of the target user will include the start time of the new event to be newly registered in the calendar of the target user.
Here, according to one embodiment of the invention, at least one event registered in a calendar of a user may be grouped into event groups by predetermined time periods (e.g., weeks, months, etc.) on the basis of a start time thereof, and a plurality of events included in an event group may be sorted in order of registered times thereof. Further, according to one embodiment of the invention, the aforementioned learning for generating the first prediction data may be performed for each event group, and thus the calendar data analysis unit 210 may sequentially learn calendar data including information on start times of events included in a specific event group.
Further, according to one embodiment of the invention, the calendar data used in the learning performed to generate the first prediction data may be acquired from calendars of a plurality of users, and vast amounts of calendar data acquired from calendars of hundreds or thousands of users may be used in the learning as necessary, in order to increase the accuracy of the prediction.
For example, it may be assumed that vast amounts of calendar data on numerous events whose start times are included in a time period from the first week to the last week of the year 2016 are collected from calendars of n users. In this case, according to one embodiment of the invention, the collected calendar data may be grouped by users or weeks, and learning for the calendar data may be performed for each group. Further, according to one embodiment of the invention, a result of the learning for the calendar data collected from the calendars of the n users may not only be used in predicting a start time of a new event to be newly registered in a calendar of a user belonging to the n users, but may also be extensively used in predicting a start time of a new event to be newly registered in a calendar of another user not belonging to the n users.
Specifically, according to one embodiment of the invention, the calendar data analysis unit 210 may generate the first prediction data on the start time of the new event to be newly registered in the calendar of the target user, by sequentially learning j−1th calendar data, which include information on a start time of at least one event existing in a calendar of a mth user immediately after a j−1th event (i.e., an event that is registered in the calendar of the user for the j−1th time) is registered in the calendar of the mth user, and jth calendar data, which include information on a start time of at least one event existing in the calendar of the mth user immediately after a jth event (i.e., an event that is registered in the calendar of the user for the jth time) is registered in the calendar of the mth user. Generally, users tend to first utilize their preferred time slots when registering (i.e., creating) events in their calendars. Thus, according to one embodiment of the invention, it is possible to predict a suitable time slot in which the target user will place the start time of the new event to be newly registered in the calendar of the target user, by sequentially learning start times of events registered in calendars of various users, in order of registered times thereof.
More specifically, according to one embodiment of the invention, the calendar data analysis unit 210 may sequentially learn the calendar data using a recurrent neural network algorithm. For example, the calendar data analysis unit 210 according to one embodiment of the invention may sequentially learn the calendar data using a RNN-LSTM (Recurrent Neural Network-Long Short Term Memory) based learning model.
Further, according to one embodiment of the invention, the calendar data may be specified by a calendar map defined on the basis of at least one time slot constituting the calendar of the at least one user.
Next, according to one embodiment of the invention, the text information analysis unit 220 may function to generate second prediction data on the start time of the new event to be newly registered in the calendar of the target user, with reference to text information on the new event (so-called “word embedding”). Here, according to one embodiment of the invention, the text information on the new event may include a text constituting a title of the new event, a text constituting a memo created for the new event, a text constituting a name of another user attending the new event, and a text indicating a location or time at which the new event is held. Further, according to one embodiment of the invention, the second prediction data may include information on a likelihood (i.e., probability) that at least one time slot constituting the calendar of the target user will include the start time of the new event to be newly registered in the calendar of the target user.
Specifically, according to one embodiment of the invention, the text information analysis unit 220 may generate the second prediction data on the start time of the new event, by using an algorithm for learning a relationship between time and a text constituting the title of the new event, or using a model including information on the relationship between time and the text.
Next, according to one embodiment of the invention, the preference information analysis unit 230 may function to generate third prediction data on the start time of the new event to be newly registered in the calendar of the target user, with reference to preference information of the target user on the calendar (so-called “user embedding”). Here, according to one embodiment of the invention, the third prediction data may include information on a likelihood (i.e., probability) that at least one time slot constituting the calendar of the target user will include the start time of the new event to be newly registered in the calendar of the target user. Further, according to one embodiment of the invention, the preference information of the user may be dynamically updated according to an aspect or tendency in how the user uses the calendar.
Specifically, according to one embodiment of the invention, the preference information analysis unit 230 may generate the third prediction data on the start time of the new event to be newly registered in the calendar of the target user, by predicting a suitable time slot in which the start time of the new event will be included, with reference to the preference information of the target user on at least one time slot constituting the calendar of the target user. More specifically, according to one embodiment of the invention, the preference information of the target user on at least one time slot constituting the calendar of the target user may be derived as a result of sequentially learning calendar data including information on start times of events existing in the calendar of the target user, in order of times at which the events are registered in the calendar of the target user.
Meanwhile, according to one embodiment of the invention, the aforementioned calendar data, text information, and preference information may be, but not necessarily limited to, data or information generated and managed in the calendar service provided by the calendar management system 200 according to the invention. It is noted that at least a part of the calendar data, text information, and preference information may also be collected from the external server 400 external to the calendar management system 200 according to the invention.
Next, according to one embodiment of the invention, the prediction provision unit 240 may function to predict the start time of the new event to be newly registered in the calendar of the target user, with reference to the first, second, and third prediction data generated as above. Further, according to one embodiment of the invention, the prediction provision unit 240 may recommend the target user at least one time slot that is predicted to be likely to include the start time of the new event.
Specifically, according to one embodiment of the invention, the prediction provision unit 240 may determine n time slots that are most likely to include the start time of the new event newly registered in the calendar of the target user, by calculating a likelihood of the start time of the new event being included in at least one time slot constituting the calendar of the target user, and may recommend the determined n time slots to the target user as a result of the prediction.
More specifically, according to one embodiment of the invention, each of the first, second, and third prediction data on the start time of the new event may be specified as a vector directly or indirectly representing a probability of the start time of the new event being included in at least one time slot constituting the calendar of the target user. The prediction provision unit 240 according to one embodiment of the invention may predict a time slot that is likely to include the start time of the new event, with reference to an output vector generated as a result of composition of a vector specifying the first prediction data, a vector specifying the second prediction data, and a vector specifying the third prediction data.
Referring to
In this case, the calendar management system 200 according to one embodiment of the invention may generate first prediction data on a start time of the new event 310 to be newly registered in the calendar of the user A, by sequentially learning calendar data including information on start times of a plurality of other events 321 to 327 already registered (i.e., already existing) in calendars of a plurality of users including or not including the user A, in order of times at which the plurality of other events 321 to 327 are registered in the calendars of the plurality of users. The calendar management system 200 according to one embodiment of the invention may generate second prediction data on the start time of the new event 310 with reference to information on a text constituting a title of the new event 310 (i.e., “Meeting w/Jake”), and may generate third prediction data on the start time of the new event 310 with reference to preference information of the user A on time slots constituting the calendar of the user A. Further, the calendar management system 200 according to one embodiment of the invention may calculate a likelihood of the start time of the new event 310 being included in each of a plurality of time slots 331 to 338 constituting the calendar 301 of the user A, with reference to all of the first, second, and third prediction data generated as above, and may determine the time slot 335 with the highest likelihood of 0.30 as a time slot suitable for the start time of the new event (or a time slot predicted to include the start time of the new event).
Meanwhile, the communication unit 250 according to one embodiment of the invention may function to enable the calendar management system 200 to communicate with an external device such as the user device 300.
Lastly, the control unit 260 according to one embodiment of the invention may function to control data flow among the calendar data analysis unit 210, the text information analysis unit 220, the preference information analysis unit 230, the prediction provision unit 240, and the communication unit 250. That is, the control unit 260 may control inbound data flow or data flow among the respective components of the calendar management system 200, such that the calendar data analysis unit 210, the text information analysis unit 220, the preference information analysis unit 230, the prediction provision unit 240, and the communication unit 250 may carry out their particular functions, respectively.
Hereinafter, the configuration for predicting a start time of a new event to be newly registered in a calendar of a user according to one embodiment of the invention will be discussed in detail with reference to
According to one embodiment of the invention, an event registered in a calendar of a user may have three attributes, i.e., a title, a start time, and a registered time. Here, according to one embodiment of the invention, the title of the event may indicate information on a text that is arbitrarily inputted to denote a purpose, type, location, attendant and the like of the event, while the start time of the event may indicate a time at which the event is scheduled to start, and the registered time of the event may indicate a time at which the event is registered (i.e., created) in the calendar of the user. Particularly, according to one embodiment of the invention, since users generally tend to put events first in their preferred time slots, the registered time of the event may be utilized as an important basis in learning preference of the user on time slots.
Further, according to one embodiment of the invention, a plurality of events registered in the calendar of the user may be grouped by predetermined time periods (e.g., weeks, months, etc.) on the basis of start times thereof, and the plurality of events included in the event groups may be sorted in order of registered times thereof.
Furthermore, according to one embodiment of the invention, k events whose start times are included in an ith time period in a calendar of a user A (e.g., the ith week of the year 2016) may be grouped into one event group Ei, which may be expressed as Eq.1 below.
E
i
=[e
i,0
,e
i,1
, . . . ,e
i,k−1] (Eq. 1)
In Eq. 1, the k events may be sorted in order of registered times thereof (j; j=0 to k−1), and each of the k events ei,j may be expressed as Eq. 2 below.
e
i,j=(xi,j,ti,j) (Eq. 2)
In Eq. 2, xi,j may indicate a time slot that includes the start time of the event registered for the j+1th time in the event group Ei, and ti,j may indicate the title of the event registered for the j+1th time in the event group Ei.
Further, the calendar management system 200 according to one embodiment of the invention may find out the most suitable start time (i.e., time slot) of the new event to be newly registered in the calendar of the target user in a target time period (i.e., a time period for which the scheduling is performed or in which the start time of the new event is to be included), with reference to a result of learning for calendar data that may be acquired from calendars of various users, as well as information on texts constituting titles of events, and preference information of the target user on time slots.
Specifically, when j events are already registered in a target time period (i.e., a time period for which the scheduling is performed or in which the start time of the new event is to be included), the calendar data analysis unit 210 according to one embodiment of the invention may predict a time slot suitable for the start time of the j+1th event ei,j (i.e., the new event) to be newly registered in the time period, with reference to a result of learning for calendar data acquired from calendars of various users. Further, the text information analysis unit 220 according to one embodiment of the invention may predict a time slot suitable for the start time of the j+1th event ei,) to be newly registered in a target time period (i.e., a time period for which the scheduling is performed or in which the start time of the new event is to be included), with reference to the title ti,j of the j+1th event ei,j Furthermore, the preference information analysis unit 230 according to one embodiment of the invention may predict a time slot suitable for the start time of the j+1th event ei,j, with reference to preference information of the target user on time slots included in a target time period (i.e., a time period for which the scheduling is performed or in which the start time of the new event is to be included).
More specifically, according to one embodiment of the invention, a conditional probability p representing a likelihood of the start time of the j+1th event ei,j to be newly registered being included in a time slot xi,j belonging to a target time period (i.e., a time period for which the scheduling is performed or in which the start time of the new event is to be included) may be expressed as Eq. 3 below.
p(xi,j|ei,0,ei,1, . . . ,ei,j−1,ti,j) (Eq. 3)
In Eq. 3, ti,j may indicate the title of the j+1th event to be newly registered.
Referring to
Hereinafter, a process of predicting at least one time slot having a high conditional probability according to Eq. 3, among time slots constituting a target time period (i.e., a time period for which the scheduling is performed or in which the start time of the new event is to be included), will be discussed in more detail.
Referring to
For example, when a tth event ei,t (t=1 to k) is registered in an ith week in the calendar of the target user, information on a start time xi,t of the tth event may be inputted to the RNN-LSTM based learning model. As the RNN-LSTM based learning model performs learning on the basis of the above input, first prediction data yi,t on a start time of a new event ei,t+1 to be registered in the ith week for the t+1th time may be outputted, and the first prediction data yi,t may be specified as a vector.
Referring further to
For example, second prediction data Ti,t+1 on the start time of the new event ei,t+1 to be registered in the ith week in the calendar of the target user for the t+1th time may be generated on the basis of a title ti,t+1 of the new event ei,t+1 to be registered in the ith week for the t+1th time, and the language model including information on relationships between the time slots and the texts, and the second prediction data Ti,t+1 may be specified as a vector.
Referring to
Referring further to
For example, third prediction data Uv on the start time xi,t of the new event ei,t+1 to be registered in the ith week for the t+1th time may be generated on the basis of preference information of a user uv who is the target user, and the third prediction data Uv may be specified as a vector.
Referring further to
Specifically, according to one embodiment of the invention, various algorithms for normalization or optimization may be applied in combining the first prediction data yi,t, the second prediction data and the third prediction data Uv to derive the collective prediction data (i.e., the output vector).
Referring further to
p(xi,t+1|ei,0,ei,1, . . . ,ei,t,ti,t+1,ti,j) (Eq. 4)
Referring further to
In the test examples of
Further, in the test examples of
Furthermore, in the test examples of
First, referring to
Specifically, referring to
Particularly, referring to
Meanwhile, referring to
Hereinafter, the reason why the prediction model according to the invention can achieve remarkable prediction performance as described above will be discussed in detail.
Referring to
In the test examples of
First, referring to
Next, referring to
Next, referring to
Next, referring to
Referring to
The embodiments according to the invention as described above may be implemented in the form of program instructions that can be executed by various computer components, and may be stored on a non-transitory computer-readable recording medium. The non-transitory computer-readable recording medium may include program instructions, data files, data structures and the like, separately or in combination. The program instructions stored on the non-transitory computer-readable recording medium may be specially designed and configured for the present invention, or may also be known and available to those skilled in the computer software field. Examples of the non-transitory computer-readable recording medium include the following: magnetic media such as hard disks, floppy disks and magnetic tapes; optical media such as compact disk-read only memory (CD-ROM) and digital versatile disks (DVDs); magneto-optical media such as floptical disks; and hardware devices such as read-only memory (ROM), random access memory (RAM) and flash memory, which are specially configured to store and execute program instructions. Examples of the program instructions include not only machine language codes created by a compiler or the like, but also high-level language codes that can be executed by a computer using an interpreter or the like. The above hardware devices may be configured to operate as one or more software modules to perform the processes of the present invention, and vice versa.
Although the present invention has been described above in terms of specific items such as detailed elements as well as the limited embodiments and the drawings, they are only provided to help more general understanding of the invention, and the present invention is not limited to the above embodiments. It will be appreciated by those skilled in the art to which the present invention pertains that various modifications and changes may be made from the above description.
Therefore, the spirit of the present invention shall not be limited to the above-described embodiments, and the entire scope of the appended claims and their equivalents will fall within the scope and spirit of the invention.
Number | Date | Country | Kind |
---|---|---|---|
10-2016-0173483 | Dec 2016 | KR | national |