IP Library Granted Patent US 12,333,243
Granted Patent B2
US 12,333,243 · App. 17/134,481 · Granted Jun 17, 2025

Machine learning of response selection to structured data input including momentum classification

Inventors: Joshua Howard Levy (Austin, TX); Alexa Breann Eun Taylor (Georgetown, TX); Reed Coke (Austin, TX)
Assignee: Ojo Labs, Inc.
G06F40/20G06F16/24578G06F17/11G06F40/56G06N20/00G06F40/186G06F40/30G06F40/35
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,333,243
App. No.
17/134,481
Granted
Jun 17, 2025
Kind
B2
Abstract

A machine learning of response selection to structured data input enables a machine to flexibly and responsively actively engage with a response recipient through a device, such as any electronic device connected to a data network. A system of one or more computers can be configured to respond to structured language messages, such as a textual messages, received from user devices with one or more templates that have been ranked using predetermined criteria including a machine learning classification of a momentum of a structured language message using a machine learning model. The momentum classification is correlated with templates. A ranking engine ranks the selection of candidate response templates in accordance with ranking criteria, including the momentum classifications for the candidate response templates. A highest ranked candidate response template is selected to provide a response to the textual messages received from the user devices.

Claims (736)

1. A method of machine learning in the selection of a ranked response to a structured data input having a natural language processing output schema received from a requesting device, the method comprising:

in an electronic, machine learning processing system:

receiving the structured data input, wherein the structured data input includes filtering parameters for conversion into response template filtering criteria;

querying a library of response templates to identify candidate response templates that meet the response template filtering criteria to filter the response templates;

receiving a selection of the candidate response templates that meet the response template filtering criteria and respond to the structured input data, wherein the candidate response templates include static data;

receiving messages from user devices after transmission of one or more response templates to the user devices;

providing the messages to a momentum classifier implemented as a machine learning model;

assigning momentum classifications to the messages using the machine learning model;

correlating the templates communicated to the user devices with corresponding momentum classifications;

operating a ranking engine to rank the selection of response templates in accordance with ranking criteria, wherein the ranking criteria includes momentum classifications for the candidate response templates; and

selecting a highest ranked response template to provide a response to a device;

deriving the response to the structured data input from the selected, highest ranked, candidate response template;

providing to the response to a recipient device; and

providing feedback to the ranking engine to refine the ranking criteria.

2. The method of claim 1 wherein the requesting device accesses data that provides insight into an individual and formulates the structured data input as a proactive query to obtain a proactive response to provide to the recipient device that is germane to the individual based on the insight.

3. The method of claim 1 wherein the requesting device comprises a natural language processor that processes a natural language statement to generate natural language output data, wherein the structured data input comprises the natural language output data.

4. The method of claim 1 wherein the filtering parameters comprise an intent path, entity names, and entity values derived from a natural language statement and structured in accordance with the natural language processed output schema.

5. The method of claim 1 wherein at least a proper subset of the response templates include one or more dynamic fields, the method further comprising:

populating the one or more dynamic data fields of at least one of the candidate response templates with data obtained from the structured data input.

6. The method of claim 1 further comprising:

accessing profiles of one or more users to obtain augmenting data that augments intent data of the structured data input, wherein each of the profiles about a user includes data representing factual and behavioral information about the user; and

augmenting response templates with the augmenting data.

7. The method of claim 1 wherein the ranking criteria comprises a function of a conversion rate of each of the candidate response templates that distributes the highest conversion rate ranking among candidate response templates to allow the machine to learn about each of the candidate response templates.

8. The method of claim 1 further comprising:

for each candidate response template, determining the conversion rate in accordance with equation [1]:

Conversion

Rate

=

Success

Count

Attempt

Count

[

1

]

Success

Count

=

a

(

S

C

User

+

S

C

Group

+

SC

All

)

Attempt

Count

=

a

(

I

User

+

I

Group

+

I

All

)

S

C

User

=

w

a

w

U

conversions

a

,

U

(

)

S

C

Group

=

w

a

w

G

k

x

conversions

a

,

k

(

)

S

C

All

=

w

a

