Sequences of discrete events, such as clicks on a website, are evaluated for periodic behavior, a period is calculated, and the sequence is scored to determine the confidence that the sequence really exhibits periodicity. The random variations on the timing of the discrete events due to transmission delays or other factors may be reduced or eliminated from the evaluation. An apparatus for performing the method of evaluation may include a computer programmed to carry out the method.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A method of evaluating a likelihood that a sequence of discrete events displays periodic patterns, comprising: receiving a sequence of discrete events, wherein the sequence of discrete events includes N discrete events, and wherein the sequence of discrete events comprises a stream of mouse clicks received from a remote terminal; forming a window in time encompassing a temporal extent over which the sequence of discrete events was received; generating an autocorrelation function of the sequence of discrete events, the autocorrelation function comprising spikes representing pairwise differences in time received for each individual one of the discrete events in the window in time; generating a convolution between the autocorrelation function and a jitter kernel to form a smoothed autocorrelation function having a set of peaks; generating a period value corresponding to a highest peak in the smoothed autocorrelation function; generating a likelihood that the sequence of discrete events is periodic based upon the set of peaks; generating a period T based on a location of a largest peak of the set of peaks; and generating a score representing a confidence level that there is a sequence of periodic discrete events having the period T, the score being generated for the next individual discrete event received after the N discrete events, including the last N−1 discrete events of the window in time.
A method determines if a sequence of events, like mouse clicks from a remote computer, shows periodic behavior. It captures a time window of events and calculates an autocorrelation function, which highlights time differences between each event. This autocorrelation is then smoothed using a "jitter kernel" (explained in other claims) to create a smoothed autocorrelation function showing peaks. The location of the highest peak indicates the period (T) of the sequence. The method calculates a "likelihood" based on the peaks that the event sequence is periodic and generates a "score" reflecting the confidence in this periodicity. The score is generated for the *next* received event, and includes the last N-1 discrete events of the time window.
2. The method of claim 1 , wherein generating the convolution includes generating, as the jitter kernel, a probability distribution function for a random variable representing a time delay between discrete events in the sequence of discrete events.
The method for evaluating periodicity refines the "jitter kernel" to be a probability distribution function that accounts for random time delays between events. This jitter kernel represents expected noise or variations in event timing, helping to filter out false positives when determining periodicity. So instead of just using a fixed value, it uses a distribution for a random variable representing the time delay. This probability distribution is then used to perform the convolution, ultimately helping identify a better period estimate and confidence score.
3. The method of claim 2 , wherein generating the probability distribution function includes assigning, to the jitter kernel, a width indicative of noise processes in an environment in which the discrete events occur.
In the method for evaluating periodicity using a jitter kernel that is a probability distribution function, the width of the jitter kernel is set based on the amount of noise present in the environment where the events occur. A wider kernel indicates more noise and allows for greater variation in event timing without discarding the sequence as non-periodic. This allows the algorithm to be adaptive to its environment, meaning that sequences with varying degrees of accuracy can still be measured.
4. The method of claim 2 , wherein generating the jitter kernel includes generating a function including a Gaussian function.
In the method for evaluating periodicity using a jitter kernel, that jitter kernel is a Gaussian function. Using a Gaussian distribution to perform the convolution of the autocorrelation function is a way of smoothing it to help find distinct peaks, that represent potential periods.
5. The method of claim 1 , wherein generating the autocorrelation function includes forming a linear combination of spikes at each of all possible pairwise time delays between the discrete events.
In the method for evaluating periodicity, generating the autocorrelation function involves calculating all possible pairwise time delays between the received events and creating a sum of spikes, where each spike occurs at the specific amount of all the possible time delays. This linear combination of spikes represents the underlying temporal structure of the events and highlights potential periodicities.
6. The method of claim 1 wherein generating the convolution includes creating as the smoothed autocorrelation function including peaks at time delays between discrete events in the window in time.
In the method for evaluating periodicity, the convolution creates a smoothed autocorrelation function. This resulting function has peaks that correspond to time delays found between the discrete events in the window of time. Thus, it is these peaks that represent likely periodic intervals between those events. The convolution and resulting smoothed autocorrelation function reduces noise and sharpens periodic patterns.
7. The method of claim 1 , wherein: forming the window in time includes estimating a first period; and forming the jitter kernel further includes determining a normal distribution of random variations in time of arrival of the discrete event as a measuring location, the jitter kernel having a shape with a finite an area above the time axis.
The method for evaluating periodicity first estimates an initial period before forming the time window. Also, forming the jitter kernel involves determining a normal distribution that represents the random variations in the time of arrival of the event, which is seen as a measuring location in the time series. The shape of this jitter kernel has a finite area above the x-axis.
8. The method of claim 1 , wherein generating the score representing the confidence level includes dividing an area under each of the peaks by a total of the number of pairwise time differences in time received to form a normalized anomaly.
In the method for evaluating periodicity, generating the confidence score involves calculating a normalized anomaly, by dividing the area under each peak in the smoothed autocorrelation function by the total number of pairwise time differences. The area of each peak can be thought of as the strength of that peak (and hence how likely the sequence is periodic), and the total number of pairwise time differences is a normalization factor.
9. The method of claim 8 , wherein the total of the number of pairwise time differences is N(N−1)/2.
In the method for evaluating periodicity where generating the confidence level score involves normalizing the area under the peaks in the smoothed autocorrelation function, the total number of pairwise time differences in time received is calculated as N(N-1)/2, where N is the number of discrete events.
10. The method of claim 8 , wherein generating the score representing a confidence level that there is a sequence of periodic discrete events includes multiplying the normalized anomaly by a monotonically increasing function.
In the method for evaluating periodicity where generating the confidence level score involves normalizing the area under the peaks in the smoothed autocorrelation function, the normalized anomaly is multiplied by a monotonically increasing function to increase the anomaly score.
11. The method of claim 10 , further including the normalized anomaly by a value equal to (1−(1−normalized anomaly) 2 )×(100).
The method evaluating periodicity uses the following formula to improve the score, using a normalized anomaly calculation: (1-(1-normalized anomaly)^2)*(100).
12. A method of evaluating a likelihood that a sequence of discrete events displays periodic patterns, comprising: receiving a sequence of discrete events, wherein the sequence of discrete events comprises a stream of mouse clicks received from a remote terminal; forming a window in time encompassing a temporal extent over which the sequence of discrete events was received; generating an autocorrelation function of the sequence of discrete events, the autocorrelation function comprising spikes representing pairwise differences in time received for each individual one of the discrete events in the window in time; generating a convolution between the autocorrelation function and a jitter kernel to form a smoothed autocorrelation function having a set of peaks; generating a period value corresponding to a highest peak in the smoothed autocorrelation function; generating a likelihood that the sequence of discrete events is periodic based upon the set of peaks; generating a period T based on a location of a largest peak of the set of peaks; forming a second jitter kernel, a width of the second jitter kernel being proportional to the period T; generating a second convolution between the autocorrelation function and the second jitter kernel to form a second smoothed autocorrelation function; and generating, from the second smoothed autocorrelation function, a score representing a confidence level that the sequence of discrete events displays periodic patterns.
A method determines if a sequence of events, like mouse clicks from a remote computer, shows periodic behavior. It captures a time window of events and calculates an autocorrelation function, which highlights time differences between each event. This autocorrelation is then smoothed using a first "jitter kernel" (explained in other claims) to create a smoothed autocorrelation function showing peaks. The location of the highest peak indicates a period (T) of the sequence. The method calculates a "likelihood" based on the peaks that the event sequence is periodic. A second jitter kernel is used, having a width proportional to the period T. A second convolution with the autocorrelation function is performed, creating a second smoothed autocorrelation function. From this second function a score representing confidence is then generated.
13. A computer program product which includes a non-transitory computer readable medium storing a set of instructions that, when carried out by a computer, cause the computer to perform a method, comprising: receiving a sequence of discrete events, wherein the sequence of discrete events includes N discrete events, and wherein the sequence of discrete events comprises a stream of mouse clicks received from a remote terminal; forming a window in time encompassing a temporal extent over which the sequence of discrete events was received; generating an autocorrelation function of the sequence of discrete events, the autocorrelation function comprising spikes representing pairwise differences in time received for each individual one of the discrete events in the window in time; generating a convolution between the autocorrelation function and a jitter kernel to form a smoothed autocorrelation function having a set of peaks; generating a period value corresponding to a highest peak in the smoothed autocorrelation function; generating a likelihood that the sequence of discrete events is periodic based upon the set of peaks; generating a period T based on a location of a largest peak of the set of peaks; and generating a score representing a confidence level that there is a sequence of periodic discrete events having the period T, the score being generated for the next individual discrete event received after the N discrete events, including the last N−1 discrete events of the window in time.
A computer program stored on a non-transitory computer readable medium that, when executed, determines if a sequence of events, like mouse clicks from a remote computer, shows periodic behavior. It captures a time window of events and calculates an autocorrelation function, which highlights time differences between each event. This autocorrelation is then smoothed using a "jitter kernel" (explained in other claims) to create a smoothed autocorrelation function showing peaks. The location of the highest peak indicates the period (T) of the sequence. The method calculates a "likelihood" based on the peaks that the event sequence is periodic and generates a "score" reflecting the confidence in this periodicity. The score is generated for the *next* received event, and includes the last N-1 discrete events of the time window.
14. The computer program product of claim 13 , wherein generating the convolution includes generating, as the jitter kernel, a probability distribution function for a random variable representing a time delay between discrete events in the sequence of discrete events, where the jitter kernel includes a width indicative of noise processes in an environment in which the discrete events occur; and wherein generating the autocorrelation function includes forming a linear combination of spikes at each of all possible pairwise time delays between the discrete events.
The computer program for evaluating periodicity refines the "jitter kernel" to be a probability distribution function that accounts for random time delays between events. This jitter kernel represents expected noise or variations in event timing, helping to filter out false positives when determining periodicity. The width of the jitter kernel is set based on the amount of noise present in the environment where the events occur. Also, generating the autocorrelation function involves calculating all possible pairwise time delays between the received events and creating a sum of spikes, where each spike occurs at the specific amount of all the possible time delays.
15. A computing circuit, comprising: a communications interface connected to a network; a memory circuit; a receiving circuit which receives a sequence of discrete events and records a time received of each discrete event in the memory circuit, wherein the sequence of discrete events includes N discrete events, and wherein the sequence of discrete events comprises a stream of mouse clicks received from a remote terminal; a controller circuit coupled to the communication interface and the memory, wherein the controller circuit: forms a window in time during which the sequence of discrete events was received; generates an autocorrelation function of the sequence of discrete events, the autocorrelation function comprising spikes representing pairwise differences in time received for each individual one of the discrete events in the window in time; generates a convolution between the autocorrelation function and a jitter kernel to form a smoothed autocorrelation function having a set of peaks; generates a period value corresponding to a highest peak in the smoothed autocorrelation function; generates a likelihood that the sequence of discrete events is periodic based upon the set of peaks; generating a period T based on a location of a largest peak of the set of peaks; and generating a score representing a confidence level that there is a sequence of periodic discrete events having the period T, the score being generated for the next individual discrete event received after the N discrete events, including the last N−1 discrete events of the window in time.
A computing circuit detects periodicity in event streams. A communications interface connects to a network. A receiving circuit gets events (like mouse clicks from a remote computer) and records their timestamps. A controller circuit creates a time window of events and calculates an autocorrelation function, highlighting time differences. This is smoothed with a "jitter kernel" (explained in other claims) for peaks. The highest peak marks the period (T). A "likelihood" is calculated based on the peaks. A "score" reflects the confidence in periodicity. The score is generated for the *next* received event, and includes the last N-1 discrete events of the time window.
16. The computing circuit of claim 15 , wherein further: wherein the controller circuit generates the convolution to include, as the jitter kernel, a probability distribution function for a random variable representing a time delay between discrete events in the sequence of discrete events, where the jitter kernel includes a width indicative of noise processes in an environment in which the discrete events occur; and the controller circuit generates the autocorrelation function to include a linear combination of spikes at each of all possible pairwise time delays between the discrete events.
The computing circuit for detecting periodicity refines the "jitter kernel" to be a probability distribution function that accounts for random time delays between events, and the width of this kernel depends on the noise level in the environment. The controller calculates an autocorrelation function by computing all pairwise time delays between events, creating spikes at each delay value and linearly combining those spikes.
17. The method of claim 1 , wherein receiving the stream of mouse clicks from the remote terminal includes receiving the stream of mouse clicks by a receiving circuit through a bidirectional communications means communicably connected to a communication network; and wherein the communication network is located between the receiving circuit and the remote terminal.
The method for evaluating periodicity where mouse clicks are sent from a remote terminal involves the receipt of these clicks by a receiving circuit. The receiving circuit is connected to a bi-directional communications means that is communicably connected to a communications network. The communication network is situated between the receiving circuit and the remote terminal.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
March 28, 2014
June 27, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.