Thursday, February 24, 2011

Kinect Ads

Problem: Ads in the physical world are dumb.  If there is an ad in the mall, I'll see the same ad as everyone else that walks by.

Solution: Use Microsoft kinect and a screen to target ads to people as they walk by.  The kinect can tell us information to serve that person better ads.

Here are some things the kinect could identify about a person as they walked by

  • How old are they (infant, adolescent, adult)  
    • A mother with a young child should get different ads than a teenager
  • How big of group are they walking with
    • A person by themselves should get a different ad than a group of friends
  • Gender
  • How fast are they walking
    • Are they in a hurry


Linear Conversations

Scenario: Its Friday afternoon.  You and your friends need a plan for what to do that night.  You open an email thread to discuss what to do.  You throw out a couple ideas; maybe a pub or watching a movie.

Your friends reply to your mail.  They have movie  and pub suggestions.  Once friend mentions playing kickball as another idea.

Problem - Email Threads: Think about how unorganized this email thread will be.  Your friends will hit reply all, and you'll be left with an long chain of emails.  In all this unstructured linear text you might forget the suggestion of kickball, or you might forget why you all decided not to watch a movie.

Problem Analysis:  People don't think or communicate linearly.  Email threads force linearity.

Solution - Email Webs: In the original email thread replies we added to one long chain of text.  We should be able to break apart the conversation into different subtopics.

A conversation shouldn't look like a line, it should look like a tree.

Wednesday, February 16, 2011

Twitter problems

I was reading Quora and I found this post.  http://www.quora.com/Twitter-Inc-company/Why-does-Twitter-need-300-employees  Jane mentioned some really interesting CS problems

I remember my housemate was once incredulous as to why we needed so many engineers for such an apparently simple site. 1) Twitter's not as simple a website as you think--keeping Justin Bieber from dominating the trends and user recommendations are two examples of nontrivial features. 2) Like Facebook, the core functionality is simple and most people could do it in a weekend, but getting it all to work at scale is hard.


Here are a few ideas for how to tackle those problems.

1) Keep Justin Bieber off of trends

For each potential trend, keep track of two pieces of information.  How often it normally occurs, and how often it is currently occurring.  List the item as a trend once its current rate greatly exceeds its average rate.

2) Recommendations

Idea 1: Graphs - This is the most feasible, and least out there

  1. For a user U, make a graph of every user U follows (following represents an edge). 
  2. For every user in the graph, add all users they follow
  3. (optional) repeat 2 until graph is big enough
  4. Recommend the nodes in the graph with the most inbound edges. 
Idea 2: Clustering
I want to flush this out later, but the basic idea is to create some N dimensional space.  Each dimension corresponds to level of interest in an area. (eg. interest in Justin Beiber)  Map the user and potential recommendations to this space.  Recommend the nearest items.

Figuring out what are potential recommendations and what the space looks like might be either be hard (computationally) or take some extra thinking.

Idea 3: Neural Networks

Tuesday, February 15, 2011