Systems and methods for aggregating and guiding multi-user collaborative data analysis
By using a grammatical variational autoencoder to encode charts into vector representations and visualize them on a two-dimensional map, the difficult problem of chart aggregation and recommendation in multi-user collaborative data analysis is solved, and the efficiency and accuracy of data exploration are improved.
Patent Information
- Application Number
- CN202010235036.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-06-27
- Filing Date
- 2020-03-30
- Publication Date
- 2025-09-23
- Estimated Expiration
- 2040-03-30
AI Technical Summary
In the exploratory visual analysis process of multi-user collaboration on large-scale and complex datasets, it is difficult to effectively summarize the analysis results and indicate the direction of data exploration. Existing technologies lack effective graphical user interface tools to summarize and interactively guide chart recommendations.
It uses deep learning techniques, specifically Grammar Variational Autoencoder (GVAE), to encode graphs into compact vector representations and perform semantic visualization on a two-dimensional map, providing a summary of graph clustering, trends, and gaps, and guiding analysts' data exploration through interactive recommended views.
It achieves efficient aggregation and recommendation of multiple charts, helps analysts identify clusters and trends, reduces the workload of manual exploration, and improves the efficiency and accuracy of data analysis.
Smart Images

Figure CN112148784B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to machine learning, and more particularly, to systems and methods for utilizing machine learning to generate appropriate data charts and direct interactive data exploration through a graphical user interface (GUI). Background Art
[0002] Exploratory visual analysis (EVA) is an iterative process in which analysts use visualization techniques, such as drawing charts showing different parts of the data, to identify interesting findings and make data-driven decisions. EVA can be useful when analysts are unfamiliar with the data or have vague assumptions and poorly defined tasks, making it difficult to develop fully automated methods and requiring domain knowledge for data exploration. This EVA approach is widely promoted and supported by many commercial tools in the field.
[0003] Unfortunately, the EVA process becomes challenging when datasets become larger and more complex (e.g., involving many records and attributes). Because there are so many options for encoding attributes, partial data, and charts for visual analysis, the exploration space becomes prohibitively large. One related technical solution involves having multiple analysts perform EVA in a collaborative setting. For example, each analyst can independently examine different viewpoints of the data, then at some point combine or hand over their results (e.g., data charts), and continue to iteratively execute this process. Summary of the Invention
[0004] Exploratory visual analysis (EVA) can leverage user domain knowledge by integrating it into the data analysis process. This process can become challenging when datasets become larger and more complex, requiring multi-user collaboration. However, effectively summarizing these analyses and providing recommendations and directions for further data exploration remains a challenge in related technology implementations.
[0005] When providing an interface for an EVA implementation, there are several issues that need to be considered. For example, an interface needs to be provided that allows information to be learned from charts created by multiple analysts and facilitates efficient review of potential discoveries. A good understanding of previous work can be very important for building knowledge and collaboration between analysts. In another example, an interface needs to be convenient so that the learned information can be used to determine future directions for data exploration. Visual exploration involves searching for an unknown target in an unknown location in the data space using multiple visual encoding options for a chart. Therefore, providing useful guidance in this manual process can be an important GUI feature for the analyst to reach his or her goal with minimal effort.
[0006] To address the above problems, the exemplary implementation described herein utilizes a meta-visualization approach and relates to a GUI tool that provides a visual summary of data charts generated in a multi-user exploratory visual analysis, as well as interactive guidance for promising future data exploration. The exemplary implementation of the GUI tool described herein utilizes deep learning techniques (e.g., grammatical variational autoencoders (GVAE)) to learn a compact vector representation of a chart and visualizes it on a two-dimensional canvas (e.g., a two-dimensional map) using semantics and similarity. Through this summary, analysts are able to identify clusters, trends, and pores in the charts within the current space of visual exploration. In addition, the exemplary implementation of the GUI tool allows interactive inspection of the space by providing chart recommendations based on selected local regions and by using a trained autoencoder for chart generation. Therefore, analysts can use this information to guide their analysis by refining the recommended charts.
[0007] Aspects of the present disclosure may include a method for providing a graphical user interface (GUI) to generate a recommended chart, the method involving the following steps: providing a first view on the GUI, the first view being configured to provide representations of multiple charts on a map, the representations of the multiple charts being distributed within the map of the first view based on similarities derived from encoding vectorization of the multiple charts into multiple vectors; when an area within the map is selected on the first view, generating a recommended chart derived from similarities between the selected area and one or more charts of the multiple charts within or near the selected area, displaying the chart recommendation on a second view of the GUI; and providing another representation of the chart recommendation within the area on the map on the first view based on the similarities between the chart recommendation and the multiple charts.
[0008] Aspects of the present disclosure may include a non-transitory computer-readable medium storing instructions for providing a graphical user interface (GUI) to generate recommended charts, the instructions involving: providing a first view on the GUI, the first view being configured to provide representations of multiple charts on a map, the representations of the multiple charts being distributed within the map on the first view based on similarities derived from encoding vectorization of the multiple charts into multiple vectors; when an area within the map is selected on the first view, generating a recommended chart derived from similarities between the selected area and one or more of the multiple charts within or near the selected area, displaying the chart recommendation on a second view of the GUI; and providing another representation of the chart recommendation within the area on the map on the first view based on the similarities between the chart recommendation and the multiple charts.
[0009] Aspects of the present disclosure may include a system for providing a graphical user interface (GUI) to generate recommended charts, the system involving: a device for providing a first view on the GUI, the first view being configured to provide representations of multiple charts on a map, the representations of the multiple charts being distributed within the map on the first view based on similarities derived from encoding vectorization of the multiple charts into multiple vectors; a device for generating a recommended chart derived from similarities between the selected area and one or more of the multiple charts within or near the selected area when an area within the map is selected on the first view, a device for displaying chart recommendations on a second view of the GUI; and a device for providing another representation of the chart recommendation within the area on the map on the first view based on the similarities between the chart recommendation and the multiple charts.
[0010] Aspects of the present disclosure may include a device configured to provide a graphical user interface (GUI) to generate recommended charts, the device involving a processor configured to provide a first view on the GUI, the first view configured to provide representations of multiple charts on a map, the representations of the multiple charts being distributed within the map on the first view based on similarities derived from encoding vectorization of the multiple charts into multiple vectors; when an area within the map is selected on the first view, generating a recommended chart derived from similarities between the selected area and one or more charts of the multiple charts within or near the selected area, displaying the chart recommendation on a second view of the GUI; and providing another representation of the chart recommendation within the area on the map on the first view based on the similarities between the chart recommendation and the multiple charts. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Figure 1 An exemplary system diagram involving the front-end and back-end of the proposed GUI tool according to an exemplary implementation is illustrated.
[0012] FIG. 2( a ) illustrates an exemplary specification for data visualization according to an exemplary implementation.
[0013] FIG2( b ) illustrates an example of encoding and decoding by utilizing GVAE according to an exemplary implementation.
[0014] Figure 3 An example of a network structure according to an exemplary implementation is illustrated.
[0015] Figure 4 An example portion of a screenshot of a GUI tool according to an exemplary implementation is illustrated.
[0016] Figure 5(a) to Figure 5(c) An exemplary view of a GUI tool according to an exemplary implementation is illustrated.
[0017] FIG5(d) illustrates an exemplary flow chart for generating chart recommendations via a GUI tool according to an exemplary implementation.
[0018] Figure 6 An exemplary computing environment is illustrated with exemplary computer equipment suitable for use in some exemplary implementations. DETAILED DESCRIPTION
[0019] The following detailed description further provides details of the drawings and exemplary implementations of the present application. For the sake of clarity, the figure numbers and descriptions of redundant elements between the drawings have been omitted. The terms used throughout the specification are provided as examples only and are not intended to be limiting. For example, the use of the term "automatic" can refer to a fully automatic implementation or a semi-automatic implementation, which involves user or administrator control of specific aspects of the implementation, depending on the desired implementation of a person of ordinary skill in the art practicing the implementation of the present application. The selection can be made by the user through a user interface or other input means, or can be implemented by a desired algorithm. The exemplary implementations described herein can be used alone or in combination, and the functionality of the exemplary implementations can be implemented by any means depending on the desired implementation.
[0020] Figure 1 An exemplary system diagram illustrating the front-end and back-end of the proposed GUI tool according to an exemplary implementation is illustrated. The exemplary implementation involves a GUI tool that can be in the form of a web-based application with a back-end analysis engine and a front-end visual interface. Figure 1 The architecture of the GUI tool is shown in .
[0021] The backend of the GUI tool may involve a data storage and analysis module 101, a graph encoder 102, and a graph decoder 103. The data storage and analysis module 101 records the graph and its related information and handles basic computational tasks. The graph encoder 102 is configured to convert the data graph into a numerical vector; and the graph decoder is configured to perform the reverse operation. The encoder and decoder are trained using a deep learning model called a grammatical variational autoencoder (GVAE) 100.
[0022] The front end may involve a GUI with three interactive coordination views: 1) an inspection view 110 that allows viewing, editing, and creating a selected diagram; 2) a summary view 120 that presents all diagrams generated during the collaborative visual exploration analysis; and 3) a recommendation view 130 that shows suggested diagrams.
[0023] Figure 1The arrows in represent the general data flow. More specifically, the input chart is processed in the data storage and analysis module 101 and then fed into the chart encoder 102 to generate a vector representation, which is also used to create a visual summary of the chart on a 2D semantic space. From the summary view, the user can get the entire picture of the current analysis, identify promising directions, and leverage the chart recommendations displayed in the recommendation view 130. The suggested charts are provided by the user via interactive guidance, for example, by selecting an area of interest in the 2D space. Based on the user input and the existing charts, the chart decoder 103 automatically generates charts for forming recommendations. In addition, all charts, including the original chart and the recommended charts, can be inspected with the inspection view and further tuned to create new charts that are recorded in the back end.
[0024] As described herein, the exemplary implementation employs a grammatical variational autoencoder (GVAE) 100 to train an encoder 102 and decoder 103 for a data graph. The goal is to use unsupervised learning methods to obtain a vector representation of the graph and be able to transform any vector back into a graph. Based on the vectors provided by the graph encoder 102, the exemplary implementation can calculate the semantic distance between graphs and use this distance to perform dimensionality reduction, thereby semantically aggregating the graphs in a low-dimensional space. Furthermore, based on the graph decoder 103, the exemplary implementation can generate graphs from the vectors in the space to provide recommendations to the user.
[0025] The exemplary implementation can use any declarative language for data visualization (such as VegaLite) to represent a data chart with a tree structure. Figure 2(a) illustrates an exemplary specification for data visualization according to the exemplary implementation. The example shown in Figure 2(a) relates to the VegaLite specification, which is a JavaScript Object Notation (JSON) object with a nested format (e.g., a tree), but other specifications for representing data charts can also be used, and the exemplary implementation described herein is not particularly limited to this. Following the GVAE method, the structure is viewed as a context-free syntax tree generated by a set of rules, where each rule is represented by a one-hot vector. These vectors are flattened together as the encoding part, which is a deep convolutional neural network. The decoding part is a recursive neural network that produces a set of unnormalized log probability vectors (or "logits"). Each logit vector is then mapped back to a rule, and a syntax tree can be generated. By using a deep learning model method such as the GVAE method, the chart can be vectorized, and the vectorized charts can then be compared by similarity processing such as nearest neighbor to determine the similarity between the charts.
[0026] Figure 2(b) illustrates an example of encoding and decoding using GVAE according to an exemplary implementation. At a high level, GVAE is applied with the VegaLite representation of the data graph in Figure 2(a). A variational autoencoder (VAE) is configured to learn both an encoder and a decoder to map data points x to variables z and vice versa in a continuous latent space. In the exemplary implementation described herein, x is the data graph and z is a compact vector representation that can be used to calculate graph similarity.
[0027] Building on the foundation of VAE, GVAE is configured to learn encoder and decoder mappings directly using x as a parse tree governed by a context-free grammar (CFG). The definition of a CFG consists of a set of symbols (e.g., non-terminals and terminals) and a set of rules (e.g., mappings from non-terminals to terminals and / or sequences of non-terminals). Thus, the CFG determines the set of possible trees that can be produced by recursively applying the rules until all leaf nodes are terminals. One of the benefits of GVAE leveraging CFG compared to traditional VAEs is that it is more likely to generate valid data samples with the decoder.
[0028] Since the VegaLite specification of a graph is naturally tree-structured, each graph can be viewed as a parse tree generated by a collection of rules within the CFG. For example, Figure 2(a) illustrates a data graph and its VegaLite specification and the rules that generate the JSON tree. The exemplary implementation described herein employs GVAE to learn encoders and decoders for graphs that are independent of a specific dataset. Thus, data fields in VegaLite are replaced with common tokens, in particular quantitative fields with NUM and categorical / ordered fields with STR. Furthermore, the exemplary implementation excludes specifications that are not relevant to visual encoding, such as data and pattern specifications.
[0029] With the above preprocessing of the data, GVAE is trained to learn the back-end graph encoder 102 and decoder 103 by adopting the computational architecture shown in Figure 2(b). The encoding process used by the graph encoder 102 includes: (e1) extracting the rules that form the VegaLite tree; (e2) representing the rules with a set of one-hot vectors; and (e3) feeding these vectors into a multi-layer convolutional neural network (CNN) and then to a dense layer to map them to latent variables (i.e., the vector representation of the graph). The decoding process used by the decoder 103 includes: (d1) converting the latent variables back into a set of vectors (logits) using a multi-layer recurrent neural network (RNN); (d2) inferring the rules represented by these vectors; and (d3) reconstructing the VegaLite tree based on the set of rules.
[0030] Figure 3An example of a network structure according to an exemplary implementation is illustrated. In the exemplary implementation, the encoder 102 involves three convolutional layers, all of which have filters of size 4 and kernels of size 3, followed by a dense layer with 256 neurons; and the decoder 103 contains three gated recurrent unit (GRU) layers, all of which have a hidden dimension of 256 neurons. In the experiments, the target latent dimension of the autoencoder is 20. By applying a test dataset to training involving 4300 VegaLite specifications (upsampled to 21500 examples), experimental results show that higher reconstruction accuracy (e.g., over 90%) can be achieved after tuning the model. For dataset independence, data attribute names are replaced with standard tokens. For example, "NUM" is used instead of numerical attributes and "STR" is used instead of categorical attributes. Thus, through such exemplary implementations, it has been shown that high reconstruction accuracy can still be achieved by vectorizing the graph using deep model techniques such as GVAE, allowing the graph to be stored in a more compressed form in the database while storing the graph in a format (data vector) that allows machine learning techniques such as nearest neighbors to be applied to determine similarities.
[0031] Figure 4 An exemplary portion of a screenshot of a GUI tool according to an exemplary implementation is illustrated. As previously described, the interface of the GUI tool includes three interactive coordination panes: an inspection view, a summary view, and a recommendation view, all of which are integrated into the Figure 4 In. Reference Figure 5(a) to Figure 5(c) Each view is provided in more detail. Figure 4 In an exemplary implementation of , based on the selection of a chart representation in the summary view, the chart is displayed in the foreground. Figure 1 As described by the decoder 103 of FIG. 1 , a graph is generated by decoding the vectors associated with the selected graph representation.
[0032] Figure 5(a) to Figure 5(c) Exemplary views of a GUI tool according to an exemplary implementation are illustrated. Specifically, FIG5(a) illustrates an example of an inspection view. The inspection view includes a set of standard controls 501 and a text editor 502 that allows the user to interactively view and modify a selected chart based on the VegaLite language. The user can select properties from drop-down controls depending on the desired implementation, or edit the chart specification directly in the editor.
[0033] Figures 5 (b) and 5 (c) illustrate various aspects of the summary view according to an exemplary implementation. The summary view involves a chart embed panel 511, a data table 512, and a chart list panel (Figure 5 (c)). The chart embed panel 511 uses dimensionality reduction techniques to present representations of all charts created by the user in a 2D space. In the exemplary implementation described herein, a dimensionality reduction process such as multidimensional scaling (MDS) can be adopted based on the vector representation of the chart generated by the back end. The MDS process performed on the vectors enables the exemplary implementation described herein to project the vectorized charts into a 2D space (e.g., a map) distributed based on similarity measurements. Each chart listed is associated with a representation distributed in the 2D space as shown in the chart embed panel 511. In this exemplary implementation, each representation has the form of a circle glyph, wherein the inner circle color indicates the identity of the user who created the chart, and the outer portion shows the data attributes used in the chart (different colors or color shades represent different data attributes). The user can hover over each glyph to view the actual data chart in a tooltip. Additionally, data table 512 shows the original data set, with each row indicating a record for a chart and each column indicating an attribute. Data attributes are color-coded corresponding to the attributes of the chart in the embedded panel, depending on the desired implementation. Finally, the chart list panel of FIG5( c) displays all charts to allow navigation according to the desired implementation.
[0034] By leveraging the embedding function generated by the graph encoder, the exemplary implementation can project the graph onto a 2D semantic space using a ranking technique based on dimensionality reduction. In the exemplary implementation, MDS is utilized, however, other dimensionality reduction processes such as t-SNE or directly training the encoder with a latent dimension of 2 can be utilized depending on the desired implementation. In the exemplary implementation that determines the weighted distance using MDS based on a weighted distance metric, any function involving weights applied to one or more of the Euclidean distance applied to the embedding vector or the Jaccard distance between two sets of data fields for each graph can be utilized for the weighted distance metric depending on the desired implementation.
[0035] As shown in FIG5(b), the diagram representations can be distributed in the diagram embedding panel 511 and spaced apart by distance based on their similarity. In such an exemplary implementation, similarity is derived based on a machine learning process (e.g., nearest neighbor), and a dimensionality reduction method such as MDS is configured to determine the distance between vectors based on the similarity. This distance can then be visualized as shown in the diagram embedding panel 511 to represent the distance like a map, where the spacing between the representations represents the vectorized similarity.
[0036] Based on the chart embed panel 511 in the summary view, the user can find chart recommendations by clicking on any blank space on the panel. As shown in Figure 5(b), the larger shaded circle represents the local range of the current analysis space formed by the chart, and the chart recommendations are constructed within the circled area. The user can iteratively explore the space and obtain recommendations in different local areas based on the implementation they need. In addition, the user can refine the recommended charts in the inspection view and add them to the current analysis. Although the shaded circle is used to determine the selected area, other implementations (e.g., a free-form closed area, rectangle, etc. defined with a mouse cursor or gesture) can also be utilized depending on the desired implementation. Figure 5(d) illustrates an exemplary flowchart for generating chart recommendations through a GUI tool according to an exemplary implementation.
[0037] At 531, the process samples one or more points within a selected area (e.g., the shaded circle area shown in FIG. 5( b)). The sampling of the points and the number of points selected within the selected area can be performed according to any desired implementation. At 532, the process determines a vector corresponding to one or more sampled points within the selected area. Because the chart embedding panel 511 example of FIG. 5( b) is in the form of a map in which distance representations represent similarities between vectors associated with the chart representations, vectors can be generated based on the similarity metric utilized. For example, a chart within or near the selected area can be determined from the data table 512 for data corresponding to the chart within or near the selected area. Based on the corresponding data, vectors can be generated for the corresponding sampling points based on a machine learning process (e.g., nearest neighbor) that determines the similarity between the vectors, and a dimensionality reduction process such as MDS can determine the distance between the sampling point and the data corresponding to the chart within or near the selected area based on the similarity, because the distance represents the similarity between the vector of the sampling point and the vector of the known chart. At 533, the process is configured to convert the vector into a vector as referenced. Figure 1 The decoder 103 of FIG. 5 is a decoder that decodes a vector of decoded charts as described above. At 534, the process provides (e.g., displays) the decoded charts as recommended charts. In an exemplary implementation and as shown in FIG. 5( c ), a column may be dedicated to chart recommendations (as shown in the charts generated on the right column of FIG. 5( c )) to facilitate a recommended view.
[0038] Figure 6An exemplary computing environment with an example computer device suitable for some exemplary implementations is illustrated. The computer device 605 in the computing environment 600 may include one or more processing units, cores, or processors 610, memory 615 (e.g., RAM and / or ROM, etc.), internal storage 620 (e.g., magnetic storage, optical storage, solid-state storage, and / or organic memory), and / or I / O interface 625, any of which may be coupled to a communication mechanism or bus 630 for communicating information or embedded in the computer device 605. The I / O interface 625 is also configured to receive images from a camera or provide images to a projector or display, depending on the desired implementation.
[0039] The computer device 605 can be communicatively coupled to an input / user interface 635 and an output device / interface 640. One or both of the input / user interface 635 and the output device / interface 640 can be a wired interface or a wireless interface and can be detachable. The input / user interface 635 can include any physical or virtual device, component, sensor, or interface (e.g., a button, a touch screen interface, a keyboard, a fixed point / cursor control, a microphone, a camera, Braille, a motion sensor, and / or an optical reader, etc.) that can be used to provide input. The output device / interface 640 can include a display, a television, a monitor, a printer, a speaker, Braille, etc. In some exemplary implementations, the input / user interface 635 and the output device / interface 640 can be embedded in the computer device 605 or physically coupled to the computer device 605. In other exemplary implementations, other computer devices can function as the input / user interface 635 and the output device / interface 640 for the computer device 605 or provide the functions of the input / user interface 635 and the output device / interface 640 for the computer device 605.
[0040] Examples of computer devices 605 may include, but are not limited to, devices that move at high speeds (e.g., smartphones, devices in vehicles and other machines, devices carried by humans and animals, etc.), mobile devices (e.g., tablet computers, notebook computers, laptop computers, personal computers, portable televisions, radios, etc.), and devices that are not designed for mobility (e.g., desktop computers, other computers, kiosks, televisions, radios, etc. in which one or more processors are embedded and / or coupled thereto).
[0041] The computer device 605 can be communicatively coupled (e.g., via an I / O interface 625) to external storage 645 and a network 650 for communicating with any number of networked components, devices, and systems, including one or more computer devices of the same or different configurations. The computer device 605 or any connected computer device can function as, provide services of, or be referred to as, a server, client, thin server, general-purpose machine, special-purpose machine, or another label.
[0042] I / O interface 625 may include, but is not limited to, wired and / or wireless interfaces using any communication or I / O protocol or standard (e.g., Ethernet, 802.11x, universal system bus, WiMax, modems, cellular network protocols, etc.) for communicating information to and / or from at least all connected components, devices, and networks in computing environment 600. Network 650 may be any network or combination of networks (e.g., the Internet, a local area network, a wide area network, a telephone network, a cellular network, a satellite network, etc.).
[0043] The computer device 605 can use and / or communicate with computer-usable or computer-readable media, including transitory media and non-transitory media. Transitory media include transmission media (e.g., metal cables, optical fibers), signals, carrier waves, etc. Non-transitory media include magnetic media (e.g., disks and tapes), optical media (e.g., CD ROMs, digital video disks, Blu-ray discs), solid-state media (e.g., RAM, ROM, flash memory, solid-state storage), and other non-volatile storage or memory.
[0044] The computer device 605 can be used to implement techniques, methods, applications, processes, or computer-executable instructions in some exemplary computing environments. The computer-executable instructions can be retrieved from a transient medium, stored in a non-transitory medium, and retrieved from a non-transitory medium. The executable instructions can be derived from one or more of any programming, scripting, and machine languages (e.g., C, C++, C#, Java, Visual Basic, Python, Perl, JavaScript, etc.).
[0045] The processor 610 can execute under any operating system (OS) (not shown) in a native or virtual environment. One or more applications can be deployed, including a logic unit 660, an application programming interface (API) unit 665, an input unit 670, an output unit 675, and an inter-unit communication mechanism 695 for enabling different units to communicate with each other, with the OS, and with other applications (not shown). The units and elements described can vary in design, function, configuration, or implementation and are not limited to the description provided. The processor 610 can be in the form of a hardware processor such as a central processing unit (CPU), or a combination of hardware and software units.
[0046] In some exemplary implementations, when the API unit 665 receives information or executes instructions, it may be communicated to one or more other units (e.g., the logic unit 660, the input unit 670, and the output unit 675). In some instances, the logic unit 660 may be configured to control the flow of information between the units and direct the services provided by the API unit 665, the input unit 670, and the output unit 675 in some exemplary implementations described above. For example, one or more processes or implementation flows may be controlled by the logic unit 660 alone or in conjunction with the API unit 665. The input unit 670 may be configured to obtain input for calculations described in the exemplary implementations, and the output unit 675 may be configured to provide output based on the calculations described in the exemplary implementations.
[0047] The processor 610 may be configured to provide a graphical user interface (GUI) to Figure 4 and Figure 5(a) to Figure 5(c) As shown in the embodiment of the present invention, a method for generating a recommended chart is provided, the method involving the following steps: providing a first view on a GUI, the first view being configured to provide representations of a plurality of charts on a map, the representations of the plurality of charts being distributed within the map on the first view based on similarities derived from encoding vectorization of the plurality of charts into a plurality of vectors, as shown in FIG5(b); when an area within the map is selected on the first view as shown in FIG5(b), generating a recommended chart derived from similarities between the selected area and one or more charts within or near the selected area among the plurality of charts, and displaying the chart recommendation on a second view of the GUI as shown in the right column of FIG5(c). In another exemplary implementation, if the recommended chart is determined to be acceptable, the representation of the chart recommendation can be placed on the map shown in FIG5(b) based on the similarity between the chart recommendation and the plurality of charts (i.e., generating another representation at a sampling point within the selected area on the chart embedding panel 511). The added representation is spaced apart from the other representations based on vector similarity.
[0048] In an exemplary implementation, the Figure 1The vectorization process of the grammatical variational autoencoder (GVAE) training is used to perform encoding vectorization of multiple graphs into multiple vectors.
[0049] As shown in FIG5(b), the representations of the plurality of charts may be distributed within the map on the first view as determined from a dimensionality reduction process (e.g., MDS) configured to determine distances between respective representations of the plurality of charts based on similarities between a plurality of vectors. Figure 1 As shown in Figure 5(b), by utilizing deep learning models such as GVAE, graphs can be encoded into vectors and then decoded back into graphs. Since graphs are encoded into vectors through machine learning, similarity calculations can be performed using machine learning methods such as nearest neighbor. This allows for dimensionality reduction methods such as MDS to determine distances between graphs based on the determined similarities. These distances can then be used to place graph representations on a map, as shown in Figure 5(b).
[0050] As shown in Figure 5(d), the processor 610 can be configured to generate a recommended chart derived from the similarity between the selected area and one or more icons within or near the selected area in multiple charts by the following steps: sampling points within the selected area; determining vectors corresponding to the points within the selected area; performing vector decoding processing configured to convert the vectors into a decoded chart; and providing the decoded chart as a recommended chart.
[0051] As shown in Figure 5(a), selecting the representation of the chart in Figure 5(b) or the representation of the chart in Figure 5(c) can generate another view as shown in Figure 5(a). Therefore, the processor 610 can be configured to: in order to receive a selection of a representation of a plurality of representations of charts distributed within the map on the first view as shown in Figure 5(b), generate a third view as shown in Figure 5(a) involving a text editor 502 for editing the source code for generating the chart and a drop-down control 501 for modifying the chart according to the desired implementation.
[0052] like Figure 4 As shown, the chart representation is configured to be selectable according to any desired implementation (e.g., touch interface, mouse cursor selection, etc.), such that the processor 610 can be configured to: in order to receive a selection of a representation in the plurality of representations of charts within the map distributed on the first view, perform a vector decoding process configured to convert a vector in the plurality of vectors corresponding to the representation in the plurality of representations of charts into a chart as described with reference to the decoder 103, and generate a vector as described with reference to the decoder 103. Figure 4 The chart used for display is shown in the foreground chart.
[0053] Through the exemplary implementation of the vectorization process described herein, which involves encoding a chart into a vector and decoding the vector back into a chart, a GUI can be provided that is related to the representation of a chart on a map, such as that shown in FIG5( b), based on similarity. Such a technique is an improvement over the related art because the vectorization of the chart allows machine learning techniques, such as nearest neighbor, to determine the similarity between the charts to be applied, which saves processing time compared to applying machine learning techniques to determine the similarity between the charts without vectorization. Through vectorization, MDS can also be employed to project the chart representation onto a 2D space, such as a map, based on the similarity between the vectorized charts, as determined from the nearest neighbor process.
[0054] Furthermore, such an implementation facilitates a GUI view in which a region between the sampled representations can be selected. As shown in FIG5(b), since the graph representations are separated by distance based on similarity, a vector can be determined for the data points sampled within the selected region based on the inverse process of the similarity, since the similarity between the sampled point and the known graph is known based on the distance, and the vector of the known graph can be used as a reference point to derive the vector of the sampled point. Once the vector is obtained, it can be used as follows Figure 1 The decoder 103 shown converts the vector into a graph recommendation and provides it as shown in FIG5(c).
[0055] Furthermore, because the chart representations can be placed on a map as shown in FIG5(b), and because the chart representations are separated by similarity, a GUI can be provided to indicate the spacing between the chart representations. Through such an exemplary implementation, the user can thereby select areas between the chart representations for data exploration and for generating chart recommendations. Such an exemplary implementation is an improvement over the related art because, without such GUI functionality, it would be difficult for the user to determine which other charts should be explored given the currently generated set of charts.
[0056] Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations within a computer. These algorithmic descriptions and symbolic representations are the means used by those skilled in the data processing arts to convey the essence of their innovations to others skilled in the art. An algorithm is a defined series of steps leading to a desired end state or result. In exemplary implementations, the steps performed require physical manipulation of tangible quantities to achieve tangible results.
[0057] Unless otherwise specifically noted, it will be apparent from the discussion that it should be understood that throughout the description, discussions utilizing terms such as "process," "compute," "calculate," "determine," "display," etc., can include the actions and processes of a computer system or other information processing device that converts data represented as physical (electronic) quantities in the computer system's registers and memories into data similarly represented as physical quantities in the computer system's memories or registers or other information storage, transmission, or display devices.
[0058] Exemplary implementations may also relate to devices for performing the operations herein. The device may be specially constructed for the desired purpose, or may include one or more general-purpose computers selectively activated or reconfigured by one or more computer programs. Such computer programs may be stored in computer-readable media such as computer-readable storage media or computer-readable signal media. Computer-readable storage media may relate to tangible media such as, but not limited to, optical disks, disks, read-only memories, random access memories, solid-state devices, and drives, or any other suitable type of tangible or non-temporary media suitable for storing electronic information. Computer-readable signal media may include media such as carrier waves. The algorithms and displays presented herein are not fixedly associated with any particular computer or other device. Computer programs may relate to pure software implementations that relate to instructions for performing the operations desired to be implemented.
[0059] Various general purpose systems can be used with the programs and modules according to the examples herein, or it may prove convenient to construct more specialized equipment to perform the desired method steps. In addition, the exemplary implementations are described without reference to any particular programming language. It will be understood that the teachings of the exemplary implementations as described herein can be implemented using a variety of programming languages. The instructions of the programming language can be executed by one or more processing devices (e.g., a central processing unit (CPU), a processor, or a controller).
[0060] As known in the art, the above operations can be performed by some combinations of hardware, software, or software and hardware. Circuits and logic devices (hardware) can be used to implement various aspects of exemplary implementations, while instructions stored on machine-readable media (software) can be used to implement other aspects. If the instructions are performed by a processor, the processor will be made to perform the method for implementing the implementation of the present application. In addition, some exemplary implementations of the present application can only be performed in hardware, while other exemplary implementations can only be performed in software. Moreover, the various functions described can be performed in a single unit, or can be dispersed over multiple components in many ways. When performed by software, the method can be performed by a processor such as a general-purpose computer based on the instructions stored on a computer-readable medium. If necessary, instructions can be stored on the medium in a compressed and / or encrypted format.
[0061] In addition, by considering the description and practicing the teachings of this application, other implementations of the application will be apparent to those skilled in the art. The various aspects and / or components of the described exemplary implementations can be used alone or in any combination. The description and exemplary implementations are intended to be considered as examples only, and the true scope and spirit of the application are indicated by the appended claims.
Claims
1. A method for providing a graphical user interface (GUI) to generate a recommendation chart, the method comprising the following steps: providing a first view on the GUI, the first view being configured to provide representations of a plurality of charts on a map, the representations of the plurality of charts being distributed within the map on the first view based on similarities derived from encoding vectorization of the plurality of charts into a plurality of vectors; when an area within the map is selected on the first view, generating a recommended chart derived from similarities between the selected area and one or more charts within or near the selected area among the plurality of charts; displaying a chart recommendation on a second view of the GUI; as well as Based on the similarity between the chart recommendation and the plurality of charts, a representation of a chart corresponding to the chart recommendation is added within the area on the map on the first view.
2. The method according to claim 1, wherein The encoding and vectorization of the plurality of graphs into the plurality of vectors is performed by a vectorization process trained by a grammatical variational autoencoder (GVAE).
3. The method according to claim 1, wherein The representations of the plurality of charts are distributed within the map on the first view as determined from a dimensionality reduction process configured to determine distances between respective representations of the plurality of charts based on similarities between the plurality of vectors.
4. The method according to claim 1, wherein The step of generating a recommended chart derived from similarities between the selected area and one or more charts in or near the selected area among the plurality of charts comprises the following steps: Sampling points within the selected area; determining a vector corresponding to the point within the selected area; performing a vector decoding process configured to convert the vector into a decoding graph; and The decoding chart is provided as the recommended chart.
5. The method according to claim 1, further comprising the steps of: To receive a selection of a representation of the plurality of charts within the map distributed on the first view, a third view is generated that includes a text editor for editing source code generating the chart and a drop-down control for modifying the chart.
6. The method according to claim 1, further comprising the steps of: to receive a selection of a representation of the plurality of representations of charts within the map distributed over the first view, performing a vector decoding process configured to convert a vector of the plurality of vectors corresponding to a representation of the plurality of representations of charts into a chart; as well as Generates a chart for display.
7. A non-transitory computer-readable medium storing instructions for providing a graphical user interface (GUI) to generate a recommendation chart, the instructions comprising: providing a first view on the GUI, the first view being configured to provide representations of a plurality of charts on a map, the representations of the plurality of charts being distributed within the map on the first view based on similarities derived from encoding vectorization of the plurality of charts into a plurality of vectors; when an area within the map is selected on the first view, generating a recommended chart derived from similarities between the selected area and one or more charts within or near the selected area among the plurality of charts; displaying a chart recommendation on a second view of the GUI; as well as Based on the similarity between the chart recommendation and the plurality of charts, a representation of a chart corresponding to the chart recommendation is added within the area on the map on the first view.
8. The non-transitory computer-readable medium of claim 7, wherein: The encoding and vectorization of the plurality of graphs into the plurality of vectors is performed by a vectorization process trained by a grammatical variational autoencoder (GVAE).
9. The non-transitory computer-readable medium of claim 7, wherein: The representations of the plurality of charts are distributed within the map on the first view as determined from a dimensionality reduction process configured to determine distances between respective representations of the plurality of charts based on similarities between the plurality of vectors.
10. The non-transitory computer-readable medium of claim 7, wherein: The operation of generating a recommended chart derived from similarities between the selected area and one or more charts in or near the selected area among the plurality of charts includes: Sampling points within the selected area; determining a vector corresponding to the point within the selected area; performing a vector decoding process configured to convert the vector into a decoding graph; and The decoding chart is provided as the recommended chart.
11. The non-transitory computer-readable medium of claim 7, the instructions further comprising: To receive a selection of a representation of the plurality of charts within the map distributed on the first view, a third view is generated that includes a text editor for editing source code generating the chart and a drop-down control for modifying the chart.
12. The non-transitory computer-readable medium of claim 7, the instructions further comprising: to receive a selection of a representation of the plurality of representations of charts within the map distributed over the first view, performing a vector decoding process configured to convert a vector of the plurality of vectors corresponding to a representation of the plurality of representations of charts into a chart; as well as Generates a chart for display.
13. A device configured to provide a graphical user interface (GUI) for generating a recommendation chart, the device comprising: A processor configured to: providing a first view on the GUI, the first view being configured to provide representations of a plurality of charts on a map, the representations of the plurality of charts being distributed within the map on the first view based on similarities derived from encoding vectorization of the plurality of charts into a plurality of vectors; when an area within the map is selected on the first view, generating a recommended chart derived from similarities between the selected area and one or more charts within or near the selected area among the plurality of charts; displaying a chart recommendation on a second view of the GUI; as well as Based on the similarity between the chart recommendation and the plurality of charts, a representation of a chart corresponding to the chart recommendation is added within the area on the map on the first view.
14. The apparatus according to claim 13, wherein The encoding and vectorization of the plurality of graphs into the plurality of vectors is performed by a vectorization process trained by a grammatical variational autoencoder (GVAE).
15. The apparatus according to claim 13, wherein The representations of the plurality of charts are distributed within the map on the first view as determined from a dimensionality reduction process configured to determine distances between respective representations of the plurality of charts based on similarities between the plurality of vectors.
16. The apparatus according to claim 13, wherein The processor is configured to generate a recommended chart derived from a similarity between the selected area and one or more charts in or near the selected area among the plurality of charts by: Sampling points within the selected area; determining a vector corresponding to the point within the selected area; performing a vector decoding process configured to convert the vector into a decoding graph; as well as The decoding chart is provided as the recommended chart.
17. The apparatus of claim 13, wherein the processor is further configured to: To receive a selection of a representation of the plurality of charts within the map distributed on the first view, a third view is generated that includes a text editor for editing source code generating the chart and a drop-down control for modifying the chart.
18. The apparatus of claim 13, wherein the processor is further configured to: To receive a selection of a representation of the plurality of charts within the representations distributed on the map on the first view, performing a vector decoding process configured to convert a vector of the plurality of vectors corresponding to the representation of the plurality of charts into a chart; and Generates a chart for display.
Citation Information
Patent Citations
Content visualization device and content visualization method
JP2010092116A
Suggesting alternate data mappings for charts
US20130097177A1