IP Library Granted Patent US 11,763,176
Granted Patent B1
US 11,763,176 · App. 16/796,258 · Granted Sep 19, 2023

Search and query in computer-based reasoning systems

Inventors: Michael Auerbach (Raleigh, NC); Michael Resnick (Raleigh, NC); Christopher James Hazard (Durham, NC)
Assignee: Diveplane Corporation
G06N5/04G06F16/2264G06F16/245
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 11,763,176
App. No.
16/796,258
Granted
Sep 19, 2023
Kind
B1
Abstract

Techniques for improved searching and querying in computer-based reasoning systems are discussed and include receiving multiple new multidimensional data element to store in a computer-based reasoning data model; determining a feature bucket for each feature of each data element and storing a reference identifier in the feature bucket(s). A query on the computer-based reasoning system includes input data element (e.g., an actual data element, or a set of restrictions on features). For each feature in the input data element, feature buckets are determined, candidate results are determined based on whether cases have related feature buckets, and the results are determined based at least in part on the candidate results. In some embodiments, control of controllable systems may be caused based on the results.

Claims (81)

1. A method comprising:

receiving multiple new multidimensional data elements to store in a computer-based reasoning data model;

for each received multidimensional data element:

determining a reference identifier for the multidimensional data element;

for each dimension in the multidimensional data element:

determining a feature bucket from a set of feature buckets for a value of the dimension of the multidimensional data element;

store in a feature bucketed data structure, in a feature bucket corresponding to the determined feature bucket for the value of the dimension of the multidimensional data element, the reference identifier to the multidimensional data element;

receiving a query for nearest neighbor data elements to an input multidimensional data element;

for each feature in the input multidimensional data element:

determining a feature bucket for a value of the feature of the input multidimensional data element;

determining from the feature bucket data structure, one or more multidimensional data elements that have related feature buckets with the input multidimensional data element;

ranking each candidate multidimensional data element of one or more candidate multidimensional data elements based at least in part on a number of feature buckets related to both the candidate multidimensional data element and the input multidimensional data element;

determining the nearest neighbor data elements based at least in part on the ranking of the one or more candidate multidimensional data elements;

returning the determined nearest neighbor data elements;

generating instructions for a controllable system based at least in part on the returned nearest neighbor data elements, wherein the controllable system is a type of system for autonomous vehicles, image labeling data, laboratory control, health care decision making, smart voice control, control of federated devices, manufacturing data, energy transfer systems, or smart home data;

causing control of a controllable system by transmitting the instructions to the controllable system.

2. The method of claim 1 , wherein feature buckets in the set of feature buckets are strictly ordered and values in feature bucket i of the set of feature buckets are all greater than values in feature bucket i−1 in the set of feature buckets.

3. The method of claim 1 , further comprising:

when a number of the one or more candidate multidimensional data elements is less than a threshold:

for each feature in the input multidimensional data element:

determining from the feature bucket data structure, one or more multidimensional data elements that are within a threshold number of feature buckets in the set of feature buckets from the determined feature bucket for the input multidimensional data element;

ranking one or more candidate multidimensional data elements based at least in part on a number of feature buckets within a threshold number of corresponding feature bucket of the input multidimensional data element.

4. The method of claim 1 , further comprising:

determining that a number of items stored in a particular feature bucket is outside a threshold, revising a set of ranges for one or more feature buckets in the set of feature buckets.

5. The method of claim 1 , further comprising:

for each of the one or more candidate multidimensional data elements:

determining a distance from the candidate multidimensional data element to the input multidimensional data element;

wherein determining the nearest neighbor data elements comprises determining the nearest neighbor data elements based at least in part on the distances from the one or more candidate multidimensional data elements to the input multidimensional data element.

6. The method of claim 1 , wherein determining from the feature bucket data structure, one or more multidimensional data elements that have related feature buckets with the input multidimensional data element comprises determining from the feature bucket data structure, one or more multidimensional data elements that share the same feature buckets with the input multidimensional data element.

7. The method of claim 1 , wherein determining from the feature bucket data structure, one or more multidimensional data elements that have related feature buckets with the input multidimensional data element comprises determining from the feature bucket data structure, one or more multidimensional data elements that have nearby feature buckets as compared to the input multidimensional data element.

8. The method of claim 1 , wherein receiving the query for nearest neighbor data elements to the input multidimensional data element comprises receiving a query for results to a structured query.

9. The method of claim 1 , wherein receiving the query for nearest neighbor data elements to the input multidimensional data element comprises receiving the query for k nearest neighbor data elements to the input multidimensional data element.

10. A system comprising one or more computing devices, which one or more computing devices are configured to perform a method of:

receiving multiple new multidimensional data elements to store in a computer-based reasoning data model;

for each received multidimensional data element:

determining a reference identifier for the multidimensional data element;

for each dimension in the multidimensional data element:

determining a feature bucket from a set of feature buckets for a value of the dimension of the multidimensional data element;

store in a feature bucketed data structure, in a feature bucket corresponding to the determined feature bucket for the value of the dimension of the multidimensional data element, the reference identifier to the multidimensional data element;

receiving a query for nearest neighbor data elements to an input multidimensional data element;

for each feature in the input multidimensional data element:

determining a feature bucket for a value of the feature of the input multidimensional data element;

determining from the feature bucket data structure, one or more multidimensional data elements that have related feature buckets with the input multidimensional data element;

ranking each candidate multidimensional data element of one or more candidate multidimensional data elements based at least in part on a number of feature buckets related to both the candidate multidimensional data element and the input multidimensional data element;

determining the nearest neighbor data elements based at least in part on the ranking of the one or more candidate multidimensional data elements;

