« The pod and the mouse | Main | Happy Dingday / Guild Efficiency »

May 10, 2006

Comments

1.

I dont really feel that this would be a 'social algorithm' unless there's some amazing work being done on how the participants interact with one another. Personally when I read this I imagine it's more like a set of task-distribution algorithms in the traditional computing sense to distribute work between willing participants, and then the opposite sorts of things to feed the responses back.

That's not to say this isn't a neat idea, and if they can get it right (that is, make it easy to use from both sides, and address the problems of incorrect answers by accident or negligence/fraud) then it could find all manner of uses.

2.

If you really want a "social algorithm" in the sense that keeps being brought up, take a look at systems that try to pair likely partners in computerised dating systems.

The first mention I recall seeing of a concept of social matchmaking (in an MMO) was an interview with Richard Garriot about his ideas for his next MMO (this was pre-Tabula rasa, in the UO2, UOX era). He mentioned that he really wanted to push an MMO storytelling system that would engineer the creation of friends and enemies from other players. Of course, the LFG / LFM system is a social system, although it's arguable that the algorithm that powers the system is no more "social" than any other.

I keep getting this feeling that the current debate is fixating on finding a Deus Ex to fill the void of this abstract concept so that everyone can pat themselves on the back and rejoice in the birth of a new paradigm of computer science.

So why "algorithm", and not "system"? The concept of the design of social systems that promote social interaction, particularly within a game world really doesn't seem that foreign to me, but the concept of an "algorithm" gives me the sense of some well defined process that cranks out an "answer" within the domain of possible solutions.

To find myself strangely drawn back to The Hitchhiker's Guide:
If a social algorithm cranks out an anwser and is what we're all looking for to solve our issues, what's the question?

3.


So why "algorithm", and not "system"? The concept of the design of social systems that promote social interaction, particularly within a game world really doesn't seem that foreign to me, but the concept of an "algorithm" gives me the sense of some well defined process that cranks out an "answer" within the domain of possible solutions.

To find myself strangely drawn back to The Hitchhiker's Guide:
If a social algorithm cranks out an anwser and is what we're all looking for to solve our issues, what's the question?

-----------------------------------------------

Just to play with this a bit - I think it may come down to the precision one wishes to discuss the underlying logic of the process. For example, one might be more apt to describe a system less exactly - in terms of its properties, data-flow etc. Whereas if one had a fairly good handle (even if only statistical) on the behavior of the same system (as well a desire to roll it out in its full detail), perhaps an algorithmic description is appropriate. The latter allows one to abstract away from the implementation a logic which presumably is portable across implementations.

4.

A system can be equally well defined in terms of its process, but a system isn't required to produce an answer for a given set of inputs.

To go back to the original post and borrow from wikipedia again:
"In mathematics and computer science, an algorithm is a procedure (a finite set of well-defined instructions) for accomplishing some task which, given an initial state, will terminate in a defined end-state."

So an algorithm would be something that (for example) takes a set of inputs like, the available people in an online dating service, and for a specific person, returns the people who best match their mutual preferences.

You can apply algorithmic analysis to it and say (again, f.ex.) that the computation required to find those matches grows at O(n) where n is the size of the user base.

A system would be able to be a more nebulous thing that continually sends people suggestions for other users they might get along with. Since there's no well defined termination condition (solution) to this, it's not an algorithm. The part that picks the recipient and person whom it suggests however, would be an algorithm, since it would have well defined inputs and outputs, and could be analysed for it's computational complexity.

Algorithm:
The steps taken to answer: "Which guild is this user most likely to fit in with and be accepted into?"

System:
"A service that mails users suggesting guilds they might want to consider joining"

In these cases, the system is designed to do something socially inclined - however, the algorithm is likely to be merely performing well defined steps of finding a best match for various variables. The same pattern matching process could very likely be applied to other things not inherently social, which makes labelling the algorithm a "social" one a dubious proposition.

5.


Daniel Speed>
the system is designed to do something socially inclined - however, the algorithm is likely to be merely performing well defined steps of finding a best match for various variables. The same pattern matching process could very likely be applied to other things not inherently social

---------------------------

I think there are two separable arguments in play here.

The *first issue* is whether something like AMT should be thought of in terms of a long running service or in terms of its transactions - open-ended vs. end-state-terminated, system vs. algorithm.

The *second issue* is whether is whether a series of computed steps (algorithm) can ever be "social" or is it just, well, computation (by the definition of algorithm).

The question of the Amazon Mechanical Turk example let me recast as: can a human population that performs some work within a software system (<=) be described in algorithmic terms?

For example.

If i had an auditorium full of people, I passed out flash cards. I asked everyone to write their age on it. Then I asked them to line up on the center court and via instructions over a bullhorn had them implement some sorting algorithm - say QuickSort: they are then all lined up by age. Would it be fair to describe (and subsequent analyze) their interactions via the algorithm used?

Now imagine I hired someone to sit at desk answer the phone. Imagine then I invited the world to call in and submit their age.. then with bull horn.. merged.. report back their age rank (in terms of pool of cards held by auditorium folk).

Now flip it.

Folks call in with a judgement question. Everyone in auditorium goes into a huddle and eventually votes: aye or nay! I run around and document the rules used.

algorithm?

social algorithm?

6.

Folks call in with a judgement question. Everyone in auditorium goes into a huddle and eventually votes: aye or nay! I run around and document the rules used.
---------
In my opinion, not an algorithm. There's no well defined instructions, despite there being an input and termination state. If you restrict the instructions to the systems that deal with the result, then they're applicable to anything else that could produce a result (including a dice throw) and the algorithm isn't social.

The key to finding a social algorithm is probably first to find a well defined computational step that's inherently social (does this even make sense?). The results of a social system aren't good enough in my opinion, since that makes counting votes a 'democratic algorithm' when it's really just computational.

I think the requirement is a contradiction in terms. You can take social results and feed them into algorithms to build a social system, but you can't take something intentionally not well defined and build something that's still an algorithm.

The comments to this entry are closed.