-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
13 changed files
with
158 additions
and
46 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,23 @@ | ||
# Treatments | ||
|
||
Treatments can have structured data which are made | ||
available to the front-end app under `TurkServer.treatment()`, making | ||
them a useful way to control the display of different parts of the | ||
user interface or app behavior. They can be defined for batches, | ||
users, or worlds. | ||
Being able to show users different instructions, interfaces, or information is | ||
an important part of conducting controlled experiments. | ||
|
||
TurkServer accomplishes this through **treatments**, containing structured data | ||
that are made available to the front-end app under `TurkServer.treatment()` as a | ||
[reactive variable][rv] in Meteor. | ||
|
||
[rv]: http://guide.meteor.com/data-loading.html#stores | ||
|
||
Treatments contain arbitrary key-value pairs, and can be assigned to both users | ||
and worlds. The client code for a user in a particular world will have access to | ||
all of the treatment data for both the user and the world, creating a useful way | ||
to programming control the display of different parts of the user interface | ||
(such as instructions) and mechanisms of interaction. Since treatment data is | ||
reactive, it is easy to use with [Blaze], Meteor's UI rendering system. | ||
|
||
[blaze]: http://guide.meteor.com/blaze.html | ||
|
||
Treatments can also be viewed in the [admin interface](admin-console.md). | ||
|
||
Additional details and examples of treatments to be added. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,37 @@ | ||
# Worlds and Assignment | ||
|
||
TurkServer uses the concept of **batches** to logically group | ||
instances of experiments together. Each batch limits repeat | ||
participation. | ||
TurkServer uses Meteor's [powerful publication-based data model][meteor-pubsub] | ||
to create multiple *worlds* or *instances* within which data can be synchronized | ||
among a group of users in real time. This makes it easy to build and study | ||
mechanisms of real-time interaction. However, the real utility of this | ||
abstraction is the ability to create new worlds and assign or re-assign users | ||
among them, allowing for flexibility of many experiment designs while keeping | ||
programming simple. | ||
|
||
Batch controls the assignment of incoming users to an [assigner](../design/assigning.md). | ||
[meteor-pubsub]: http://guide.meteor.com/data-loading.html | ||
|
||
TurkServer uses the concept of **batches** to logically group instances of | ||
experiments together. Each batch allows for some high-level parameters to be | ||
set, such as a limit on repeat participation. | ||
|
||
Each batch has a **lobby** or waiting area, a state that users are in when they | ||
are not part of any world. An **[assigner](../design/assigning.md)** controls | ||
the state of the waiting area and therefore can arrange arriving or returning | ||
users to different worlds. | ||
|
||
A world can return users to the lobby once a task is complete, allowing for | ||
users to be assigned to different groups, matched with different partners, and | ||
so on. The assigner can also send users to an **exit survey** to complete the | ||
task and debrief. | ||
|
||
## Examples | ||
|
||
To be completed. | ||
|
||
## Additional References | ||
|
||
TurkServer's multiple worlds abstraction is implemented by the [partitioner] | ||
package in Meteor, which was written specifically for TurkServer. | ||
|
||
[partitioner]: https://github.com/mizzao/meteor-partitioner | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,41 @@ | ||
# Assignment and Matching | ||
|
||
### Matching Issues: | ||
Experiments with individual users are simple and each participant can proceed | ||
independently. Use the [`SimpleAssigner`][sa] to create this common form of | ||
experiment in TurkServer, but gain all the benefits of the live experimenter | ||
view. | ||
|
||
[sa]: http://turkserver.meteorapp.com/#Assigners-SimpleAssigner | ||
|
||
- It's important to make sure Turkers aren't waiting an inordinate amount of time for another user to arrive before the experiment starts | ||
- While this doesn't happen too often, it **will** happen at least 10% of the time **especially** if your HIT has been live for a while | ||
- One solution is to monitor the amount of the time a user has spent in the lobby and if it exceeds some threshold, push them to the TS Exit survey and pay them for their time (e.g. half the HIT amount) | ||
- This sucks because we have to pay for 0 data, but we can write it off as the cost of saving lab reputation | ||
* Another solution for users that do wait an exceedingly long time and eventually complete your experiment is to pay them a bonus for being patient | ||
When matching users together, however, the precise details of the matching | ||
mechanism become an important part of the experiment design. This is because | ||
users who are waiting an inordinate amount of time for partner(s) to arrive to | ||
start an experiment can either get frustrated, or go on to another task and | ||
become inactive. This can aggravate problems of [disconnection and dropout](disconnection.md) | ||
and result in worse quality data. | ||
|
||
- When running really large groups, schedule people in advance. | ||
Depending on how you post your HITs and how attractive they are, this may happen | ||
rarely. However, it's still possible, especially if your HIT has been posted | ||
for a while and the supply of workers is beginning to dwindle. Here are a few | ||
ways to work around this issue: | ||
|
||
- Configure your [assigner](assigning.md) to to monitor the amount of the time | ||
users are spending in the lobby. If it exceeds some threshold, allow them to | ||
submit the task and pay them for their time (e.g. half the HIT amount). Although | ||
this can be viewed as paying something for nothing, it's important to [preserve the reputation](../launching/forums-reputation.md) | ||
of your requester account in order to recruit workers. | ||
|
||
- For users that do wait an exceedingly long time and eventually complete your | ||
experiment, consider paying them a bonus for their patience. | ||
|
||
- When running really large groups, pre-recruit participants with an | ||
informational task and schedule a participation session in advance. TurkServer | ||
provides functions to e-mail users for this purpose. Then, you can expect all | ||
users to arrive at once and be ready to participate. | ||
|
||
## Assigner Examples | ||
|
||
To be added. For now, take a look at some [source code][src] for inspiration. | ||
|
||
[src]: https://github.com/TurkServer/turkserver-meteor/tree/master/server | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,13 @@ | ||
# Minimizing Attrition | ||
|
||
- How to [minimize attrition](attrition.md) in experiments that run over a long | ||
period of time or over multiple days. | ||
|
||
Attrition in your experiments will appear as disconnected users in TurkServer | ||
who have not completed their task. This will result in incomplete data and | ||
likely unhappy participants. Attrition can further cause problems when users are | ||
matched with partners. | ||
|
||
- Set expectations for involvement | ||
- Financial incentives | ||
- Soft incentives |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,20 @@ | ||
# Providing Good Instructions | ||
|
||
### Social Issues: | ||
When running experiments with crowdsourcing systems, users benefit greatly from | ||
good instructions and will be more attentive to the task. Poorly worded or | ||
incomprehensible instructions will result in bad quality data. The [tutorials][tutorials] | ||
package for Meteor was written alongside TurkServer to provide interactive instructions for | ||
how to use a Meteor app, with this use case in mind. | ||
|
||
* It's obviously important that Turkers understand your experiment and don't simple "click-through" to get their payment | ||
* Instituting comprehension questions that prevent a user from advancing or moving past a certain point in your meteor app is a good way to filter out this kind of behavior | ||
* [tutorials][1] | ||
[![tutorials example](https://j.gifs.com/W6QO44.gif)](https://www.youtube.com/watch?v=smax46TNPPk) | ||
|
||
When giving instructions, ensure that participants will understand your | ||
experiment and can't simply "click through" to get paid. A good way to filter | ||
out this kind of behavior is to provide comprehension questions that prevent a | ||
user from advancing or moving past a certain point in your meteor app without | ||
understanding the task. The tutorials package makes it easier to implement these | ||
ideas. | ||
|
||
[1]: https://github.com/mizzao/meteor-tutorials | ||
For more information, see the documentation for the [tutorials] package. | ||
|
||
[tutorials]: https://github.com/mizzao/meteor-tutorials |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,16 @@ | ||
# Helpful Software | ||
|
||
Meteor already makes it pretty easy to design a reactive and responsive user interface, but you may find some of the following packages useful. | ||
Meteor already makes it pretty easy to design a reactive and responsive user | ||
interface, but you may find some of the following packages useful. For the most | ||
part, Meteor makes the process of [installing packages][install-packages] in an | ||
app a one-line command. TurkServer itself is a Meteor package. | ||
|
||
[install-packages]: http://guide.meteor.com/using-atmosphere-packages.html | ||
|
||
- [Bootstrap](http://getbootstrap.com/), a CSS framework for front-end development. | ||
- [Tutorials](https://github.com/mizzao/meteor-tutorials), a Meteor-specific tutorials package that I wrote for providing interactive and concise instructions for web apps. Very useful for delivering easily digestible experiment instructions. | ||
- [Tutorials](https://github.com/mizzao/meteor-tutorials), a Meteor-specific | ||
tutorials package that for providing interactive and concise instructions for | ||
web apps. It is very useful for delivering easily digestible experiment | ||
instructions. | ||
|
||
Add your links to helpful packages here! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,13 @@ | ||
# Working with Workers | ||
|
||
Best crowdsourcing practices: | ||
http://wiki.wearedynamo.org/index.php/Guidelines_for_Academic_Requesters | ||
|
||
- Treat workers like people. They have a community, and talk to each other. | ||
- Active worker forums | ||
- Workers are [active on many forums][ygsv16]. They communicate there, and you can communicate with them! | ||
- Monitor your reputation on [TurkOpticon][to]. A good reputation means that | ||
you will be able to recruit more workers and they will be more diligent. | ||
- [WeAreDynamo] is a community of workers aiming to improve practices on MTurk. | ||
- Consider [best practices][bp] for crowdsourcing. | ||
|
||
[ygsv16]: http://people.seas.harvard.edu/~myin/WWW-16/turker_network1.pdf | ||
[to]: https://turkopticon.ucsd.edu | ||
|
||
- http://www.wearedynamo.org/ | ||
- [best practices][bp] | ||
|
||
[WeAreDynamo]: http://www.wearedynamo.org/ | ||
[bp]: http://wiki.wearedynamo.org/index.php/Guidelines_for_Academic_Requesters |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters