IP Library Granted Patent US 12,681,993
Granted Patent B2
US 12,681,993 · App. 18/643,602 · Granted Jul 14, 2026

Hierarchical, parallel models for extracting in real time high-value information from data streams and system and method for creation of same

Inventors: Luis F. Stevens (San Jose, CA); John Skolfield (San Jose, CA); Vince Schiavone (Berwyn, PA); Steve Weissinger (San Jose, CA); George Tretyakov (Campbell, CA); Ryan Mammina (San Jose, CA); Mo Malakiman (San Jose, CA)
Assignee: Target Brands, Inc.
G06F16/90335G06F16/24568G06F40/237G06F40/284G06F40/30
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,681,993
App. No.
18/643,602
Filed
Apr 23, 2024
Granted
Jul 14, 2026
Kind
B2
Art Unit
2156
USPC
707/769
Abstract

A method includes receiving a first post from an electronic source including first content; determining a source identifier; determining an attribute for the source by broadcasting the first post to a first plurality of filter graph definitions configured to identify attributes of sources according to the respective filter graph definition; and storing in memory, as a source profile identified by the source identifier for the source, the attribute for the source; receiving a second post from the source including second content; determining a source identifier; using the source identifier, querying the memory to access the source profile; correlating the second post with attributes of the source stored in the source profile to produce a correlated second post; and broadcasting the correlated second post to a second plurality of filter graph definitions configured to identify posts with high value information according to the respective filter graph definition.

Claims (59)

1 . A method of classifying data streams in real-time, the method comprising:

receiving a data stream that includes a plurality of data packets;

segmenting each data packet of the plurality of data packets into a plurality of data segments;

calculating a L-2 norm for each data segment of the plurality of data segments for each data packet of the plurality of data packets;

based on the L-2 norm for each data segment of the plurality of data segments for each data packet of the plurality of data packets, clustering the plurality of data segments into a plurality of data clusters, wherein each of the plurality of data clusters comprises one or more data segments of the plurality of data segments;

aggregating the plurality of data clusters associated with each data packet of the plurality of data packets into a respective aggregated data cluster, wherein the aggregating is performed by multi-threaded aggregating processes;

using a lockless hash-map, computing a plurality of min-distance vectors associated with each respective aggregated data cluster associated with each data packet of the plurality of data packets in parallel and asynchronously, wherein each min-distance vector of the plurality of min-distance vectors corresponds to each data packet of the plurality of data packets;

sorting each respective min-distance vector in the plurality of min-distance vectors to compute a plurality of minimum distances for each respective data packet in the plurality of data packets, wherein the sorting is performed by multi-threaded sorting processes; and

outputting, for each respective data packet of the plurality of data packets, the plurality of minimum distances that corresponds to the respective data packet.

2 . The method of claim 1 , further comprising:

while segmenting the respective data packet of the plurality of data packets, assigning a unique non-repeating packet identifier to the respective data packet, and annotating each respective data segment corresponding to the respective data packet with the unique non-repeating packet identifier; and

while aggregating the plurality of data clusters, using the unique non-repeating packet identifier that the respective data segment is annotated with as a key for the lockless hash-map.

3 . The method of claim 1 , wherein a plurality of classifying engines is used in clustering the plurality of data segments.

4 . The method of claim 3 , further comprising: selecting a number of classifying engines in the plurality of classifying engines based on the received data stream and using a subset of the plurality of classifying engines to cluster the plurality of data segments.

5 . The method of claim 3 , wherein each classifying engine of the plurality of classifying engines is a Linear Algebra engine.

6 . The method of claim 2 , wherein clustering the plurality of data segments further includes:

training a classification model to compute centroids for K clusters in N dimensions, wherein K is a predetermined number of classification categories and N is a predetermined data-dimensionality for the data stream; and

calculating the L2-norm for each data segment of the plurality of data segments using the computed centroids or a predetermined list of centroids.

7 . The method of claim 6 , wherein outputting the plurality of minimum distances further includes tabulating the plurality of minimum distances along with information related to the computed centroid of the clusters and the packet identifiers for the plurality of data packets.

