Monday, April 01, 2013

[iscossyc] Dance partner matching by artificial intelligence

The dance floor is a grid of marked positions.  This could be done by labeling X and Y coordinates on the walls rather than directly marking the floor.

The periphery of the ballroom has many computer terminals.  Each dancer is assigned an individual "home" terminal which initially directs him or her to a specific grid position to meet a partner for the first dance.

After each single dance, everyone returns to their home terminal and rates their partner.  One is more likely to be reassigned to dance again with a partner that one rates higher.  This hopefully causes people to rate truthfully.  It is also permitted to rate as, "unable to make a determination" (perhaps because the music played a greater role in making the dance unpleasant than the partner).  After rating, the computer asks whether the dancer wishes to dance to the next song (with information provided about the next song).  If so, it assigns a new dance floor grid position number to meet the next partner.

Create an online machine learning algorithm to learn which people enjoy dancing with each other and match them over the course of the entire session.  One likely fruitful approach is the Nate Silver style heuristic of assuming cohorts of people enjoy dancing with certain other cohorts of people, filling in missing information with other people's information.

Instead of the algorithm starting out with zero knowledge and therefore emitting poor matchings at the start, let it be possible to seed it with prior information.  Two possible ways of doing this: At check-in a photograph is taken, and each dancer's terminal asks to select specific people (identified by photograph) that he or she would specifically like to, or not like to, dance with.  There are a lot of possibilities of how to design this user interface.  Another way is simply to have an "unconstrained" dance session where people can select their own partners, and assume that people, on average, tend to select people they like dancing with when left to their own devices.  Use machine vision (or human-assisted) to record who danced with whom (and who didn't dance with whom).

If photographs are available, it is possible to rate and reject an assigned partner before a single dance even begins.  However, people might be more likely to act truthfully if the system never gets any identifying information about themselves, only anonymous dancer identification by terminal and ratings. Maybe abandon photographs entirely.

Rather than the venue providing a great many computer terminals, people can bring their own laptops or use a smartphone app.  Perhaps even possible purely with text messaging and a dumbphone.

Analyze the ratings.  Is it mostly one-dimensional, as in, is it possible to assign each dancer a single parameter (some measure of skill level?) which can accurately predict ratings?  The motivation for this post was to design a competition to determine who are the best social dancers, as opposed to best performance dancers as currently done in competitions.

Or, are there effects that are more complicated than can be modeled with a single parameter, for example, dance "styles" (as discovered by unsupervised machine learning) being compatible in a exclusive-or (XOR) relationship?  Are there schisms in the community between one style versus another?

How efficient at selecting mutually enjoyable matching is the "unconstrained" dance session when people are allowed to select partners on their own?  Who does a good or bad job at selecting partners?

The DJ also gets feedback of people deciding to skip a dance because of a song, or people unable to rate because of a song. Quantitatively, what is the effect of a good or bad DJ?

Apply this system to online dating.

No comments :