はじめに
以下では、Amazon Mechanical Turk (MTurk)上で使われる様々な概念について説明を記しておきます。
意味を知りたい時に辞書として引いたり、注意事項が知りたい時に読んでもらえると幸いです。
なお、下記のコンテンツはある程度プログラミングの知識があるリクエスタ視点で書かれています。
一部Amazon Mechanical Turk APIの知識を伴いますので、適宜公式ドキュメントも合わせてご参照ください。
書きかけの記事です。随時更新していきます。
用語
Requester
定義
リクエスターと読みます。HIT(マイクロタスク)を所有し、ワーカーに対して依頼するユーザー。
アカウント作成
ここ(Sandboxはここ)から。Amazon.com(日本のAmazon.co.jpとは異なる)のアカウントでログインし、そこへMTurkリクエスタ用アカウントを別途作成して紐付けることになります。
Worker
定義
ワーカーと読みます。HITを作業し、報酬を受け取るユーザー。2021年1月現在、日本からも登録が可能。
稼いだ報酬は銀行口座に米ドル、またはAmazon.comギフトカードとして換金できる1。
アカウント作成
ここ(Sandboxはここ)から。リクエスタと同様、Amazon.com(日本のAmazon.co.jpとは異なる)のアカウントでログインし、そこへMTurkワーカー用アカウントを別途作成して紐付けることになります。
本番アカウントの承認には2日ほどかかる場合があるので注意。
HIT
定義
ヒットと読みます。MTurkにおいてワーカーが実際に作業を行い報酬を得るという手順を踏むための最小単位で、実体としては1つの静的なウェブページを指します。
ワーカーは普段、以下のような**HITグループ(後述)**の一覧ページから、
あるグループにて公開されているHITを確認(Discover)したのち、そのHITの1つを試し見(Preview)するか、あるいは回答権を取得(Accept)します。その時、以下のような画面が提示されます。
ここでは、「Receipt Transcription」というHITグループに含まれる、1万を超えるHITのうちの1つ(ランダムに選ばれる)がページ内のIFrameとして組み込まれて表示されます。このHITで作業し回答を提出(Submit)した結果が、UI上部に示された額の報酬が支払われる対象となります。この時ウェブページ全体が一度リロードされ、他のHITの回答権がまだあれば、それらのうちどれか一つがランダムに選ばれて表示されます。
Sandbox
定義
本番環境のプラットフォーム(本物のワーカーへタスクを依頼する場所)とそっくりに作られたテスト環境。リクエスタ側・ワーカー側どちらも存在するが、いずれもリクエスタが開発作業中にテストできるようにすることを目的として用意されています。本番環境とは別にMTurkアカウントの作成が必要です。
Sandboxプラットフォームに入ると、以下のようにページ上部にオレンジ色の帯が入るのが目印。
留意事項
HITを開発して本番環境に公開する前に、必ずSandboxで動作テストをしましょう。開発したHITのウェブページは、バグや不具合を含むことで、Submitに失敗する・Submitボタンが押せない・メディアがリンク切れしている・制限時間の設定が短すぎる など、エラーが非常に発生しやすいです。
ここを怠ると、数々のワーカーからのメールへの返信と補填の作業に追われることになります。
Assignment
あるHITにおける、あるワーカーの作業情報を指します。HITがAccept/Submit/承認(Approve)または棄却(Reject)されたときのタイムスタンプや、回答内容そのものの情報を持っています。
AssignmentIdは、ワーカーがHITをAcceptしたタイミングで発行されます。ただし、そのAssignmentにおいてHITがSubmitされない限り、APIからは参照不可能です(存在しないものとして扱われる)。
HITとAssignmentの関係は1対多です。Assignmentの数は、0以上かつHITのMaxAssignments
の数以下となります。
以前、同じようなタイミングで同じHITをAcceptした異なるワーカーに同一のAsssignmentIdが振られた事例があった気がした... おそらくMTurkのバグ?
HITGroup
HITType
HITLayout
HIT#Question
Qualification
MTurk API
Operations
注意事項があるもののみ記載しています。
全てのOperationリストはこちら(公式ドキュメント)。
AssociateQualificationWithWorker [doc]
Qualificationをワーカーに付与する。
- 付与したらワーカーにメールで知らせる
SendNotification
がデフォルトで有効化されている。
CreateHITWithHITType [doc]
HITTypeを作成する。CreateHIT
するときに指定するとパラメータが少なくなって楽。
- 消す方法が用意されてない。
GetAccountBalance [doc]
リクエスターアカウントのプリペイド残高を取得する。
- Sandboxの場合、いつも$10000.00が返る。
- プリペイドではないAWS Billingに支払い方法を変更した場合、いつも$0.00が返る。
ListHITs [doc]
作成したHIT一覧を返す。
- 日時昇順。
-
MaxResults
(一度に返すHIT件数)の上限は100。 - (
ListHITs
に限ったことではないが)MaxResults
に収まりきらなかったデータは、その時返ってきたNextToken
を次の実行のNextToken
パラメータに渡せばOK。一番後ろにたどり着いた時点でNextToken=None
となる。
NotifyWorkers [doc]
ワーカー(複数可)にメールを送る。
- 一度も自分のHITをSubmitしたことがない(=いずれのHITにもAssignmentの記録が存在しない)ワーカーには送れない。
- ワーカーからメールが来たor返ってきた時には直接メールに返信でOK。
RejectAssignment [doc]
ワーカー回答を棄却する(=報酬を支払わない)。
- 棄却した後も、回答から30日以内かつHITが消えていなければ、
ApproveAssignment
をOverrideRejection=True
で実行すれば承認できる。
SendBonus [doc]
ワーカーにボーナス(追加の報酬)を支払う。
- 回答を受け付けた後でないと実行できない。(
AssignmentId
パラメータが指定できないので) - メールの文面にそのまま載る
Reason
パラメータで、ボーナス額の根拠をしっかり示してあげるのを推奨。 - 「基本報酬を安くしてボーナスを沢山支払う」ようなHITはバッドプラクティス。本当に払ってくれるかどうか疑わしいお金は金額に関わらずワーカーに好まれない。基本報酬は満足ラインで保証した上で、報酬額が満たなかった場合に補填したり、良い働きをしたワーカーにチップ的感覚で払うのが健全な使い方。
UpdateExpirationForHIT [doc]
HITの有効期限を変更する。
- 今すぐ有効期限切れにしたければ今より前の適当な時間を渡せばOK。
-
Amazon Mechanical Turk FAQs - How do I get paid? https://www.mturk.com/worker/help ↩