# US 12,008,589 B2 · Discovering causal relationships in mixed datasets

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,008,589 B2
- Document ID: US12008589B2
- Status: Granted
- Kind: B2
- Application number: 18/362,833
- Filed: 2023-07-31
- Published: 2023-11-30
- Granted: 2024-06-11
- Earliest claimed: 2020-11-13
- Assignees: Adobe Inc.
- Applicants: Adobe Inc.
- Inventors: Ayush Chauhan; Vineet Malik; Sourav Suman; Siddharth Jain; Gaurav Sinha; Aayush Makharia
- Web page: https://patentgrep.com/patent/US12008589B2

## CPC

- G06Q 30/0201: Market modelling; Market analysis; Collecting market data
- G06F 16/26: Visual data mining; Browsing structured data
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- G06N 5/01: Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
- G06N 7/01: Probabilistic graphical models, e.g. probabilistic networks
- G06N 20/00: Machine learning
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Introduced here are approaches to determining causal relationships in mixed datasets containing data related to continuous variables and discrete variables. To accomplish this, a marketing insight and intelligence platform may employ a multi-phase approach in which dependency is established before the data related to continuous variables is discretized. Such an approach ensures that information regarding dependence is not lost through discretization.

## Claims

### Claim 1

A method comprising:
accessing a mixed dataset that contains data related to multiple variables, the multiple variables including at least one continuous variable and at least one discrete variable;
producing, prior to discretization, an undirected graph that indicates dependency among the multiple variables of the mixed dataset;
discretizing the data related to each continuous variable in a decreasing ratio based on a number of discrete variables neighboring each continuous variable in the undirected graph; and
identifying a directed graph that reflects causal relationships among the multiple variables by performing a greedy search of multiple candidate directed graphs using a scoring function that evaluates how well each candidate directed graph fits the discretized data.

### Claim 2 (depends on 1)

The method of claim 1, further comprising displaying of a visual representation of the directed graph on an interface so as to visually convey the causal relationships among the multiple variables.

### Claim 3 (depends on 1)

The method of claim 1, wherein performing the greedy search of multiple candidate directed graphs comprises:
applying a Bayesian algorithm that heuristically searches the multiple candidate directed graphs and returns whichever candidate directed graph has a highest score.

### Claim 4 (depends on 1)

The method of claim 1, wherein discretizing the data comprises:
executing a Fast Conditional Independence Test (FCIT) between the multiple variables so that for each pair of variables, a metric indicative of dependency is determined;
identifying, based on the metrics indicative of dependency, each pair of variables that is not conditionally independent of one another; and
generating the undirected graph by adding, to a disconnected graph containing multiple nodes that are representative of the multiple variables, an edge between each pair of nodes that corresponds to an identified pair of variables.

### Claim 5 (depends on 4)

The method of claim 4, further comprising excluding edges absent in the undirected graph from the directed graph.

### Claim 6 (depends on 1)

The method of claim 1, further comprising performing, based on the directed graph, analytics on the causal relationships among the multiple variables.

### Claim 7

A non-transitory computer-readable medium with instructions stored thereon that, when executed by a processor, cause the processor to perform operations comprising:
accessing a mixed dataset that contains data related to multiple variables, the multiple variables including at least one continuous variable and at least one discrete variable;
producing, prior to discretization, an undirected graph that includes multiple nodes with edges connected therebetween;
discretizing the data related to each continuous variable in the undirected graph to produce a discretized dataset from the mixed dataset; and
generating a directed graph that reflects causal relationships among the multiple variables by:
determining, for each of multiple candidate directed graphs, a metric that indicates how well a corresponding candidate directed graph fits the discretized dataset,
identifying edges that are absent in the undirected graph, and
selecting the directed graph from amongst the multiple candidate directed graphs based on (i) the multiple metrics and (ii) the identified edges.

### Claim 8 (depends on 7)

The non-transitory computer-readable medium of claim 7, wherein the edges that are absent in the undirected graph are forbidden in the directed graph.

### Claim 9 (depends on 7)

The non-transitory computer-readable medium of claim 7, wherein producing the undirected graph that includes multiple nodes with edges connected therebetween comprises:
acquiring a disconnected graph that contains the multiple nodes;
determining statistical dependency between the multiple variables;
identifying, based on the statistical dependency, pairs of variables that are not conditionally independent of one another; and
generating the undirected graph by adding, to the disconnected graph, an edge between each pair of nodes that corresponds to an identified pair of variables.

### Claim 10 (depends on 9)

The non-transitory computer-readable medium of claim 9, wherein determining statistical dependency between the multiple variables involves performing a fast conditional independence test (FCIT) to determine conditional independence between each pair of variables.

### Claim 11 (depends on 8)

The non-transitory computer-readable medium of claim 8, wherein discretizing the data related to each continuous variable comprises;
for each node in the undirected graph that corresponds to a continuous variable,
determining one or more candidate policies for discretization,
selecting a policy from amongst the one or more candidate policies, and
discretizing the data related to the continuous variable in accordance with the selected policy.

### Claim 12 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein determining one or more candidate policies for discretization comprises:
identifying neighboring nodes, if any, that correspond to discrete variables; and
using the discrete variables as target variables in a supervised discretization algorithm to discover candidate label sets for discretization;
wherein each candidate label set is representative of a candidate policy.

### Claim 13

A system comprising:
at least one memory device; and
at least one processor coupled to the at least one memory device that causes the system to perform operations comprising:
producing an undirected graph that indicates dependency among variables in a mixed dataset by:
computing dependency between the variables; and
generating, prior to discretization, the undirected graph by adding, to a disconnected graph containing nodes that are representative of the variables, edges between nodes corresponding to variables that are not independent of one another;
discretizing continuous data in a decreasing ratio based on a number of discrete variables neighboring each continuous variable in the undirected graph in the mixed dataset to produce a discretized dataset; and
determining, based on the discretized dataset and the undirected graph, a directed graph that reflects causal relationships among the variables.

### Claim 14 (depends on 13)

The system of claim 13, wherein:
the undirected graph is a skeletal frame of nodes that are connected to one another; and each node is representative of a continuous variable or a discrete variable.

### Claim 15 (depends on 14)

The system of claim 14, further comprising:
for each node in the undirected graph that corresponds to a continuous variable,
determining a candidate policy for discretization by:
identifying a neighboring node that corresponds to a discrete variable, and
deriving the candidate policy based on analysis of data in the mixed dataset that is associated with the discrete variable.

### Claim 16 (depends on 15)

The system of claim 15, wherein the candidate policy is derived based on one or more labels used to categorize the data.

### Claim 17 (depends on 15)

The system of claim 15, wherein a given node in the undirected graph that corresponds to a continuous variable has multiple neighboring nodes that correspond to discrete variables such that multiple candidate policies for discretization are determined.

### Claim 18 (depends on 17)

The system of claim 17, further comprising:
Identifying an appropriate policy from amongst the multiple candidate policies by:
determining new sets of neighboring nodes of the given node with the data as discretized in accordance with each candidate policy; and
selecting whichever candidate policy resulted in an output closest to an original set of neighboring nodes.

### Claim 19 (depends on 13)

The system of claim 13, wherein identifying the directed graph that reflects causal relationships among the variables is performed by a probabilistic machine learning algorithm that considers forbidden edges as input, the forbidden edges being those edges that are absent in the undirected graph.

### Claim 20 (depends on 13)

The system of claim 13, wherein the directed graph is representative of a causal Bayesian network, and wherein identifying the directed graph that reflects causal relationships among the variables comprises greedily searching over a series of causal Bayesian networks and outputting a highest scoring Bayesian network as the directed graph.
