Answers.Body: <p>Neural networks are used to visualize high dimensional data through the use of <a href="https://en.wikipedia.org/wiki/Autoencoder" rel="nofollow noreferrer">autoencoding</a>. It's similar to <a href="https://en.wikipedia.org/wiki/Principal_component_analysis" rel="nofollow noreferrer">Principal Component Analysis</a> and is regarded to perform better then PCA. Autoencoding will take your data and convert it to a 2 or 3-dimensional representation. Since you have an array of data you might want to use <a href="https://en.wikipedia.org/wiki/Long_short-term_memory" rel="nofollow noreferrer">LSTM</a>. You will have to make sure you reset the LSTM states when you perform the reverse pass. You will probably have trouble interpreting the autoencoded form of the data though, so that will be a task of its own.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-14T09:20:47.380Z
Answers.Text: Thanks for the information, particularly about autoencoding. We'll investigate further although we're now more focused on other tasks. I'll get back to you eventually whenever we investigate this and give you some feedback on our successes and failure :) Cheers
Answers.UserDisplayName: tiansivive
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-09T06:00:48.133Z
Answers.LastActivityDate: 2018-03-09T18:02:56.037Z
Answers.LastEditDate: 2018-03-09T18:02:56.037Z
Answers.UserDisplayName: Default picture
Answers.Body: <p>I doubt that this problem is a good application of NN. Take a look at this <a href="https://en.wikipedia.org/wiki/Force-directed_graph_drawing" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Force-directed_graph_drawing</a>. And try Graphviz if you haven't already. Drawing graphs in a meaningful way is notoriously difficult.</p>
  
  <p>An alternative approach would be to embed all nodes into a 2d or 3d metric space. I.e. for each node you will have coordinates of a point in such space. If you have certain rich descriptors of the nodes (i.e. some kind of information associated with each node, pictures, text, vectors of numbers) that can be done even with a NN. To have a good embedding you need more info than just node degrees or/and edge weights.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-14T09:30:14.933Z
Answers.Text: We are aware of Force layouts and other such algorithms. In fact, we've been improving on them, but we wanted to try a different approach, as we will never get rid of some of their limitations. Our own rendering software is, imo, already way better than Graphviz so that doesn't help either. 
  Thank you for your second suggestions though!
Answers.UserDisplayName: tiansivive
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-09T08:16:37.207Z
Answers.LastActivityDate: 2018-03-09T08:16:37.207Z
Answers.UserDisplayName: hellmean
Body: <p>At my work, we're currently doing some research into data visualisation for highly interconnected data, basically graphs.</p>
  <p>We've been implementing all sorts of different layouts and trying to see which fits best, but, due to the nature of the problem --it's a visual thing - we needed to come up with some automated way to analyse the result so welcome up with a bunch of metrics to analyse our layouts.</p>
  <p>So far, the most important metrics have been information density, edge crossings, node overlap and edge length. This gives us some good results and has allowed us to fine-tune our layout algorithms.</p>
  <p>However, when a new graph is loaded, we noticed that humans still tend to fiddle a lot with the structure of the layout. Moreover, it seems that our metrics do a good job of predicting where a user is likely to mess around. Graph layout is a tough problem, so <strong>after some discussion, the idea of just throwing data at a neural network and let it figure it out came up.</strong></p>
  <p>None of us are experts, or even experienced in AI.  I'm the one with the most contact with AI methods.  <strong>All I've ever done were simple NN models, no convolution, feedback or feedforward or anything of the sorts, but it seems to me this should be doable.</strong></p>
  <p>Maybe it's my lack of expertise here, but I haven't been able to find any good information on this sort of application for NNs, so I was hoping someone here could point me in the right direction.</p>
  <ul>
  <li>What sort of model is best for such a situation? and why? Is this actually possible or would it be super complicated? Has anyone ever tried something like this before?</li>
  </ul>
  <p>If it helps, our input data (for v1, I guess) would be two arrays of variable length, one for the nodes and another for the relationships between them and the output data would be an array with the node XY coordinates.</p>
  
