← All articles

Matching optimisation learnings

Andrew Done, Wed Jan 01 2020

We want people to have the best experience they can on Chatroulette, which we can provide by making the best connections we can.

This is fundamentally (and naively) an optimisation problem. That is, we might imagine that any user of the thousands of users online at any time could conceivably rank all other users in terms of how ‘desirable’ they are to them.

Optimisation isn’t simple

Assuming the entire population of users were available to be matched, we could simply allocate conversation partners in such a way as to maximise everyone’s happiness.

But that wouldn’t work. The first obvious problem is that not everyone is available to be matched at any one time. In fact, the size of the pool of potential partners is principally a function of how long people are willing to wait. Even with thousands of users online, there might be only 15-30 to choose from when we calibrate to sensible waiting thresholds.

This results in a significantly smaller pool of people from which to satisfy the diversity of interests represented in the population. The law of small numbers kicks in. But it also turns out that actually establishing those interests – i.e. what a user wants from a partner – is equally tricky. How can you tell what a user wants? Consider the wide, unwieldy range of dimensions we all use in practice to identify the other humans we like. Then consider the availability of that information to Chatroulette as represented by a user’s conversation history, and the other signals we can meaningfully employ to this end.

So, in the current formulation, it’s a tricky and probably intractable problem.

Universal ranking throws up new problems

If we make it easier on ourselves through a universal rank – by working with the assumption that everyone would rank everyone else in the same way – then we have options.

Essentially, if a user is someone who is actively contributing to the site – someone people like to speak to etc. – then we can amplify that effect by matching them with similarly performing people (and visa versa).

We like this idea of ranking people by ‘Bill and Ted’ rules – by how ‘excellent’ they are to one another. But, ultimately, it leads to stratification in the user base, which generates a raft of non-trivial problems. For example, what do we do with new users? And how do we manage the social (and potential reputational) issues inherent with grouping the lower cohorts of users together?

For now, we’re back to random matches. But we’ve learned a lot that we’ll take forward as we continue to work on improving the quality of our matches.

-- AD.