w

A

conversions

a

,

A

(

)

Attempt

Count

=

a

(

I

User

+

I

Group

+

I

A

l

l

)

I

User

=

w

a

w

U

impressions

a

,

U

(

)

I

Group

=

w

a

w

G

k

x

impressions

a

,

k

(

)

I

All

=

w

a

w

A

impressions

a

,

A

(

)

wherein:

w a is an activity weight;

w U is a user weight of a user U associated with the structured data input, w G is a group weight of a group G that includes the user and is a subset of all users of the supervised learning processing system, and w A is a weight for all users A of the supervised learning processing system;

conversion is a conversion associated with the response template for an activity a by a user the user U, the group G, or all users A; and

impression is an impression associated with the response template for an activity a by a user the user U, the group G, or all users A.

9. An apparatus for machine learning in the selection of a ranked response to a structured data input having a natural language processing output schema received from a requesting device, the apparatus comprising:

one or more data processors;

a memory, coupled to the data processors, having code stored therein to cause the one or more data processors to:

receive the structured data input, wherein the structured data input includes filtering parameters for conversion into response template filtering criteria;

convert the filtering parameters into the response template filtering criteria;

query a library of response templates to identify candidate response templates that meet the response template filtering criteria to filter the response templates;

receive a selection of the candidate response templates that meet the response template filtering criteria and respond to the structured input data, wherein the candidate response templates include static data;

receive messages from user devices after transmission of one or more response templates to the user devices;

provide the messages to a momentum classifier implemented as a machine learning model;

assign momentum classifications to the messages using the machine learning model;

correlate the templates communicated to the user devices with corresponding momentum classifications;

operate a ranking engine to rank the selection of response templates in accordance with ranking criteria, wherein the ranking criteria includes momentum classifications for the candidate response templates; and

select a highest ranked response template to provide a response to a device;

derive the response to the structured data input from the selected, highest ranked, candidate response template;

provide to the response to a recipient device; and

provide feedback to the ranking engine to refine the ranking criteria.

10. The apparatus of claim 9 wherein the requesting device accesses data that provides insight into an individual and formulates the structured data input as a proactive query to obtain a proactive response to provide to the recipient device that is germane to the individual based on the insight.

11. The apparatus of claim 9 wherein the requesting device comprises a natural language processor that processes a natural language statement to generate natural language output data, wherein the structured data input comprises the natural language output data.

12. The apparatus of claim 9 wherein the filtering parameters comprise an intent path, entity names, and entity values derived from a natural language statement and structured in accordance with the natural language processed output schema.

13. The apparatus of claim 9 wherein at least a proper subset of the response templates include one or more dynamic fields, and the code further causes the one or more data processors to:

populate the one or more dynamic data fields of at least one of the candidate response templates with data obtained from the structured data input.

14. The apparatus of claim 9 wherein the code further causes the one or more data processors to:

access profiles of one or more users to obtain augmenting data that augments intent data of the structured data input, wherein each of the profiles about a user includes data representing factual and behavioral information about the user; and

augment response templates with the augmenting data.

15. The apparatus of claim 9 wherein the ranking criteria comprises a function of a conversion rate of each of the candidate response templates that distributes the highest conversion rate ranking among candidate response templates to allow the machine to learn about each of the candidate response templates.

16. The apparatus of claim 9 further comprising:

for each candidate response template, determining the conversion rate in accordance with equation [1]:

Conversion

Rate

=

Success

Count

Attempt

Count

[

1

]

Success

Count

=

a

(

S

C

User

+

S

C

Group

+

SC

All

)

Attempt

Count

=

a

(

I

User

+

I

Group

+

I

All

)

S

C

User

=

w

a

w

U

conversions

a

,

U

(

)

S

C

Group

=

w

a

w

G

k

x

conversions

a

,

k

(

)

S

C

All

=

w

a

w

A

conversions

a

,

A

(

)

Attempt

Count

=

a

(

I

User

+

I

Group

+

I

A

l

l

)

I

User

=

w

a

w

U

impressions

a

,

U

(

)

I

Group

=

w

a

w

G

k

x

