The present disclosure relates to combining structural and attribution based graph partitioning to electronic database records to create new associations between different types of data.
Electronic data may be represented in graphical form using a dendrogram, a tree structure having hierarchical clustering. Within a dendrogram, items which are closely related to another item may be separated by only a common parent branch, whereas items which are not closely related may be separated by many branches. The items, such as items in a store, may be arranged into a hierarchy in a dendrogram generally using one of two methods. Either the items are clustered based on how similar they are to one another (e.g., types of breakfast cereals may be considered clustered closely, but far away from types of milk) or based on how frequently they are found together (e.g., milk is commonly purchased with breakfast cereals, and therefore milk and breakfast cereal are clustered closely together). However, such disparate clustering systems can lead to duplication or inefficiencies in combining database records regarding one type of data, such transaction records, with database records regarding attribute information, such as information regarding the particular item.
To infuse the electronic database records of product attributes with the database records on point of sale information within the domain of graph theory when the association between the two different types of database records are rare, thus creating new data associations.
Additional features and advantages of the disclosure will be set forth in the description which follows, and in part will be obvious from the description, or can be learned by practice of the herein disclosed principles. The features and advantages of the disclosure can be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the disclosure will become more fully apparent from the following description and appended claims, or can be learned by the practice of the principles set forth herein.
An exemplary method configured as disclosed herein can include: receiving a plurality of transactions, each transaction identifying a point of sale and an item exchanged by the transaction; generating, via a processor, a structure graph of the plurality of transactions; receiving a request to partition the structure graph into sub-categories; retrieving, from a database, attributes of each respective structure vertex in the structure vertices; generating, via the processor, a structure-attribute graph using the structure graph and the attributes; generating a unified neighborhood matrix of the structure-attribute graph; and partitioning the structure graph based on the unified neighborhood matrix.
An exemplary system configured as disclosed herein can include: a processor; and a computer-readable storage medium having instructions stored which, when executed by the processor, cause the processor to perform operations including: receiving a plurality of transactions, each transaction identifying a point of sale and an item exchanged by the transaction; generating a structure graph of the plurality of transactions; receiving a request to partition the structure graph into sub-categories; retrieving, from a database, attributes of each respective structure vertex in the structure vertices; generating a structure-attribute graph using the structure graph and the attributes; generating a unified neighborhood matrix of the structure-attribute graph; and partitioning the structure graph based on the unified neighborhood matrix.
An exemplary non-transitory computer-readable storage medium configured as disclosed herein can include instructions which, when executed by a computing device, cause the computing device to perform operations including: receiving a plurality of transactions, each transaction identifying a point of sale and an item exchanged by the transaction; generating a structure graph of the plurality of transactions; receiving a request to partition the structure graph into sub-categories; retrieving, from a database, attributes of each respective structure vertex in the structure vertices; generating a structure-attribute graph using the structure graph and the attributes; generating a unified neighborhood matrix of the structure-attribute graph; and partitioning the structure graph based on the unified neighborhood matrix.
Various embodiments of the disclosure are described in detail below. While specific implementations are described, it should be understood that this is done for illustration purposes only. Other components and configurations may be used without parting from the spirit and scope of the disclosure.
Embodiments of the invention may provide a number of methods to build different types of data relationships according to different conditions related to different data associations, such as purchase frequency, availability of attributes of items, availability of linked-transactions, transaction data quality, different transaction situations (e.g., sales market), etc. In one example, database records regarding point of sale information can be combined with database records regarding attributes of items in the transaction, such as availability, loyalty, brand, color, size, material, durability, etc. The method is then applied to the different types of data, creating new associations among the data. These new associations may be stored in a database. A graphical presentation of the associations may be generated and may be displayed by a computing device. The graphical presentation may be a data structure.
The disclosed systems and methods combine structural graph partitioning and attribute-based graph partitioning such that a graph is partitioned based on both its structure and its attributes. With respect to transactions, a structure graph of the transaction can relate how the respective transactions relate to one another based on the entity performing the transaction (e.g., did the same person buy two or more distinct items within a predetermined time period), whereas an attribute graph of the transactions can identify common attributes of the transactions (e.g., were different types of an item purchased, such as different types of batteries or apples). By combining structural and attribute-based graph partitioning, sub-graphs can be defined out of the parent graph, where each of the sub-graphs can have similarly attributed and densely connected vertices.
First, a parent graph G is defined, where G has inputs V (a vertex set), E (an edge set), and W (a matrix of edge weights). This can be expressed as G=(V, E, W).
VA can be used to define the set of vertices V with attributes A, and WA can be the list of attribute weights. As an example of VA, consider the following table which illustrates the graph G 100 of
The next step is to overlay the parent graph G 200 with an attributed graph GA to create a new graph G* made of vertices V*, edges E*, and edge weights W*. In order to do this, new vertices corresponding to the respective attributes (or sub-attributes) are introduced in addition to the original vertices V of graph G. In other words,
V*=V U {attribute vertices}
From each attribute vertex, an edge is added to each original vertex V (henceforth referred to as a “structural vertex”). If a structural vertex pertains to the respective attribute, the edge linking the structural vertex to the attribute vertex is an “attribute edge.” Thus, each structural vertex would have exactly n attribute edges, and
E*=E U {attribute edges}
The edge weight of each attribute edge can be defined per the attribute weights defined in GA. Accordingly,
At this point, with a graph which is a combination of structural and attribute vertices, we determine the probabilities associated with each vertex, and specifically the inter-relatedness of the vertices. To do this we use the concept of a random walk, where the likelihood of progressing from vertex to vertex within graph G* is calculated based on the respective weights of the edges (both structural edges and attribute edges). This calculation uses a Transition Probability Matrix Pij, where Pij is the probability of going from vertex i to vertex j in a single step. Pij can be further defined as follows:
Next, a Unified Neighborhood Matrix Rij is defined, where Rij is the probability of going from vertex i to vertex j (not in a single step). In this step, the calculation uses the following terms:
Both c and L can be user defined, or can be defined based on machine learning through iterations, where the optimal values of c and L are determined based on the ultimate sizes of the clusters. With these values,
Rij=Σt=1L(c×(1−c)t×Pt)
The unified neighborhood matrix R is antonymous to a distance matrix. In order to create a distance matrix using Rij, one could invert the R matrix, such that distance matrix R*=(1−Rij) or R*=(1/Rij).
At this point, one can use clustering methods such as k-medoids, k-means, or other hierarchical clustering techniques on the structural vertices to obtain partitioned sub-graphs.
Consider the following example. Using randomly generated structural edge weights from a U(10, 50) distribution, and attribute weights from a U(80, 100) distribution, the following weights (corresponding to the eight structural edge weights illustrated in
w12=26.60983
w13=27.13616
w14=13.86644
w23=15.31082
w45=37.38426
w46=49.21425
w45=37.61334
w56=47.53184
In addition, the value of edge weights a is randomly defined as 81.42791 and edge weights b are defined as 87.21310.
Using these values, the Transition Probability Matrix P is obtained as follows:
The Uniform Neighborhood Matrix R can be calculated (using c=0.01 and L=200) as:
By applying k-means and k-medoids processes to the structural-vertex sub-matrix of R*, we obtain the optimum number of clusters as two, as illustrated in
Once the system has both the point of sale information as well as the item attributes, deploying the algorithm to specific stores, supply chains, or other locations can be readily performed. The novel features of this system—how to infuse the product attributes along with the point of sale information, within the domain of graph theory, so as to make the usual Graph Partitioning yield more accurate (improved) results—can provide results locally both locally and remotely. Furthermore, the clustering of items is just an example, it can also be extended successfully to other domains, where it is possible to obtain attribute information for each of the vertex, in a graph-like scenario.
In some configurations, the structure graph can further include: structure vertices associated with each respective type of item in the plurality of transactions; and structure edges between the structure vertices based on transactions having a common entity, wherein each structure edge in the structure edges extending between two structure vertices in the structure vertices, and wherein each structure edge in the structure edges has a structure weight. In addition, the structure-attribute graph can include: the structure vertices and the structure edges of the structure graph; attribute vertices associated with the attributes; and attribute edges between the attribute vertices and the structure vertices, wherein each attribute edge in the attribute edges has an attribute weight. Likewise, the structure weight can identify a substitutability of the two items linked by the structure edge.
In some configurations, the unified neighborhood matrix is based on a probability of moving, in a random walk through the structure-attribute graph, from one vertex to another vertex in a single step. Similarly, in some configurations, the unified neighborhood matrix is antonymous to a distance matrix of the structure-attribute graph.
In some configurations, partitioning the structure graph based on the unified neighborhood matrix generates a customer behavioral tree with items as leaf nodes.
The steps outlined herein are exemplary and can be implemented in any combination thereof, including combinations that exclude, add, or modify certain steps.
With reference to
The system bus 610 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. A basic input/output (BIOS) stored in ROM 640 or the like, may provide the basic routine that helps to transfer information between elements within the computing device 600, such as during start-up. The computing device 600 further includes storage devices 660 such as a hard disk drive, a magnetic disk drive, an optical disk drive, tape drive or the like. The storage device 660 can include software modules 662, 664, 666 for controlling the processor 620. Other hardware or software modules are contemplated. The storage device 660 is connected to the system bus 610 by a drive interface. The drives and the associated computer-readable storage media provide nonvolatile storage of computer-readable instructions, data structures, program modules and other data for the computing device 600. In one aspect, a hardware module that performs a particular function includes the software component stored in a tangible computer-readable storage medium in connection with the necessary hardware components, such as the processor 620, bus 610, display 670, and so forth, to carry out the function. In another aspect, the system can use a processor and computer-readable storage medium to store instructions which, when executed by the processor, cause the processor to perform a method or other specific actions. The basic components and appropriate variations are contemplated depending on the type of device, such as whether the device 600 is a small, handheld computing device, a desktop computer, or a computer server.
Although the exemplary embodiment described herein employs the hard disk 660, other types of computer-readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, digital versatile disks, cartridges, random access memories (RAMs) 650, and read-only memory (ROM) 640, may also be used in the exemplary operating environment. Tangible computer-readable storage media, computer-readable storage devices, or computer-readable memory devices, expressly exclude media such as transitory waves, energy, carrier signals, electromagnetic waves, and signals per se.
To enable user interaction with the computing device 600, an input device 690 represents any number of input mechanisms, such as a microphone for speech, a touch-sensitive screen for gesture or graphical input, keyboard, mouse, motion input, speech and so forth. An output device 670 can also be one or more of a number of output mechanisms known to those of skill in the art. In some instances, multimodal systems enable a user to provide multiple types of input to communicate with the computing device 600. The communications interface 680 generally governs and manages the user input and system output. There is no restriction on operating on any particular hardware arrangement and therefore the basic features here may easily be substituted for improved hardware or firmware arrangements as they are developed.
Use of language such as “at least one of X, Y, and Z” or “at least one or more of X, Y, or Z” are intended to convey a single item (just X, or just Y, or just Z) or multiple items (i.e., {X and Y}, {Y and Z}, or {X, Y, and Z}). “At least one of” is not intended to convey a requirement that each possible item must be present.
The present disclosure addresses organizing items, and more specifically to using a combination of structural and attribution based graph partitioning to organize items. The concepts and principles disclosed herein can be applied to any circumstance where items needs to be clustered, organized, and/or partitioned. The methods disclosed herein can be used so as to capture both the purchase history as well as the product attributes, in a way which improves how items are organized based on purchase history by clustering numerical and categorical features. Existing clustering methods, may not work as a good substitute because:
1. Huge amount of sparsity in the purchase data (which is a characteristic feature of General Merchandise categories). That is, being able to recognize connections between purchases and individual items may be rare.
2. Presence of both integer as well as categorical data types leads to a need of complicated clustering algorithm, which requires a unique distance formula. The usual techniques use one-hot encoding before finding distances between categorical features, which might not capture the interaction between two different categorical features.
The various embodiments described above are provided by way of illustration only and should not be construed to limit the scope of the disclosure. Various modifications and changes may be made to the principles described herein without following the example embodiments and applications illustrated and described herein, and without departing from the spirit and scope of the disclosure.
Number | Date | Country | Kind |
---|---|---|---|
201811029683 | Aug 2018 | IN | national |
The present application claims priority to Indian Provisional Patent Application 201811029683, filed Aug. 7, 2018, and U.S. Provisional Patent Application 62/779,095 filed Dec. 13, 2018, the contents of which are incorporated herein in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
7406436 | Reisman | Jul 2008 | B1 |
8001121 | Wang | Aug 2011 | B2 |
8412656 | Baboo et al. | Apr 2013 | B1 |
8874499 | Tiwari et al. | Oct 2014 | B2 |
9092516 | Ilyas | Jul 2015 | B2 |
9158847 | Majumdar | Oct 2015 | B1 |
9619831 | Kumar | Apr 2017 | B1 |
9830328 | Faith et al. | Nov 2017 | B2 |
10152557 | Banadaki | Dec 2018 | B2 |
10956521 | Yu | Mar 2021 | B1 |
20030050915 | Allemang | Mar 2003 | A1 |
20060190225 | Brand | Aug 2006 | A1 |
20070263544 | Yamanaka | Nov 2007 | A1 |
20090125543 | Patil et al. | May 2009 | A1 |
20100145773 | Desai et al. | Jun 2010 | A1 |
20110035347 | Shama | Feb 2011 | A1 |
20110301582 | Farrer | Dec 2011 | A1 |
20120191527 | Reichert et al. | Jul 2012 | A1 |
20130066827 | Maruhashi | Mar 2013 | A1 |
20130097138 | Barkol | Apr 2013 | A1 |
20130097320 | Ritter | Apr 2013 | A1 |
20140122506 | Jebara | May 2014 | A1 |
20140180790 | Boal | Jun 2014 | A1 |
20140200958 | Wagenblatt | Jul 2014 | A1 |
20140258196 | Dhurandhar et al. | Sep 2014 | A1 |
20140372413 | Banner | Dec 2014 | A1 |
20160012088 | Rossi | Jan 2016 | A1 |
20160063037 | Savkli | Mar 2016 | A1 |
20160162913 | Linden | Jun 2016 | A1 |
20160342751 | Alstad | Nov 2016 | A1 |
20160350834 | Wilson | Dec 2016 | A1 |
20160364794 | Chari | Dec 2016 | A1 |
20170053294 | Yang | Feb 2017 | A1 |
20170140262 | Wilson | May 2017 | A1 |
20170186057 | Metnick | Jun 2017 | A1 |
20170200172 | Wu | Jul 2017 | A1 |
20170221240 | Stetson | Aug 2017 | A1 |
20170255708 | Cho | Sep 2017 | A1 |
20170262521 | Cho et al. | Sep 2017 | A1 |
20170336219 | Di Lorenzo | Nov 2017 | A1 |
20180052885 | Gaskill | Feb 2018 | A1 |
20180075035 | Carlyle | Mar 2018 | A1 |
20180137155 | Majumdar | May 2018 | A1 |
20180218372 | Prendki | Aug 2018 | A1 |
20190236186 | Kritika | Aug 2019 | A1 |
20190370031 | Xiao | Dec 2019 | A1 |
Entry |
---|
International Search Report and Written Opinion dated Oct. 22, 2019 in corresponding International Application No. PCT/US2019/045524, 14 pages. |
Kim, M. et al., “SBV-Cut: Vertex-Cut based Graph Partitioning using Structural Balance Vertices”, Data Knowledge Engineering, vol. 72, Feb. 2012, 32 pages. |
Omker Mahalanobish, “Structure & Attribute Based Graph Partitioning,” Walmart Assortment Analytics, pp. 1-11. |
Number | Date | Country | |
---|---|---|---|
20200050889 A1 | Feb 2020 | US |
Number | Date | Country | |
---|---|---|---|
62779095 | Dec 2018 | US |