8 . The method of claim 1 , wherein sorting to compute the plurality of minimum distances further includes identifying a respective min-distance vector of the plurality of min-distance vectors that corresponds to a respective data packet based on a packet identifier corresponding to the respective data packet and sorting the respective min-distance vector.

9 . The method of claim 1 , wherein aggregating the plurality of data clusters and sorting to compute the plurality of minimum distances are implemented as multi-threaded processes.

10 . A system for classifying data streams in real-time, the system comprising:

a computing system with one or more processors and memory, the memory storing instructions that when executed by the one or more processors cause the computing system to:

receive a data stream that includes a plurality of data packets;

segment each data packet of the plurality of data packets into a plurality of data segments;

store the plurality of data segments in a first memory buffer, while continuing to receive data streams;

cluster the plurality of data segments into a plurality of data clusters, wherein the clustering includes:

read the plurality of data segments from the first memory buffer; and

calculate a L-2 norm for each data segment of the plurality of data segments, wherein each data cluster of the plurality of data clusters comprises one or more data segments of the plurality of data segments;

store the plurality of data clusters to a second memory buffer;

aggregate the plurality of data clusters, using a lockless hash map, to compute a plurality of min-distance vectors in parallel and asynchronously, including by reading one or more data clusters of the plurality of data clusters from the second memory buffer, wherein the aggregating is performed by multi-threaded aggregating processes;

store the plurality of min-distance vectors to a third memory buffer, wherein each respective min-distance vector in the plurality of min-distance vectors corresponds to a data packet in the plurality of data packets, wherein the sorting is performed by multi-threaded sorting processes;

sort each respective min-distance vector in the plurality of min-distance vectors to compute a plurality of minimum distances for each respective data packet of the plurality of data packets, including by reading the plurality of min-distance vectors from the third memory buffer; and

output, for each respective data packet of the plurality of data packets, the plurality of minimum distances that corresponds to the respective data packet.

11 . The system of claim 10 , wherein the instructions when executed by the one or more processors further cause the computing system to:

while segmenting the respective data packet of the plurality of data packets, assign a unique non-repeating packet identifier to the respective data packet, and annotating each respective data segment corresponding to the respective data packet with the unique non-repeating packet identifier; and

while aggregating the plurality of data clusters, use the unique non-repeating packet identifier that the respective data segment is annotated with as a key for the lockless hash-map.

12 . The system of claim 10 , wherein a plurality of classifying engines is used in clustering the plurality of data segments.

13 . The system of claim 12 , wherein the instructions when executed by the one or more processors further cause the computing system to:

select a number of classifying engines in the plurality of classifying engines based on the received data stream and using a subset of the plurality of classifying engines to cluster the plurality of data segments.

14 . The system of claim 12 , wherein each classifying engine of the plurality of classifying engines is a Linear Algebra based engine.

15 . The system of claim 11 , wherein to cluster the plurality of data segments further includes to:

train a classification model to compute centroids for K clusters in N dimensions, wherein K is a predetermined number of classification categories and N is a predetermined data-dimensionality for the data stream; and

calculate the L2-norm for each data segment of the plurality of data segments using the computed centroids or a predetermined list of centroids.

16 . The system of claim 15 , wherein to output the plurality of minimum distances further includes to tabulate the plurality of minimum distances along with information related to the computed centroid of the clusters and the packet identifiers for the plurality of data packets.

17 . The system of claim 10 , wherein to sort to compute the plurality of minimum distances further includes to identify a respective min-distance vector of the plurality of min-distance vectors that corresponds to a respective data packet based on a packet identifier corresponding to the respective data packet and sorting the respective min-distance vector.

18 . The system of claim 10 , wherein aggregating the plurality of data clusters and sorting to compute the plurality of minimum distances are implemented as multi-threaded processes.

19 . A non-transitory computer readable storage medium storing a set of instructions, which when executed by a computing system with one or more processors cause the computing system to:

receive a data stream that includes a plurality of data packets;

segment each data packet of the plurality of data packets into a plurality of data segments;

calculate a L-2 norm for each data segment of the plurality of data segments for each data packet of the plurality of data packets;

based on the L-2 norm for each data segment of the plurality of data segments for each data packet of the plurality of data packets, cluster the plurality of data segments into a plurality of data clusters, wherein each of the plurality of data clusters comprises one or more data segments of the plurality of data segments;

aggregate the plurality of data clusters associated with each data packet of the plurality of data packets into a respective aggregated data cluster, wherein the aggregating is performed by multi-threaded aggregating processes;

using a lockless hash-map, compute a plurality of min-distance vectors associated with each respective aggregated data cluster associated with each data packet of the plurality of data packets in parallel and asynchronously, wherein each min-distance vector of the plurality of min-distance vectors corresponds to each data packet of the plurality of data packets; and

sort each respective min-distance vector in the plurality of min-distance vectors to compute a plurality of minimum distances for each respective data packet in the plurality of data packets, wherein the sorting is performed by multi-threaded sorting processes; and

output, for each respective data packet of the plurality of data packets, the plurality of minimum distances that corresponds to the respective data packet.

20 . The system of claim 19 , wherein to cluster the plurality of data segments further includes to:

train a classification model to compute centroids for K clusters in N dimensions, wherein K is a predetermined number of classification categories and N is a predetermined data-dimensionality for the data stream; and

calculate the L2-norm for each data segment of the plurality of data segments using the computed centroids or a predetermined list of centroids.

Continuity (5)
Continuation 17835428 · Jun 8, 2022
Continuation 16917447 · Jun 30, 2020
Continuation PCTUS2018068047 · Dec 28, 2018
Provisional Application 62612432 · Dec 30, 2017
Related Publication 20240273143A1 · Aug 15, 2024
References Cited (112)
US 5873081A · Harel · 1999 [cited by applicant]
US 5913038A · Griffiths · 1999 [cited by applicant]
US 5920876A · Ungar et al. · 1999 [cited by applicant]
US 6233652B1 · Mathews et al. · 2001 [cited by applicant]
US 6859807B1 · Knight et al. · 2005 [cited by applicant]
US 7188168B1 · Liao · 2007 [cited by applicant]
US 7277885B2 · Eppley et al. · 2007 [cited by applicant]
US 7346753B2 · Chase et al. · 2008 [cited by applicant]
US 7792846B1 · Raffill et al. · 2010 [cited by applicant]
US 8370460B1 · Khakpour et al. · 2013 [cited by applicant]
US 8407217B1 · Zhang · 2013 [cited by applicant]
US 8504579B1 · Broekhuijsen · 2013 [cited by applicant]
US 8909643B2 · Ankan et al. · 2014 [cited by applicant]
US 9047283B1 · Zhang et al. · 2015 [cited by applicant]
US 9317593B2 · Marvit et al. · 2016 [cited by applicant]
US 9498983B1 · Goto · 2016 [cited by applicant]
US 9553922B1 · Guarraci et al. · 2017 [cited by applicant]
US 20020099861A1 · Miller et al. · 2002 [cited by applicant]
US 20020099870A1 · Miller et al. · 2002 [cited by applicant]
US 20040039786A1 · Horvitz et al. · 2004 [cited by applicant]
US 20040042470A1 · Cooper et al. · 2004 [cited by applicant]
US 20040078779A1 · Dutt et al. · 2004 [cited by applicant]
US 20040107227A1 · Michael · 2004 [cited by applicant]
US 20050080792A1 · Ghatare · 2005 [cited by applicant]
US 20050114700A1 · Barrie et al. · 2005 [cited by applicant]
US 20050138092A1 · Abuaiadh et al. · 2005 [cited by applicant]
US 20050249080A1 · Foote · 2005 [cited by examiner]
US 20060069872A1 · Bouchard et al. · 2006 [cited by applicant]
US 20060107216A1 · Cooper · 2006 [cited by examiner]
US 20060155920A1 · Smith et al. · 2006 [cited by applicant]
US 20060155922A1 · Gorobets et al. · 2006 [cited by applicant]
US 20070043565A1 · Aggarwal · 2007 [cited by examiner]
US 20070143326A1 · Chase et al. · 2007 [cited by applicant]
US 20080162547A1 · Bonev et al. · 2008 [cited by applicant]
US 20080319746A1 · Okamoto et al. · 2008 [cited by applicant]
US 20090037350A1 · Rudat · 2009 [cited by applicant]
US 20090097413A1 · Todd et al. · 2009 [cited by applicant]
US 20090132553A1 · Kohn et al. · 2009 [cited by applicant]
US 20090204610A1 · Hellstrom et al. · 2009 [cited by applicant]
US 20090327377A1 · Ylonen · 2009 [cited by applicant]
US 20100191772A1 · Brown et al. · 2010 [cited by applicant]
US 20100191773A1 · Stefik et al. · 2010 [cited by applicant]
US 20100262684A1 · Valois et al. · 2010 [cited by applicant]
US 20110047166A1 · Stading et al. · 2011 [cited by applicant]
US 20110078167A1 · Sundaresan et al. · 2011 [cited by applicant]
US 20110154236A1 · Stoeck et al. · 2011 [cited by applicant]
US 20110202555A1 · Cordover et al. · 2011 [cited by applicant]
US 20110246457A1 · Dong et al. · 2011 [cited by applicant]
US 20110246485A1 · Rinearson et al. · 2011 [cited by applicant]
US 20110302124A1 · Cai et al. · 2011 [cited by applicant]
US 20110302162A1 · Xiao et al. · 2011 [cited by applicant]
US 20110302551A1 · Hummel, Jr. · 2011 [cited by applicant]
US 20120078918A1 · Somasundaran et al. · 2012 [cited by applicant]
US 20120102021A1 · Hill et al. · 2012 [cited by applicant]
US 20120117533A1 · Hatcherson et al. · 2012 [cited by applicant]
US 20120197980A1 · Terleski et al. · 2012 [cited by applicant]
US 20120246097A1 · Jain et al. · 2012 [cited by applicant]
US 20120278477A1 · Terrell et al. · 2012 [cited by applicant]
US 20130081056A1 · Hu et al. · 2013 [cited by applicant]
US 20130124504A1 · Haugen et al. · 2013 [cited by applicant]
US 20130212095A1 · Barad et al. · 2013 [cited by applicant]
US 20130268534A1 · Mathew et al. · 2013 [cited by applicant]
US 20130275656A1 · Talagala et al. · 2013 [cited by applicant]
US 20130282765A1 · Bhattacharjee et al. · 2013 [cited by applicant]
US 20130291007A1 · Shimy et al. · 2013 [cited by applicant]
US 20130325862A1 · Black · 2013 [cited by examiner]
US 20140032579A1 · Merriman · 2014 [cited by examiner]
US 20140078887A1 · Yu et al. · 2014 [cited by applicant]
US 20140280168A1 · Setayesh et al. · 2014 [cited by applicant]
US 20140297652A1 · Stevens et al. · 2014 [cited by applicant]
US 20140297664A1 · Stevens et al. · 2014 [cited by applicant]
US 20140297665A1 · Stevens et al. · 2014 [cited by applicant]
US 20150032448A1 · Wasserblat et al. · 2015 [cited by applicant]
US 20150248476A1 · Weissinger et al. · 2015 [cited by applicant]
US 20160282394A1 · House et al. · 2016 [cited by applicant]
US 20170075990A1 · Leu · 2017 [cited by examiner]
US 20170168751A1 · Stevens et al. · 2017 [cited by applicant]
US 20170255536A1 · Weissinger et al. · 2017 [cited by applicant]
US 20200311384A1 · Thompson · 2020 [cited by examiner]
EP 1462950A1 · 2004 [cited by applicant]
WO 2017091774A1 · 2017 [cited by applicant]
Extended European Search Report for 18897650.0 mailed Feb. 8, 2022, 8pgs. [cited by applicant]
Detection and Reaction to Contextual Information based on analysis of a Live Data Stream (Year: 2010). [cited by applicant]
Akuda Labs LLC, International Search Report and Written Opinion, PCT/US2014/029759, May 29, 2015, 17 pages. [cited by applicant]
Akuda Labs LLC, International Preliminary report on Patentability, PCT/US2014/029759, Sep. 15, 2015, 12 pgs. [cited by applicant]
Akuda Labs, LLC, International Search Report and Written Opinion, PCT/US2015/026252, Jul. 31, 2015, 10 pgs. [cited by applicant]
Akuda Labs LLC, International Preliminary Report on Patentability, PCT/US2015/026252, Oct. 18, 2016, 8 pgs. [cited by applicant]
Akuda Labs LLC, International Search Report and Written Opinion, PCT/US2016/063678, Feb. 16, 2017, 6 pgs. [cited by applicant]
Akuda Labs LLC, International Preliminary Report on Patentability, PCT/US2016/063678, May 29, 2018, 5 pgs. [cited by applicant]
Akuda Labs LLC, Communication Pursuant to Rules 161(2) and 162, EP14730617.9, Oct. 30, 2015, 2 pgs. [cited by applicant]
Akuda Labs LLC, Extended European Search Report, EP14730617.9, Oct. 7, 2016, 8 pgs. [cited by applicant]
Akuda Labs LLC, Communication Pursuant to Rules 70(2) and 70a(2), EP14730617.9, Oct. 25, 2016, 1 pg. [cited by applicant]
Akuda Labs LLC, Communication Pursuant to Article 94(3), EP14730617.9, Aug. 10, 2018, 8 pqs. [cited by applicant]
UDA LLC, Extended European Search Report, EP15780371.9, dated Jan. 29, 2018, 6 pages. [cited by applicant]
UDA LLC, Communication Pursuant to Rules 70(2) and 70a(2), EP15780371.9, Feb. 16, 2018, 1 pg. [cited by applicant]
UDA LLC, Communication Pursuant Article 94-3, EP15780371.9, Nov. 26, 2018, 6 pgs. [cited by applicant]
Anastasiu et al., “Document Clustering: The Next Frontier,” UMN-CS&E TR 13-004, Feb. 2013, 20 pgs. [cited by applicant]
Chen, Edwin, “What is a good explanation of Latent Dirichlet Allocation,” Aug. 2011, Quora.com, printed on Jun. 25, 2017, 17 pgs. [cited by applicant]
Goldberg, “Introducing The Decision Model: A Business Logic Framework,” Jan. 18, 2012, retrieved from http://WWW.irmac.ca/1112/The%20Decision%20Model%20for/o20irmac%202012_ 18_01 .pdf?lbisphpreq=1, 82 pgs. [cited by applicant]
Park et al., “Topic Word Selection for Biogs by Topic Richness Using Web Search Result Clustering,” In proceedings Df the 6th International Conference on Ubiquitous Information Management and Communication, No. 80, 20-2… [cited by applicant]
Stevens, Office Action, U.S. Appl. No. 14/214,410, filed Jan. 13, 2016, 14 pgs. [cited by applicant]
Stevens, Office Action, U.S. Appl. No. 14/214,443, filed Feb. 11, 2016, 11 pgs. [cited by applicant]
Stevens, Notice of Allowance, U.S. Appl. No. 14/214,443, filed Jun. 9, 2016, 11 pgs. [cited by applicant]
Stevens, Office Action, U.S. Appl. No. 14/214,490, filed Mar. 24, 2016, 11 pgs. [cited by applicant]
Stevens, Notice of Allowance, U.S. Appl. No. 14/214,490, filed Nov. 7, 2016, 11 pgs. [cited by applicant]
Stevens, Office Action, U.S. Appl. No. 15/360,934, filed Jan. 30, 2018, 7 pages. [cited by applicant]
Stevens, Notice of Allowance, U.S. Appl. No. 15/360,934, filed Jul. 24, 2018, 9 pgs. [cited by applicant]
Weissinger, Office Action, U.S. Appl. No. 14/688,865, filed Jun. 30, 2017, 18 pgs. [cited by applicant]
Weissinger, Final Office Action, U.S. Appl. No. 14/688,865, filed Jun. 19, 2018, 19 pgs. [cited by applicant]
Weissinger, Office Action, U.S. Appl. No. 15/530,187, filed Feb. 2, 2018, 12 pages. [cited by applicant]
International Search Report issued in PCT/US2016/068047, completed on Mar. 11, 2019 and mailed Mar. 27, 2019. [cited by applicant]
International Preliminary Report on Patentability and Written Opinion, issued in PCT/US2016/068047, issued Jun. 30, 2020. [cited by applicant]