impressions

a

,

k

(

)

I

All

=

w

a

w

A

impressions

a

,

A

(

)

wherein:

w a is an activity weight;

w U is a user weight of a user U associated with the structured data input, w G is a group weight of a group G that includes the user and is a subset of all users of the supervised learning processing system, and w A is a weight for all users A of the supervised learning processing system;

conversion is a conversion associated with the response template for an activity a by a user the user U, the group G, or all users A; and

impression is an impression associated with the response template for an activity a by a user the user U, the group G, or all users A.

17. A non-transitory, computer program product comprising code stored therein and executable by one or more processors to cause machine learning in the selection of a ranked response to a structured data input having a natural language processing output schema received from a requesting device, wherein the code is executable to cause the one or more data processors to:

receive the structured data input, wherein the structured data input includes filtering parameters for conversion into response template filtering criteria;

convert the filtering parameters into the response template filtering criteria;

query a library of response templates to identify candidate response templates that meet the response template filtering criteria to filter the response templates;

receive a selection of the candidate response templates that meet the response template filtering criteria and respond to the structured input data, wherein the candidate response templates include static data;

operate a ranking engine to rank the selection of candidate response templates in accordance with ranking criteria;

select a highest ranked candidate response template to provide a response to a device;

derive the response to the structured data input from the selected, highest ranked, candidate response template;

provide to the response to a recipient device; and

provide feedback to the ranking engine to refine the ranking criteria.

18. The non-transitory, computer program product of claim 17 wherein the requesting device accesses data that provides insight into an individual and formulates the structured data input as a proactive query to obtain a proactive response to provide to the recipient device that is germane to the individual based on the insight.

19. The non-transitory, computer program product of claim 17 wherein the requesting device comprises a natural language processor that processes a natural language statement to generate natural language output data, wherein the structured data input comprises the natural language output data.

20. The non-transitory, computer program product of claim 17 wherein the filtering parameters comprise an intent path, entity names, and entity values derived from a natural language statement and structured in accordance with the natural language processed output schema.

21. The non-transitory, computer program product of claim 17 wherein at least a proper subset of the response templates include one or more dynamic fields, and the code further causes the one or more data processors to:

populate the one or more dynamic data fields of at least one of the candidate response templates with data obtained from the structured data input.

22. The non-transitory, computer program product of claim 9 wherein the code further causes the one or more data processors to:

access profiles of one or more users to obtain augmenting data that augments intent data of the structured data input, wherein each of the profiles about a user includes data representing factual and behavioral information about the user; and

augment response templates with the augmenting data.

23. The non-transitory, computer program product of claim 17 wherein the ranking criteria comprises a function of a conversion rate of each of the candidate response templates that distributes the highest conversion rate ranking among candidate response templates to allow the machine to learn about each of the candidate response templates.

24. The non-transitory, computer program product of claim 17 further comprising:

for each candidate response template, determining the conversion rate in accordance with equation [1]:

Conversion

Rate

=

Success

Count

Attempt

Count

[

1

]

Success

Count

=

a

(

S

C

User

+

S

C

Group

+

SC

All

)

Attempt

Count

=

a

(

I

User

+

I

Group

+

I

All

)

S

C

User

=

w

a

w

U

conversions

a

,

U

(

)

S

C

Group

=

w

a

w

G

k

x

conversions

a

,

k

(

)

S

C

All

=

w

a

w

A

conversions

a

,

A

(

)

Attempt

Count

=

a

(

I

User

+

I

Group

+

I

A

l

l

)

I

User

=

w

a

w

U

impressions

a

,

U

(

)

I

Group

=

w

a

w

G

k

x

impressions

a

,

k

(

)

I

All

=

w

a

w

A

impressions

a

,

A

(

)

wherein:

w a is an activity weight;

w U is a user weight of a user U associated with the structured data input, w G is a group weight of a group G that includes the user and is a subset of all users of the supervised learning processing system, and w A is a weight for all users A of the supervised learning processing system;

conversion is a conversion associated with the response template for an activity a by a user the user U, the group G, or all users A; and

