lecture 4: cs 6306 / info 6306: advanced human computation ... · readings: programming languages...

49
Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation Programming Languages

Upload: others

Post on 12-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Lecture 4:CS 6306 / INFO 6306:

Advanced Human Computation

Programming Languages

Page 2: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,
Page 3: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,
Page 4: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Readings: Programming Languages

• Required readings:• Barowy, D. W., Curtsinger, C., Berger, E. D., & McGregor, A. (2012). “Automan: A platform for

integrating human-based and digital computation.” ACM SIGPLAN Notices, 47(10), 639-654.• Little, Greg, Lydia B. Chilton, Max Goldman, and Robert C. Miller. "Turkit: human computation

algorithms on mechanical turk." In Proceedings of the 23nd annual ACM symposium on User interface software and technology, pp. 57-66. ACM, 2010.

• Additional readings:• Ahmad, S., Battle, A., Malkani, Z. and Kamvar, S., 2011. "The Jabberwocky programming

environment for structured social computing.” In Proceedings of the 24th annual ACM symposium on user interface software and technology (pp. 53-64). ACM.

• Kittur, A., Khamkar, S., André, P. and Kraut, R., 2012. “CrowdWeaver: visually managing complex crowd work. In Proceedings of the ACM 2012 conference on Computer Supported Cooperative Work (pp. 1033-1036). ACM.

• Patrick Minder, Abraham Bernstein, ”CrowdLang: A Programming Language for the Systematic Exploration of Human Computation Systems.” Fourth International Conference on Social Informatics, 2012.

• Tranquillini, S., Daniel, F., Kucherbaev, P., & Casati, F. (2015). “Modeling, enacting, and integrating custom crowdsourcing processes.” ACM Transactions on the Web, 9(2), 7.

Page 5: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Readings: Programming Languages

• Additional readings:• From tasks to microtasks:

• Kittur, Aniket, Boris Smus, Susheel Khamkar, and Robert E. Kraut. "Crowdforge: Crowdsourcing complex work." In Proceedings of the 24th annual ACM symposium on User interface software and technology, pp. 43-52. ACM, 2011.

• Kulkarni, A. P., Can, M., & Hartmann, B. (2011, May). “Turkomatic: automatic recursive task and workflow design for mechanical turk.” In CHI'11 Extended Abstracts on Human Factors in Computing Systems (pp. 2053-2058). ACM.

• Tools:• Gureckis, T.M., Martin, J., McDonnell, J., Rich, A.S., Markant, D., Coenen, A., Halpern, D., Hamrick, J.B. and

Chan, P., 2015. “psiTurk: An open-source framework for conducting replicable behavioral experiments online.” Behavior research methods, pp.1-14.

• Litman, L., Robinson, J. and Abberbock, T., 2016. “TurkPrime. com: A versatile crowdsourcing data acquisition platform for the behavioral sciences.” Behavior research methods, pp.1-10.

• Peer, Eyal, Gabriele Paolacci, Jesse Chandler, and Pam Mueller. "Selectively recruiting participants from Amazon Mechanical Turk using qualtrics." Available at SSRN 2100631 (2012).

• Tosch, Emma, and Emery D. Berger. "Surveyman: Programming and automatically debugging surveys." ACM SIGPLAN Notices. Vol. 49. No. 10. ACM, 2014.

• Database perspective (next time):• Atsuyuki Morishima, Norihide Shinagawa, Tomomi Mitsuishi, Hideto Aoki, Shun Fukusumi. “CyLog/Crowd4U: A

Declarative Platform for Complex Data-centric Crowdsourcing.” PVLDB 5(12): 1918-1921 (2012)

Page 6: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Programming Languages and Environments for Micro-labor

What does software engineering look like when people are subroutines?

• Programming tools

• Debugging environments

• Runtime execution monitoring

• Design patterns

• Etc.

Page 7: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

TurkIt

Page 8: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

TurkIt

• Javascript with API for MTurk operations

Page 9: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

TurkIt: Motivating Challenges

• Calling MTurk costs money

• “Runtimes” can span hours or days

• Restarts after crashes – don’t want to pay for redundant work

• Workers might not complete tasks

• “Crash-and-rerun programming model”

