Variadic
Element
Definition
Allowing users to input multiple items or examples into a model for inference
Applications
Exploratory Data Science・DevOps・Design Research

Work In Progress

Our Elements guide is still in progress, and therefore lacks full visual and technical assets. We hope to release them by summer of 2020. Thanks for reading Lingua Franca!

Overview

When users interact with AI systems, especially AI systems that must form a robust judgment, it helps to allow the user to provide varying amounts of information (variadic input). For example, if an AI allows users to recognize objects by taking photos, a user should be able to take multiple pictures to add different angles or features. This forms a naturally intuitive interaction—if the task seems straightforward, a single photo may suffice. However, if the user cares about accuracy, or if past usage of the system have yielded inaccurate results, the user can simply increase the amount of data they feed to the system. While this small tweak may seem highly obvious, the vast majority of AI systems are designed to expect only a single piece of input data.

Theory

The term variadic comes from computer science, where a variadic function is one that allows a variable number of arguments[1]. We repurpose the term here for both symbolic as well as technical reasons. At a basic programming level, we believe that most application programming interfaces (APIs) for machine learning models should themselves be variadic functions, accepting variable amounts of input data. However, for an AI interface to be variadic does not necessitate that the API be so as well.

The benefit of a variadic input to an AI is that users naturally form robust habits around how many inputs to use to the system, and in what context. In the case of image classification, users can typically guess when their images are difficult to classify due to background details or extraneous information.

Implementation

A variadic AI can be implemented either as a model that takes in a variable number of inputs or as a model that is executed once per input then aggregated. Models that can take variable-quantity inputs include recurrent neural networks such as an LSTM[2]. Aggregating multiple outputs from a model can be as simple as a combined softmax[3] or through any voting algorithm such as ranked voting[4].

Footnotes


  1. Variadic Function on Wikipedia ↩︎

  2. Long Short-Term Memory on Wikipedia ↩︎

  3. Softmax Function on Wikipedia ↩︎

  4. Ranked Voting on Wikipedia ↩︎