impression is an impression associated with the response template for an activity a by a user the user U, the group G, or all users A.

25. A method of receiving a response generated by machine learning in the selection of a ranked response to a structured data input having a natural language processing output schema received from a requesting device, the method comprising:

in an electronic, machine learning processing system:

receiving the response generated by:

receiving the structured data input, wherein the structured data input includes filtering parameters for conversion into response template filtering criteria;

converting the filtering parameters into the response template filtering criteria;

querying a library of response templates to identify candidate response templates that meet the response template filtering criteria to filter the response templates;

receiving a selection of the candidate response templates that meet the response template filtering criteria and respond to the structured input data, wherein the candidate response templates include static data;

receiving messages from user devices after transmission of one or more response templates to the user devices;

providing the messages to a momentum classifier implemented as a machine learning model;

assigning momentum classifications to the messages using the machine learning model;

correlating the templates communicated to the user devices with corresponding momentum classifications;

operating a ranking engine to rank the selection of response templates in accordance with ranking criteria, wherein the ranking criteria includes momentum classifications for the candidate response templates; and

selecting a highest ranked response template to provide a response to a device;

deriving the response to the structured data input from the selected, highest ranked, candidate response template;

providing to the response to a recipient device; and

providing feedback to the ranking engine to refine the ranking criteria.

26. The method of claim 25 wherein the requesting device comprises a natural language processor that processes a natural language statement to generate natural language output data, wherein the structured data input comprises the natural language output data.

27. The method of claim 25 wherein the filtering parameters comprise an intent path, entity names, and entity values derived from a natural language statement and structured in accordance with the natural language processed output schema.

28. The method of claim 25 wherein at least a proper subset of the response templates include one or more dynamic fields, the method further comprising:

populating the one or more dynamic data fields of at least one of the candidate response templates with data obtained from the structured data input.

29. The method of claim 25 wherein the response is further generated by:

accessing profiles of one or more users to obtain augmenting data that augments intent data of the structured data input, wherein each of the profiles about a user includes data representing factual and behavioral information about the user; and

augmenting response templates with the augmenting data.

30. The method of claim 25 wherein the ranking criteria comprises a function of a conversion rate of each of the candidate response templates that distributes the highest conversion rate ranking among candidate response templates to allow the machine to learn about each of the candidate response templates.