Tags: <neural-networks><machine-learning><graphs><data-visualization>
Title: Neural network for data visualization
UserDisplayName: tiansivive
ThreadText: # Neural network for data visualization
  
  (Asked by: username_0 on 2018-01-12)
  
  At my work, we're currently doing some research into data visualisation for highly interconnected data, basically graphs.
  
  We've been implementing all sorts of different layouts and trying to see which fits best, but, due to the nature of the problem --it's a visual thing - we needed to come up with some automated way to analyse the result so welcome up with a bunch of metrics to analyse our layouts.
  
  So far, the most important metrics have been information density, edge crossings, node overlap and edge length. This gives us some good results and has allowed us to fine-tune our layout algorithms.
  
  However, when a new graph is loaded, we noticed that humans still tend to fiddle a lot with the structure of the layout. Moreover, it seems that our metrics do a good job of predicting where a user is likely to mess around. Graph layout is a tough problem, so **after some discussion, the idea of just throwing data at a neural network and let it figure it out came up.**
  
  None of us are experts, or even experienced in AI. I'm the one with the most contact with AI methods. **All I've ever done were simple NN models, no convolution, feedback or feedforward or anything of the sorts, but it seems to me this should be doable.**
  
  Maybe it's my lack of expertise here, but I haven't been able to find any good information on this sort of application for NNs, so I was hoping someone here could point me in the right direction.
  
  * What sort of model is best for such a situation? and why? Is this actually possible or would it be super complicated? Has anyone ever tried something like this before?
  
  If it helps, our input data (for v1, I guess) would be two arrays of variable length, one for the nodes and another for the relationships between them and the output data would be an array with the node XY coordinates.
  
  **Tags:** neural-networks, machine-learning, graphs, data-visualization
  
  ---
  
  ## 2 answers
  
  ### Answer by username_1 on 2018-03-09. Score: 1
  
  Neural networks are used to visualize high dimensional data through the use of [autoencoding](https://en.wikipedia.org/wiki/Autoencoder). It's similar to [Principal Component Analysis](https://en.wikipedia.org/wiki/Principal_component_analysis) and is regarded to perform better then PCA. Autoencoding will take your data and convert it to a 2 or 3-dimensional representation. Since you have an array of data you might want to use [LSTM](https://en.wikipedia.org/wiki/Long_short-term_memory). You will have to make sure you reset the LSTM states when you perform the reverse pass. You will probably have trouble interpreting the autoencoded form of the data though, so that will be a task of its own.
  
  > **Comments:**
  > **username_0**: Thanks for the information, particularly about autoencoding. We'll investigate further although we're now more focused on other tasks. I'll get back to you eventually whenever we investigate this and give you some feedback on our successes and failure :) Cheers  
  
  ---
  
  ### Answer by username_2 on 2018-03-09. Score: 1
  
  I doubt that this problem is a good application of NN. Take a look at this <https://en.wikipedia.org/wiki/Force-directed_graph_drawing>. And try Graphviz if you haven't already. Drawing graphs in a meaningful way is notoriously difficult.
  
  An alternative approach would be to embed all nodes into a 2d or 3d metric space. I.e. for each node you will have coordinates of a point in such space. If you have certain rich descriptors of the nodes (i.e. some kind of information associated with each node, pictures, text, vectors of numbers) that can be done even with a NN. To have a good embedding you need more info than just node degrees or/and edge weights.
  
  > **Comments:**
  > **username_0**: We are aware of Force layouts and other such algorithms. In fact, we've been improving on them, but we wanted to try a different approach, as we will never get rid of some of their limitations. Our own rendering software is, imo, already way better than Graphviz so that doesn't help either.  Thank you for your second suggestions though!  
  
  ---
  
  