Page 10: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

TurkIt: Once Primitive

Page 11: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

TurkIt: Once Primitive

• Stores result of function call in a database

• When rerun checks if the database already has the answer

• Programmer can clear database when program changes

• TurkIt detects when program and database are out of sync and crashes with appropriate error message

• Allows incremental programming – keep adding steps, saves earlier steps

• Can add retroactive print-line debugging

Page 12: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

TurkIt: Other Primitives

• Crash:• A programmer-evoked exception• Example: Wait some period of time, then check if completed, if not crash – TurkIt

waits, then reruns, and crashes again if not completed, etc.

• Fork:• Allows spawning a process that creates a parallel execution path• Useful for parallelizing MTurk HITs

• Join: Waits for parallel paths to complete• mturk.prompt: Parameters = text to print, and number of workers• createHIT: Calls once to create a hit• waitForHIT: Crashes if HIT is not finished• Providing HITs using more complex web pages hosted by TurkIt

Page 13: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

TurkIt: Issues Discovered

• Functions like math.random need to be in a once

• Confusion that it allowed parallelization

• Confusion on what was recorded / what could be modified when rerun

• Limited parallelization

• Last version: January 2013

Page 14: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

TurkIt: Assessment

• Sample programs

• Runtime: Human vs computer

• Usability: anecdotal

Page 15: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

AutoMan: Motivating Challenges

• Complex use of workers in programs

• Determining pay and time for tasks

• Quality of results

Page 16: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

AutoMan

Page 17: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

AutoMan Features

• Can specify desired confidence of results

• Randomizes choices in multiple choice questions

• Can specify timeout• Uses doubling strategy

• Can increase number of tasks spawned – pay more, better latency

• Automatically increases pay if HITs need longer time to accomplish

• Manages payments and non-payments

• Requires both positive and negative versions of questions

Page 18: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

AutoMan Issues

• Worker collusion

• Impact of rejections

• Assumptions built into AutoMan

Page 19: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

AutoMan: Assessment

• “Experience report”

• Graphs about quality management approach

Page 20: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

TurkIt vs AutoMan

Page 21: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Jabberwocky: Software Stack for Human Computation

• Dormouse: Virtual machine – support different microlabor platforms

• ManReduce: Programming “framework” akin to MapReduce

• Dog: Database-looking programming language for ManReduce

• Assessment: Use examples

Page 22: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

CrowdLang

• “Flowchart” for Human Computation

• Three components:• CrowdLang Library: Support code reuse

• CrowdLang Engine: Runtime execution

• CrowdLang Integrator: Virtual machine for human computation platforms

Page 23: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

CrowdLang Approach

• Flowcharting primitives:

Page 24: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

CrowdLang: Assesssment

• Can express different human computation design patterns

• Could generate new combination that outperformed existing approaches on a translation task

Page 25: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Crowd Computer(“Modeling, Enacting, and Integrating Custom Crowdsourcing Processes”)

• Using a business process management modeling and notation (BPMN) approach

• Elements:• Flexible CS platform for programming custom CS logics for individual and

structured tasks

• BPMN–based modeling language

• Visual editor

• Implementation on top of standard BPM technology

Page 26: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Crowd Computer: Requirements

Page 27: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Crowd Computer: Requirements

Page 28: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Crowd Computer: Architecture

Page 29: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Crowd Computer: Architecture

Page 30: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Crowd Computer: Metadata Model

Page 31: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Crowd Computer: Process Diagram

Page 32: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Crowd Computer: (Simplified) Process Diagram of the Marketplace Tactic

Page 33: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Crowd Computer: Assessment

• Case studies

• Comparison

Page 34: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

CrowdForge: Motivation

• Dynamic partitioning by workers themselves

• Multi-level

• Complex workflows

• Multiple quality assurance approaches

• Aggregation can be either automated or by workers

Page 35: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

CrowdForge: Motivation

• Malone, T. and Crowston, K. The interdisciplinary study of coordination. ACM Computing Surveys, 26, (1994), 87-119.

• Analogizes between organizations and distributed computing• Partitioning work into parallelizable tasks

• Mapping tasks to workers/processors

• Managing the dependencies between tasks

• Maintaining quality controls

Page 36: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

CrowdForge

• Specify programs using a MapReduce model

• Break up tasks into task primitives:• Partition tasks into smaller subtasks

• Map tasks performed by workers

• Reduce tasks that merge work intoa single result

Page 37: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Crowdforge Limitations

• No recursion or iteration

• Presumes decomposability that may not be achievable

• Subtasks may not be as independent as initially believed

• Map/Reduce framing may make things more complicated rather than less

Page 38: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

CrowdForge: Assessment

• One case study

Page 39: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Turkomatic

• Writing divide-and-conquerprograms where the workersdefine the program andexecute it

Page 40: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Turkomatic

Page 41: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Turkomatic

Page 42: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Turkomatic

Page 43: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Turkomatic

Page 44: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Turkomatic

Page 45: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Turkomatic Challenges

• Success usually required requester intervention

• Starved tasks

• Derailed tasks• Bad work accepted

• Poor instructional writing

• One-size-fits-all model

Page 46: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Turkomatic: Assessment

• Three case studies• Tasks completed?

• How many interventions?

Page 47: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

SurveyMan

• (AMT often used for surveys/questionnaires)

• Challenges for surveys:• Question order effects

• Question wording effects

• Survey abandonment

• Inattentive/random responses

• Observation: Analogous to programming

• Solution: Treat survey creation as programming

• Assessment: Case studies

Page 48: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Other Tools for AMT

• psiTurk:• Gureckis, T.M., Martin, J., McDonnell, J., Rich, A.S., Markant, D., Coenen, A., Halpern,

D., Hamrick, J.B. and Chan, P., 2015. “psiTurk: An open-source framework for conducting replicable behavioral experiments online.” Behavior research methods, pp.1-14.

• Qualtrics:• Peer, Eyal, Gabriele Paolacci, Jesse Chandler, and Pam Mueller. "Selectively recruiting

participants from Amazon Mechanical Turk using qualtrics." Available at SSRN 2100631 (2012).

• TurkGate:• http://gideongoldin.github.io/TurkGate/

• TurkPrime:• Litman, L., Robinson, J. and Abberbock, T., 2016. “TurkPrime.com: A versatile

crowdsourcing data acquisition platform for the behavioral sciences.” Behavior research methods, pp.1-10.

Page 49: Lecture 4: CS 6306 / INFO 6306: Advanced Human Computation ... · Readings: Programming Languages •Additional readings: •From tasks to microtasks: • Kittur, Aniket, Boris Smus,

Next Time: Database Perspective

• Required Readings:• Franklin, M.J., Kossmann, D., Kraska, T., Ramesh, S. and Xin, R., 2011. “CrowdDB: answering queries with

crowdsourcing.” In Proceedings of the 2011 ACM SIGMOD International Conference on Management of data(pp. 61-72). ACM.

• Marcus, A., Wu, E., Karger, D.R., Madden, S. and Miller, R.C., 2011. “Crowdsourced databases: Query processing with people.” In Proceedings of the 5th Biennial Conference on Innovative Data Systems Research (CIDR 2011).

• Additional Readings:• Davidson, S.B., Khanna, S., Milo, T. and Roy, S., 2013. “Using the crowd for top-k and group-by queries.”

In Proceedings of the 16th International Conference on Database Theory (pp. 225-236). ACM.• Guo, S., Parameswaran, A. and Garcia-Molina, H., 2012. “So who won?: dynamic max discovery with the crowd.”

In Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data (pp. 385-396). ACM.• Marcus, A., Wu, E., Karger, D., Madden, S. and Miller, R., 2011. “Human-powered sorts and joins.” Proceedings of

VLDB, 5(1), pp.13-24.• Parameswaran, A.G., Park, H., Garcia-Molina, H., Polyzotis, N. and Widom, J., 2012. “Deco: declarative

crowdsourcing.” In Proceedings of the 21st ACM international conference on Information and knowledge management (pp. 1203-1212). ACM.

• Wang, J., Kraska, T., Franklin, M.J. and Feng, J., 2012. “Crowder: Crowdsourcing entity resolution.” Proceedings of VLDB,5(11), pp.1483-1494.5