Assignments (2)
PATENT SECURITY AGREEMENT Recorded May 20, 2025
From: OJO LABS INC.; MOVOTO LLC
To: VCP CAPITAL MARKETS, LLC [AS ADMINISTRATIVE AGENT]
Reel/Frame 071349/0781 →
SECURITY INTEREST Recorded Dec 16, 2024
From: OJO LABS INC.; OJO LABS INTERNATIONAL, INC.; OJO HOLDINGS CORP.; WOLFNET TECHNOLOGIES, LLC; OJO HOME LLC; OL FINANCIAL LLC; MOVOTO LLC; MOVOTO, INC.; OJO HOME CALIFORNIA INC.; OJO HOME CONNECTICUT LLC; MOVOTO NORTH DAKOTA, LLC; MOVOTO CONNECTICUT, LLC
To: FIRST-CITIZENS BANK & TRUST COMPANY
Reel/Frame 069595/0664 →
Continuity (5)
Continuation In Part 15992851 · May 30, 2018
Continuation 15897885 · Feb 15, 2018
Continuation In Part 15826151 · Nov 29, 2017
Provisional Application 62956166 · Dec 31, 2019
Related Publication 20210192131A1 · Jun 24, 2021
References Cited (31)
US 7599911B2 · Manber et al. · 2009 [cited by applicant]
US 9292492B2 · Sarikaya et al. · 2016 [cited by applicant]
US 20090307159A1 · Pinckney et al. · 2009 [cited by applicant]
US 20120226846A1 · Paquet et al. · 2012 [cited by applicant]
US 20130226846A1 · Li et al. · 2013 [cited by applicant]
US 20140006012A1 · Zhou et al. · 2014 [cited by applicant]
US 20150088506A1 · Obuchi et al. · 2015 [cited by applicant]
US 20170161320A1 · Venkataraman et al. · 2017 [cited by applicant]
Notice of Allowance dated Jun. 6, 2018, filed in U.S. Appl. No. 15/826,151, pp. 1-3. [cited by applicant]
Notice of Allowance dated May 31, 2018, filed in U.S. Appl. No. 15/826,151, pp. 1-2. [cited by applicant]
Amendment after Notice of Allowance (Rule 312), filed in U.S. Appl. No. 15/826,151, pp. 1-16. [cited by applicant]
Notice of Allowance dated Apr. 23, 2018, filed in U.S. Appl. No. 15/826,151, pp. 1-4. [cited by applicant]
Response to Ex Parte Quayle Office Action dated Mar. 28, 2018, filed in U.S. Appl. No. 15/826,151, pp. 1-17. [cited by applicant]
Ex Parte Quayle Office Action dated Mar. 15, 2018, filed in U.S. Appl. No. 15/826,151, pp. 1-6. [cited by applicant]
Preliminary Amendment dated Dec. 14, 2017, filed in U.S. Appl. No. 15/826,151, pp. 1-15. [cited by applicant]
Notice of Allowance dated Apr. 20, 2018, filed in U.S. Appl. No. 15/897,885, pp. 1-6. [cited by applicant]
Notice of Allowance dated Dec. 7, 2020, filed in U.S. Appl. No. 15/992,851, pp. 1-4. [cited by applicant]
Response to Non-Final Office Action dated Nov. 15, 2020, filed in U.S. Appl. No. 15/992,851, pp. 1-9. [cited by applicant]
Non-Final Rejection dated May 14, 2020, filed in U.S. Appl. No. 15/992,851, pp. 1-4. [cited by applicant]
Preliminary Amendment dated May 30, 2018, filed in U.S. Appl. No. 15/992,851, pp. 1-3. [cited by applicant]
Response dated May 21, 2021 to Australian Examination Report in Australian Patent Application No. 2018374738, Hamilton, New Zealand, pp. 1-12. [cited by applicant]
Response dated Apr. 28, 2021 to Australian Examination Report in Australian Patent Application No. 2018374738, Hamilton, New Zealand, pp. 1-3. [cited by applicant]
Australian Patent Office Examination Report dated Jul. 17, 2020, filed in Australin Patent Appliation No. 2018374738, Australian Government IP, Australia, pp. 1-4. [cited by applicant]
Australian Patent Office Examination Report dated Jun. 17, 2020, filed in Australian Patent Application No. 2018374736, Australian Government IP, Australia, pp. 1-4. [cited by applicant]
Response dated Apr. 19, 2021 to the Written Opinion filed in European Patent Application No. 18812507, European Patent Office, London, pp. 1-28. [cited by applicant]
European Patent Office Written Opinion dated Jul. 7, 2020, mailed in European Patent Application No. 18807836, European Patent Office Munich, Germany, pp. 1-3. [cited by applicant]
European Patent Office International Search Report and Written Opinion dated Mar. 6, 2019 in European Patent Application No. PCT/US2018/060838, European Paten Office Rijswijk, Netherlands, pp. 1-8. [cited by applicant]
European Patent Office International Search Report and Written Opinion dated Jan. 23, 2019 in European Patent Application No. PCT/US2018/060188, European Patent Office, Rijswijk, Netherlands pp. 1-11. [cited by applicant]
Hashemi, Homa, et al, “Query Intent Detection using Convolutional Neural Networks.” University of Pittsburgh, Pittsburgh, Pennsylvania, 2016, presented at WSDM QRUM 2016 Workshop, pp. 1-5. [cited by applicant]
Hinton, Geoffrey, et al, “Distilling the Knowledge in a Neural Network,” Corr (Arxiv) (Mar. 9, 2015) vol. 1503.02531v1, Mountain View, California, pp. 1-9. [cited by applicant]
Sawant, Um, et al, “Learning Joint Query and Response Ranking,” WWW 2013, Rio De Janeiro, Brazil, pp. 1019-1109. (Per MPEP 609.04(a), Applicant points out that the year of publication is sufficiently earlier than the ef… [cited by applicant]