IP Library Granted Patent US 12688505
Granted Patent B2
US 12688505 · App. 17/996,937 · Granted Jul 21, 2026

Machine learning system

Inventors: Piotr Skalski (Cambridge, GB); Kenny Wong (Cambridge, GB); David Sutton (Cambridge, GB); Jason Wong (Cambridge, GB)
Assignee: Featurespace Limited
G06Q20/4016G06N3/04G06N3/08
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 12688505
App. No.
17/996,937
Granted
Jul 21, 2026
Kind
B2
Abstract

A machine learning system for processing data corresponding to an incoming transaction. The machine learning system comprises a categorical history module which includes a memory configured to store state data for a plurality of categories indexed by a respective category identifier, wherein the state data stored in the memory for each category identifier corresponds to a previous transaction associated with the entity and the respective category. A decay logic stage is configured to modify state data stored in the memory based on a time difference between a time of the incoming transaction and a time of a previous transaction. When the memory contains state data for the entity and category identifier pair associated with the incoming transaction, a decaying function dependent on the time difference is applied to the stored state data to generate a decayed version. The state data output from the decay logic stage is updated using an input tensor generated from the data corresponding to the incoming transaction to generate updated state data.

Claims (69)

1 . A machine learning system for processing data corresponding to an incoming transaction associated with an entity, the machine learning system comprising:

a time-decay cell module configured to process at least some of said data corresponding to the incoming transaction, the time-decay cell module comprising:

a first memory being configured to store first state data corresponding to an immediately preceding transaction;

a first decay logic stage configured to modify the first state data stored in the first memory based on a time difference between a time of the incoming transaction and a time of the immediately preceding transaction; and

a first neural network stage configured to determine next first state data using previous first state data modified by the first decay logic stage and a first input tensor derived from the incoming transaction, the first neural network stage being configured to store the next first state data in the first memory for a next transaction,

wherein the time-decay cell module is configured to map the modified first state data to generate output data;

the machine learning system further comprising:

a categorical history module configured to process at least some of said data corresponding to the incoming transaction, the categorical history module comprising:

a second memory configured to store second state data for a plurality of categories indexed by a respective category identifier, wherein the second state data stored in the second memory for each category identifier corresponds to a previous transaction associated with the entity and the respective category;

a second decay logic stage configured to modify second state data stored in the second memory based on a time difference between a time of the incoming transaction and a time of a previous transaction, said second decay logic stage being configured to:

when the second memory contains second state data for the entity and category identifier pair associated with the incoming transaction, retrieve said second state data and apply a decaying function to the second state data to generate a decayed version of the second state data, wherein the decaying function is dependent on the time difference, and output the decayed version of the second state data; and

an update logic stage configured to:

 update the decayed version of the second state data output from the second decay logic stage using a second input tensor generated from the data corresponding to the incoming transaction to generate updated second state data; to

 store said updated second state data in the second memory for the entity and category identifier pair associated with the incoming transaction; and

 output an output tensor comprising the updated second state data;

wherein the machine learning system is configured to map the output data from the time-decay cell module and the output tensor from the categorical history module to a scalar value representative of a likelihood that the incoming transaction presents an anomaly within a sequence of actions, and

wherein the scalar value is used to determine whether to approve or decline the incoming transaction.

2 . The machine learning system as claimed in claim 1 , wherein the second decay logic stage is further configured to:

when the second memory does not contain state data for the entity and category identifier pair associated with the incoming transaction, generate new second state data and output said new second state data.

3 . The machine learning system as claimed in claim 1 , further comprising a second neural network stage configured to apply a second neural network layer having a respective plurality of learned weights to the data corresponding to the incoming transaction to generate the second input tensor, and to provide said second input tensor to the update logic stage of the categorical history module.

4 . The machine learning system as claimed in claim 1 , further comprising a third neural network stage configured to apply a third neural network layer having a respective plurality of learned weights to the output tensor generated by the update logic stage of the categorical history module to generate the scalar value representative of the likelihood that the incoming transaction presents an anomaly within a sequence of actions.

5 . The machine learning system as claimed in claim 1 , wherein the update logic stage of the categorical history module comprises:

a fourth neural network stage configured to generate the updated second state data using the decayed second state data and the second input tensor derived from the incoming transaction;

optionally wherein the fourth neural network stage comprises a recurrent neural network.

6 . The machine learning system as claimed in claim 1 , wherein the second decay logic stage is configured to modify the second state data stored in the second memory for the entity associated with the incoming transaction based on a time difference between the time of the incoming transaction and a time of a most recent transaction for that entity.

7 . The machine learning system as claimed in claim 1 , wherein the second decay logic stage is configured to modify all second state data stored in the second memory for each entity based on a time difference between the time of the incoming transaction and a time of an immediately preceding transaction.

8 . The machine learning system as claimed in claim 1 , wherein the second decay logic stage is configured to modify only the second state data stored in the second memory for the entity and category identifier pair associated with the incoming transaction, wherein the second decay logic stage modifies said second state data based on a time difference between the time of the incoming transaction and a time of the previous transaction for the entity and category identifier pair associated with the incoming transaction.

9 . The machine learning system as claimed in claim 1 , wherein the second memory is configured as a stack, such that retrieved first state data is removed from the stack, and such that updated second state data is stored at the top of the stack.

10 . The machine learning system as claimed in claim 1 , wherein the categorical history module is configured such that, when the second memory is full, second state data stored against at least one category identifier is erased.

