Thursday, October 29, 2015

Brainstorming about brainstorming techniques

I'm about to attend a hackathon in Helsinki where I study right now. The team has already brought together, but finding an idea to hack the hell out of is not that simple. That's why I started thinking how to make brainstorming easier, how can I help my brain in the process. Here I share two approaches that I came up with - I'm not saying I was the first to figure these out, though; I have no clue.

Montage brainstorming

For the hackathon, the team had to choose, which gadget(s) to use - if more, than which combination - to build a creative, promising product. There was 20 of them so this decision alone was far from trivial. We agreed to try out a neuro headband, but still, there are a again a million ways to hack further brain signals with the other devices. There, it came to my mind, what if I constitute a montage, images of all devices cut and pasted side by side in a single image to view. It's so much easier to make associations between devices - or more abstractly, between choices of a parameter of an idea - than keeping your mind updating over and over again of the choices available. You just look at the montage and let your brain connect the dots for you. This technique, of course, is only convenient when you have all the possible choices available and their number doesn't exceed, let's say, 30. For most parameters of a hackathon / startup idea, montage brainstorming is not applicable. Don't worry, the other brainstorming method I'm going to show is just for those difficult cases.

The actual montage of devices that I assembled. Lots of tools to hack!

MCMC brainstorming

Successful ideas are complex. It either takes a lot of effort to come up with one, or a lot of experience and some luck - like they say "when the stars are aligned", but here your neurons have to be aligned and have an appropriate tick so the idea can come alive. Ideas can be divided into smaller parts, smaller ideas. If we split it long enough we arrive to ideas that basically are parameters of a scale - e.g. which device to use, what do we measure, how we process it. If we found all the right parameters and they fit together, then success awaits. Let's put it to a higher level abstraction just for the beauty of data analysis.

When we analyse data, we want to infer some information, or in other words, a parameter about it. For instance, what is an appropriate choice of device given the previous successes of such devices and the expertise of the team - I'm going to stick with the hackathon example for the sake of understanding. The easiest solution is to check out all the places in the parameter space and then choose the best one - so to say, evaluate the success rate of all combinations of devices to hack. For continuous (real) parameters this is impossible, as there are innumerable infinite possibilities. But let's stay out of raw theory, and say in practice we can slice up the space and also we can rule out values that would be ridiculous - like if we want to figure out the next huge tech idea, we don't start from the transistors or the assembly code of our product, neither we evaluate all the possible crazy ideas. By checking the whole spectrum of this discretized and bounded space, we still have a whole lot of possibilities to evaluate, most time an impossible amount. It's the same in Bayesian analysis when we try to figure out a parameter out of our previous observations - considering those previous fruitful ideas, which went popular we want to realize a new killer idea.

Here we can explore (sample) the whole space of the possible values of the parameter given the data observed (that's the posterior distribution) and find the most fitting value - thus come up with the idea that's gonna bring the most success. Now, this is difficult or rather impossible, when the number of parameters gets so large you cannot even enumerate them. Surprise, surprise, there's a Bayesian method called Markov chain Monte Carlo (MCMC), which helps you not to lose your mind (or rather not to lose your processor) in the abundance of possibilities. The MCMC algorithm works the following:

  • first take a sample from somewhere the (hyper)space of your hunted parameter (be sensible here choose one that is close to the values you believe your parameter would take),
  • then look around that parameter and choose another one randomly nearby,
  • check if this new parameter is better than the previous:
    • if yes, you go on with it,
    • if not, you still might give it a chance assuming it's not that bad; if the chance is not favorable for the newcomer, then you just stick with the previous parameter,
  • choose a parameter nearby the previous over and over again until you reach a point where your parameter, and probably the parameters around, are good enough.
And that's where I got my brainstorming idea from. Alright, how so? Let's lower the the level of abstraction back and talk about, how to brainstorm. Here's the rewritten algorithm:
  • first take a random idea - choose one that doesn't involve dinosaurs or Half Life 3; just stick with reality,
  • look around and take another idea close to the previous, or just expand on some unknown parameters of the idea (don't go into details yet, though),
  • evaluate the success rate of your new idea:
    • if this new idea, looks better than the previous, stick with it,
    • if not, give it a second look; it might have some creative value; if still hopeless, go back straight to your previous idea,
  • do this for a while till you reach a decent idea, or just start over if you feel you're getting nowhere.

The ellipses represent the area of more sensible, more successful space of ideas, as we go more and more to the center. Dots are single ideas, and the black line is the line of thought to take to arrive at the top solutions. Notice how far the first point is from the center - remember this illustration when you have to choose your first random idea.

Let's take an example here (that I'm actually making up while I'm writing). It's too loud in a big city (random issue):

  • make a headphone that cancels out the noise of a living city (first random idea)
    • cancel out only the unnecessary noise (moving away a bit, a new idea, still using the first idea) [this is kind of impossible to make so let's abandon this and build on the first idea again]
    • headphone that lowers the noise of the city if it get's too loud
      • use just an earplug instead of the headphone
        • sync the earplug with your phone, so if you listen to music it won't cancel that out
          • etc.

You see? It took only 5 iterations and I arrived at a sort of ok idea.

The strength of this brainstorming method is in the ease of each decision that you take in each step - like in MCMC the resource needed for each calculation is small. Choosing a random idea is a peace of cake, just don't grind on it too much; say what comes to your mind ~second. It can help if you run over success stories just before the brainstorming. That can bias your random idea towards a good direction. Also, choosing another idea that builds on your previous, is again, far more easier than coming up with one from scratch - this choice is random as well, but the space of possibilities is orders of magnitudes smaller compared to choosing the first idea. Evaluating ideas is the fastest of all. I would even claim that it happens without conscious thinking, and that's an advice as well: don't think too much whether the idea you are at the moment is worthy or not. This brainstorming technique can be carried out with ease. I'm sure you will have lots of fun connecting ideas and having the feeling of moving towards a solution, instead of getting stuck banging your head to the table, because of that one silly idea that is circling in your head, or just a fricking ABBA song.

Conclusion: when you are able to gather all the possible values of (probably just) one parameter of your solution, assemble a montage out of the possibilities, so you can see through them in a second. Then let your brain do the dirty work. If there's a lot more variable and the space to discover is huge, use some MCMC brainstorming: start with a random idea and explore from there. GLHF!

1 comment: