IP Library Granted Patent US 10,970,290
Granted Patent B1
US 10,970,290 · App. 15/992,851 · Granted Apr 6, 2021

Machine learning of response selection to structured data input

Inventor: Joshua Howard Levy (Austin, TX)
Assignee: OJO LABS, INC.
G06F16/24578G06F17/11G06F40/186G06F40/20G06N20/00
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 10,970,290
App. No.
15/992,851
Granted
Apr 6, 2021
Kind
B1
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. In at least one embodiment, the response selection module improves response selection to the structure data input by initially filtering a library of templates to identify candidate templates that best respond to the input. In at least one embodiment, the response selection module ranks the identified candidate templates to provide the response to the device. The response selection module learns by receiving feedback, such as a linked recipient action result signal.

Claims (671)

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 filter parameters for conversion into response template filter criteria;

converting the filter parameters into the response template filter criteria;

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

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

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

selecting a highest ranked candidate 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 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 filter 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 that determines a conversion rate of each of the candidate response templates that is based on conversions and impressions by a user of the machine learning processing system, a group with similar attributes as the user, and all users of the machine learning processing system.

8. The method of claim 7 wherein the function of the conversion rate incorporates distributions of conversion rates and ranking of the candidate response template is based on a random sampling of the conversion rate values in the distribution.

9. The method of claim 8 wherein the distributions include beta distributions parameterized by success values associated with candidate response templates and attempt values associated with candidate response templates.

10. 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.

11. The method of claim 10 further comprising:

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

Conversion

Rate

=

Success

Count

Attempt

Count

Success

Count

=

a

(

S

C

U

s

e

r

+

S

C

G

r

o

u

p

+

S

C

A

l

l

)

Attempt

Count

=

a

(

I

U

s

e

r

+

I

G

r

o

u

p

+

I

A

l

l

)

SC

U

s

e

r

=

w

a

w

U

conversions

a

,

U

(

)

SC

G

r

o

u

p

=

w

a

w

G

k

x

conversions

a

,

k

(

)

S

C

A

l

l

=

w

a

w

A

conversions

a

,

A

(

)

Attempt

Count

=

a

(

I

U

s

e

r

+

I

G

r

o

u

p

+

I

A

l

l

)

I

U

s

e

r

=

w

a

w

U

impressions

a

,

U

(

)

I

Group

=

w

a

w

G

k

x

impressions

a

,

k

(

)

I

A

l

l

=

w

a

w

A

impressions

a

,

A

(

)

[

1

]

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.

12. The method of claim 1 wherein deriving the response further comprises:

populating any dynamic fields in the selected, highest ranked, candidate response template with content; and

converting the selected, highest ranked, candidate response template with populated content into the response.

13. 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 filter parameters for conversion into response template filter criteria;

convert the filter parameters into the response template filter criteria;

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

receive a selection of the candidate response templates that meet the response template filter 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 the response to a recipient device; and

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

14. The apparatus of claim 13 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.

15. The apparatus of claim 13 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.

16. The apparatus of claim 13 wherein the filter 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.

17. The apparatus of claim 13 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.

18. The apparatus of claim 13 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.

19. The apparatus of claim 13 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.

20. The apparatus of claim 19 further comprising:

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

Conversion

Rate

=

Success

Count

Attempt

Count

Success

Count

=

a

(

S

C

U

s

e

r

+

S

C

G

r

o

u

p

+

S

C

A

l

l

)

Attempt

Count

=

a

(

I

U

s

e

r

+

I

G

r

o

u

p

+

I

A

l

l

)

SC

U

s

e

r

=

w

a

w

U

conversions

a

,

U

(

)

SC

G

r

o

u

p

=

w

a

w

G

k

x

conversions

a

,

k

(

)

S

C

A

l

l

=

w

a

w

A

conversions

a

,

A

(

)

Attempt

Count

=

a

(

I

U

s

e

r

+

I

G

r

o

u

p

+

I

A

l

l

)

I

U

s

e

r

=

w

a

w

U

impressions

a

,

U

(

)

I

Group

=

w

a

w

G

k

x

impressions

a

,

k

(

)

I

A

l

l

=

w

a

w

A

impressions

a

,

A

(

)

[

1

]

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.

21. The apparatus of claim 13 wherein the ranking criteria comprises a function that determines a conversion rate of each of the candidate response templates that is based on conversions and impressions by a user of the machine learning processing system, a group with similar attributes as the user, and all users of the machine learning processing system.

22. The apparatus of claim 21 wherein the function of the conversion rate incorporates distributions of conversion rates and ranking of the candidate response template is based on a random sampling of the conversion rate values in the distribution.

23. The apparatus of claim 22 wherein the distributions include beta distributions parameterized by success values associated with candidate response templates and attempt values associated with candidate response templates.

24. The apparatus of claim 13 wherein to derive the response further comprises to:

populate any dynamic fields in the selected, highest ranked, candidate response template with content; and

convert the selected, highest ranked, candidate response template with populated content into the response.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENT RIGHTS [RECORDED AT REEL 057035, FRAME: 0416] Recorded May 21, 2025
From: VCP CAPITAL MARKETS, LLC
To: OJO LABS, INC.; MOVOTO LLC
Reel/Frame 071352/0387 →
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 →
SECURITY INTEREST Recorded Aug 10, 2021
From: OJO LABS INC.
To: SILICON VALLEY BANK
Reel/Frame 057133/0357 →
PATENT SECURITY AGREEMENT Recorded Jul 29, 2021
From: OJO LABS INC.; MOVOTO LLC
To: VCP CAPITAL MARKETS, LLC
Reel/Frame 057035/0416 →
Continuity (2)
Continuation 15897885 · Feb 15, 2018
Continuation In Part 15826151 · Nov 29, 2017