Saturday, June 13, 2015

Easy to understand results

If you've used Clever Surveys before this post, you may notice a difference in prediction results. Previously, we presented predictions as probabilities. Problem is, these results were easy to misinterpret, and when there are many possible predictions, the results tend to squish together.
WoW: What is your favorite race results. Old scaling.
In an effort to make prediction results easier to interpret, we've stretched them out. Now, the top prediction always has a value of 100, and the bottom prediction gets divided by the number of possible predictions. We chose this method because it gives us the desired effect, without removing information about the bottom prediction.
WoW: What is your favorite race results. New scaling.
The probabilities themselves haven't changed. We're just presenting them differently. Now, it's easier to see little details in the results. When I look at my results for World of Warcraft races, I can see a hierarchy form. Worgen is way on top, followed by Gnome and Blood Elf. Then we have a tier containing Goblin, Troll, Night Elf, and Tauren. After that is a lower tier with Draenei, Human, Undead, Dwarf, and Pandaren. Lastly, and way below the previous tier, is Orc. This information was all there before, but I would have never noticed it without this change.

P.S. We also dropped the % sign. Most people probably don't care, but it feels weird to use the % sign if they're not actually percents.

Wednesday, June 3, 2015

Scalability, Thanks to Google App Engine

Google Cloud Platform Icons
Google Cloud Platform
Did you know that Clever Surveys is built on Google's App Engine infrastructure? In addition to a number of development boons, this means the website can easily scale to serve thousands, or hundreds of thousands of users simultaneously.

This was recently put to the test when a post about the World of Warcraft Predictor made it to the top of the WoW subreddit; a community with thousands of active users at any time. The result was hundreds of users suddenly pouring onto the site. I carefully monitored the error logs and performance stats, holding my breath in anticipation of performance issues or website hiccups. However, App Engine was able to seamlessly spin up a number of new virtual servers to handle the extra traffic.

Performance remained very steady, with the exception of a possible memory leak that caused some virtual servers to shut down. Even in that scenario, I was pleasantly surprised to discover that App Engine is nice enough to wait until the server is done handling requests, before shutting it down. This only resulted in a few users using having to wait a couple seconds for a new server to start up.

P.S. Google isn't paying me to write this, and I don't think App Engine is perfect. I'm just happy that my website can handle a lot of traffic without shutting down, and that I don't have to pay for it every day.

Wednesday, May 6, 2015

Patch Notes: Voting and Ratings!

Changelog:

  • The term predictor is used instead of survey (in most places). This makes it more clear that these "surveys" do a lot more than collect data.
  • Users can now rate predictors!
  • Fixed bug that could prevent new answers from being saved for later use
  • Huge backend changes that allow for more responsive predictor updates
    • Response count and predictor AI updates took about a day to show up
      • They now take a few minutes
  • A whole bunch of other little things
Enjoy!

Monday, May 4, 2015

How to make a computer predict anything, with AI

World of code. From The Matrix.
Image from The Matrix
At Clever Surveys, we're in the business of making predictions, but people are often skeptical. How can a computer make an accurate and personal prediction from the answers to a few questions? To understand how this works, think of the world as a whole bunch of math. Everything from the way you walk, to the college major that you'll most enjoy, is an equation. The problem is, we don't know all these equations. Scientists spend their whole lives discovering the equations that govern the universe. Machine learning scientists instead discover how to discover these equations.

Of course, a computer can't pull knowledge out of thin air. It has to learn from something. That's where our surveys come into play. By responding to a survey, the computer learns a bit more about the equation it's trying to discover. It may learn that people who are shy tend to like engineering majors, but if they also like writing, they'll be more interested in journalism. In order for the computer to learn these correlations, it needs to know what the right prediction is for a set of answers. That's why every predictor has a survey that asks all the usual questions, and the predictor questions.

By studying these responses, the computer comes up with an equation that it thinks will accurately map peoples answers to the best predictions. To those who study artificial intelligence, this process is known as supervised learning. It's not always perfect, because people are complex, and hard to predict, or maybe it just doesn't have enough responses to learn from. However, most of the time it's accurate enough to help. Even if the top prediction isn't the right one, by providing the probability for each prediction, the "predictee" can get a pretty good idea of what the best prediction is.

Try it out for yourself. Look for a predictor that interests you, and see if it works. If it doesn't, you can always help it learn by giving it a new survey response!

Sunday, May 3, 2015

Feature Preview: Cast Your Vote!


The upcoming patch will allow users to rate surveys! No longer will the survey list always place the newest surveys on top (although this is still an option). With this feature, it will be much easier to find the best surveys.

Create your own survey, and see how much people like it! Can you make the #1 survey? Get a head start here.

Thursday, April 30, 2015

Official blog for Clever Surveys

Clever Surveys now has a blog!

In the future, expect:
  • Details on website updates
    • What we changed!
    • What we added!
    • What we broke!
  • Teasers for future updates
    • Shiny new features!
    • Fixes for what we broke!
  • Interesting and insightful articles
    • AI, Machine Learning, Predictions
    • Web Development and Design