returning the determined nearest neighbor data elements;

generating instructions for a controllable system based at least in part on the returned nearest neighbor data elements, wherein the controllable system is a type of system for autonomous vehicles, image labeling data, laboratory control, health care decision making, smart voice control, control of federated devices, manufacturing data, energy transfer systems, or smart home data;

causing control of a controllable system by transmitting the instructions to the controllable system.

11. The system of claim 10 , wherein feature buckets in the set of feature buckets are strictly ordered and values in feature bucket i of the set of feature buckets are all greater than values in feature bucket i−1 in the set of feature buckets.

12. The system of claim 10 , the method further comprising:

when a number of the one or more candidate multidimensional data elements is less than a threshold:

for each feature in the input multidimensional data element:

determining from the feature bucket data structure, one or more multidimensional data elements that are within a threshold number of feature buckets in the set of feature buckets from the determined feature bucket for the input multidimensional data element;

ranking one or more candidate multidimensional data elements based at least in part on a number of feature buckets within a threshold number of corresponding feature bucket of the input multidimensional data element.

13. The system of claim 10 , wherein determining from the feature bucket data structure, one or more multidimensional data elements that have related feature buckets with the input multidimensional data element comprises determining from the feature bucket data structure, one or more multidimensional data elements that share the same feature buckets with the input multidimensional data element.

14. The system of claim 10 , wherein determining from the feature bucket data structure, one or more multidimensional data elements that have related feature buckets with the input multidimensional data element comprises determining from the feature bucket data structure, one or more multidimensional data elements that have nearby feature buckets as compared to the input multidimensional data element.

15. The system of claim 10 , wherein receiving the query for nearest neighbor data elements to the input multidimensional data element comprises receiving a query for results to a structured query.

16. One or more non-transitory storage media storing instructions which, when executed by one or more computing devices, cause performance of a method of:

receiving multiple new multidimensional data elements to store in a computer-based reasoning data model;

for each received multidimensional data element:

determining a reference identifier for the multidimensional data element;

for each dimension in the multidimensional data element:

determining a feature bucket from a set of feature buckets for a value of the dimension of the multidimensional data element;

store in a feature bucketed data structure, in a feature bucket corresponding to the determined feature bucket for the value of the dimension of the multidimensional data element, the reference identifier to the multidimensional data element;

receiving a query for nearest neighbor data elements to an input multidimensional data element;

for each feature in the input multidimensional data element:

determining a feature bucket for a value of the feature of the input multidimensional data element;

determining from the feature bucket data structure, one or more multidimensional data elements that have related feature buckets with the input multidimensional data element;

ranking each candidate multidimensional data element of one or more candidate multidimensional data elements based at least in part on a number of feature buckets related to both the candidate multidimensional data element and the input multidimensional data element;

determining the nearest neighbor data elements based at least in part on the ranking of the one or more candidate multidimensional data elements;

returning the determined nearest neighbor data elements;

generating instructions for a controllable system based at least in part on the returned nearest neighbor data elements, wherein the controllable system is a type of system for autonomous vehicles, image labeling data, laboratory control, health care decision making, smart voice control, control of federated devices, manufacturing data, energy transfer systems, or smart home data;

causing control of a controllable system by transmitting the instructions to the controllable system.

17. The one or more non-transitory storage media of claim 16 , wherein feature buckets in the set of feature buckets are strictly ordered and values in feature bucket i of the set of feature buckets are all greater than values in feature bucket i−1 in the set of feature buckets.

18. The one or more non-transitory storage media of claim 16 , the method further comprising:

when a number of the one or more candidate multidimensional data elements is less than a threshold:

for each feature in the input multidimensional data element:

determining from the feature bucket data structure, one or more multidimensional data elements that are within a threshold number of feature buckets in the set of feature buckets from the determined feature bucket for the input multidimensional data element;

ranking one or more candidate multidimensional data elements based at least in part on a number of feature buckets within a threshold number of corresponding feature bucket of the input multidimensional data element.

19. The one or more non-transitory storage media of claim 16 , wherein determining from the feature bucket data structure, one or more multidimensional data elements that have related feature buckets with the input multidimensional data element comprises determining from the feature bucket data structure, one or more multidimensional data elements that share the same feature buckets with the input multidimensional data element.

20. The one or more non-transitory storage media of claim 16 , wherein determining from the feature bucket data structure, one or more multidimensional data elements that have related feature buckets with the input multidimensional data element comprises determining from the feature bucket data structure, one or more multidimensional data elements that have nearby feature buckets as compared to the input multidimensional data element.

Assignments (6)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 22, 2025
From: WESTERN ALLIANCE BANK
To: HOWSO INCORPORATED
Reel/Frame 069988/0038 →
CHANGE OF NAME Recorded Sep 28, 2023
From: DIVEPLANE CORPORATION
To: HOWSO INCORPORATED
Reel/Frame 065081/0559 →
CHANGE OF NAME Recorded Sep 22, 2023
From: DIVEPLANE CORPORATION
To: HOWSO INCORPORATED
Reel/Frame 065021/0691 →
SECURITY INTEREST Recorded Jan 31, 2023
From: DIVEPLANE CORPORATION
To: WESTERN ALLIANCE BANK
Reel/Frame 062554/0106 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2022
From: AUERBACH, MICHAEL
To: DIVEPLANE CORPORATION
Reel/Frame 060741/0878 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2022
From: HAZARD, CHRISTOPHER JAMES; RESNICK, MICHAEL
To: DIVEPLANE CORPORATION
Reel/Frame 060470/0539 →
Continuity (1)
Provisional Application 62848729 · May 16, 2019