11 . The machine learning system as claimed in claim 10 , wherein the categorical history module is configured such that when the second memory is full, second state data stored against a least recently seen category identifier is erased.

12 . The machine learning system as claimed in claim 1 , wherein the second state data stored for each entity and category identifier pair comprises a tensor of values.

13 . The machine learning system as claimed in claim 12 , wherein the decaying function of the categorical history module applies a respective decay multiplier to each of the values.

14 . The machine learning system as claimed in claim 13 , wherein at least some of the decay multipliers are learned.

15 . The machine learning system as claimed in claim 1 , wherein

the first neural network stage comprises a recurrent neural network.

16 . The machine learning system as claimed in claim 1 , wherein the second memory is configured to store second state data for a plurality of entities, wherein for each entity there is stored a plurality of categories indexed by a respective category identifier, wherein the second state data stored in the second memory for each category identifier corresponds to a previous transaction associated with the respective entity and the respective category.

17 . The machine learning system as claimed in claim 1 , wherein each of the plurality of categories comprises one or more of: a secondary entity; a secondary entity type;

a transaction value; a transaction value band; a day of the week; a time of the day; an hour of the day; and a time window.

18 . The machine learning system as claimed in claim 17 , wherein one or more of the plurality of categories comprises a composite of one or more of: a secondary entity; a secondary entity type; a transaction value; a transaction value band; a day of the week; a time of the day; an hour of the day; and a time window.

19 . A method of processing data associated with a proposed transaction, the method comprising:

receiving an incoming event from a client transaction processing system, the incoming event being associated with a request for an approval decision for the proposed transaction;

parsing the incoming event to extract data for the proposed transaction, including determining a time difference between the proposed transaction and a prior transaction;

applying the machine learning system of claim 1 to output the scalar value representative of a likelihood that the proposed transaction presents an anomaly within a sequence of actions based on the extracted data and the time difference, said applying comprising accessing the second memory to retrieve at least the second state data for the entity and the category identifier associated with the transaction;

determining a binary output based on the scalar value output by the machine learning system, the binary output representing whether the proposed transaction is approved or declined; and

returning the binary output to the client transaction processing system.

20 . A method of processing data associated with a proposed transaction associated with an entity, the method comprising:

processing, using a time-decay cell module, at least some of said data corresponding to the incoming transaction, the processing comprising:

storing, in a first memory of the time-decay cell module, first state data corresponding to an immediately preceding transaction;

modifying, using a first decay logic stage of the time-decay cell module, the first state data stored in the first memory based on a time difference between a time of the incoming transaction and a time of the immediately preceding transaction;

determining, using a first neural network stage of the time-decay cell module, next first state data using previous first state data modified by the first decay logic stage and a first input tensor derived from the incoming transaction;

storing, using the first neural network stage of the time-decay cell module, the next first state data in the first memory for a next transaction; and

mapping the modified first state data to generate output data;

processing, using a categorical history module, at least some of said data corresponding to the incoming transaction, the processing comprising:

storing, in a second memory of the categorical history module, second state data for a plurality of categories indexed by a respective category identifier, wherein the second state data stored in the second memory for each category identifier corresponds to a previous transaction associated with the entity and the respective category;

modifying, using a second decay logic stage of the categorical history module, second state data stored in the second memory based on a time difference between a time of the incoming transaction and a time of a previous transaction, wherein the step of modifying the second state data comprises:

when the second memory contains second state data for the entity and category identifier pair associated with the incoming transaction, retrieving said second state data and applying a decaying function to the second state data to generate a decayed version of the second state data, wherein the decaying function is dependent on the time difference, and outputting the decayed version of the second state data;

updating, using an update logic stage of the categorical history module, the second state data output using an second input tensor generated from the data corresponding to the incoming transaction to generate updated second state data;

storing, using the update logic stage of the categorical history module, said updated second state data in the second memory for the entity and category identifier pair associated with the incoming transaction; and

outputting, using the update logic stage of the categorical history module, an output tensor comprising the updated second state data;

mapping the output data from the time-decay cell module and the output tensor from the categorical history module to a scalar value representative of a likelihood that the incoming transaction presents an anomaly within a sequence of actions; and

using the scalar value to determine whether to approve or decline the incoming transaction.

21 . The method as claimed in claim 20 , further comprising:

applying a second neural network layer having a respective plurality of learned weights to the data corresponding to the incoming transaction to generate the second input tensor.

22 . The method as claimed in claim 20 , further comprising:

applying a second neural network layer having a respective plurality of learned weights to the output tensor to generate the scalar value representative of the likelihood that the incoming transaction presents an anomaly within a sequence of actions.

23 . The method as claimed in claim 20 , comprising modifying the second state data stored in the second memory for the entity associated with the incoming transaction based on a time difference between the time of the incoming transaction and a time of a most recent transaction for that entity.

24 . The method as claimed in claim 20 , comprising modifying all second state data stored in the second memory for each entity based on a time difference between the time of the incoming transaction and a time of an immediately preceding transaction.

25 . The method as claimed in claim 20 , comprising modifying only the second state data stored in the second memory for the entity and category identifier pair associated with the incoming transaction, wherein the decay logic stage modifies said second state data based on a time difference between the time of the incoming transaction and a time of the previous transaction for the entity and category identifier pair associated with the incoming transaction.

26 . A non-transitory computer-readable medium comprising instructions that, when executed by a processor, cause the processor to carry out the method of claim 20 .