Software-Entwicklung: Crowd Control -- Entwicklung von Steuerungsmechanismen für das Crowd Computing

Motivation

Die Idee von Crowd-Computing ist, die „kollektive Intelligenz“ realer Personen zur Lösung von Aufgaben einzusetzen, die nicht automatisch lösbar sind. Solche Aufgaben kann man auf einer Crowd-Plattform wie Amazon Mechanical Turk (MTurk) veröffentlichen. Dort bearbeiten sie reale Menschen, sogenannte Crowd-Worker. Sie erhalten im Gegenzug vom Aufgabensteller eine monetäre Entlohnung. Das Anwendungsspektrum von Crowd-Computing ist breit und reicht von kleinen und  einfachen Aufgaben wie der Annotation von Bildern bis hin zu komplexen Aufgaben wie dem Schreiben ganzer Artikel.

Das Ziel unserer Forschung ist es herauszufinden, ob und unter welchen Umständen Crowd-Worker zur Generierung von kreativen Inhalten eingesetzt werden können. Aufgaben können dabei beispielhaft das Schreiben einer Pointe für Sitcoms oder das Kreieren eines neuen Fotowitzes sein. Allerdings kann der Aufgabensteller sich nicht sicher sein, dass die Crowd-Worker auch Inhalt in der gewünschten Qualität liefern. Bei kreativen Inhalten ist eine objektive Bewertung schwierig bis unmöglich. Wir sehen deshalb keine Alternative dazu, die Bewertung ebenfalls durch Crowd-Worker vornehmen zu lassen.

Als Teil unserer bisherigen Arbeit wurde eine konfigurierbare Software ("CreativeCrowd") entwickelt, die für eine Aufgabe bei MTurk mehrere kreative Antworten sowie entsprechende Bewertungen einsammelt und die Bezahlung der Worker, die gemäß vorgegebener Regeln entlohnt werden, selbständig vornimmt.

In unseren bisherigen Untersuchungen haben sich insbesondere die folgenden Probleme als schwerwiegend herausgestellt:

(1) Betrugsversuche (Spoof bzw. offensichtlich lieblos generierte Inhalte), aber auch Inhalt, der unbrauchbar ist, obwohl die Worker sich anscheinend bemüht haben, sind zahlreich.

(2) Bei der Verwendung von MTurk hat man gar keinen Einfluss auf die Auswahl der Worker für bestimmte Aufgaben. (Man kann lediglich einzelne Worker für alle Aufgaben sperren, die man dort publiziert.) Aus Forschungssicht wäre genau das jedoch sehr wünschenswert.

Aufgaben

Ihre Aufgabe besteht darin, für die bestehende Infrastruktur (MTurk und  CreativeCrowd insbesondere) Lösungen zu entwickeln, die eine verbesserte Steuerung/Kontrolle der Worker ermöglichen, wie folgt:

(a) Das erste o. g. Problem lässt sich zumindest abmildern, wenn Aufgabensteller die Möglichkeit haben, ihre Aufgabenstellung während eines Experiments noch anzupassen/zu verfeinern. Es geht insbesondere darum, nachträglich noch spezifizieren zu können, wie die kreativen Antworten nicht beschaffen sein sollen. Denn erfahrungsgemäß lässt sich nicht alles vorhersehen, sondern manche Anforderungen werden erst offensichtlich, wenn kreative Antworten mit ungewünschten Eigenschaften vorliegen. Das Erstellen von Aufgabenstellungen, insbesondere indem man bereits bestehende Aufgaben anpasst, soll möglichst komfortabel sein. Anders ausgedrückt geht es in diesem Aufgabenteil um die Erstellung einer geeigneten Benutzeroberfläche für Aufgabensteller.

(b) Das zweite Problem wollen wir angehen, indem Aufgaben nicht nur bei MTurk, sondern auch auf anderen Crowd-Plattformen -- mit anderen Regeln --bearbeitet werden. Beispielhaft sollen Sie eine Kopplung von CreativeCrowd mit einer Open-Source Plattform für Mikrotasks entwerfen und realisieren. Mit derartigen Plattformen können Experimentatoren dann selbst Populationen von Individuen zusammenstellen (bzw. eigene Populationen mit der mTurk-Workforce in kontrollierter Weise mischen). Da sich die MTurk auf konzeptioneller Ebene von anderen Plattformen unterscheidet, ist der Entwurf der angedachten Kopplung nicht trivial. Der Zusammenhang zu (a) besteht insbesondere darin, dass die Spezifikation der Aufgabenstellung Vorgaben enthalten darf, welche Worker was genau tun dürfen.

Die umgesetzte Software-Infrastruktur wollen wir insbesondere bei der Durchführung von Forschungsexperimenten mit verschiedenen Parametern und Bedingungen einsetzen.  Daher steht die Entwicklung einer modular gestalteten Lösung mit einer gewissen Flexibilität und einfacher Erweiterbarkeit im Vordergrund. Sollten Sie diese Aufgabe bearbeiten wollen, bitten wir Sie, im Anschluss Ihre Lösung unter einer nichtrestriktiven Software-Lizenz frei verfügbar zu machen.

Als Programmiersprache ist Java angedacht, hiervon können Sie nach Absprache jedoch gern abweichen.

"Ausführliches Lastenheft"