REVERTING ACCIDENTAL KEY TAPS USING CONTEXTUAL BANDITS

A computing device (e.g., a mobile phone, camera, tablet computer, etc.) uses a contextual bandit machine-learning model (e.g., an artificial intelligence model) for reverting accidental user inputs. The computing device may execute an application that employs a user interface to facilitate human-machine interaction. The computing device may collect contextual user data and use a probabilistic model (e.g., a contextual bandit machine learning module) to analyze the collected contextual data to determine a confidence interval for specific user input. The application may receive an indication of the user input, e.g., tapping a particular icon within a graphical user interface (GUI) of the computing device to send to another user. The user may accidentally tap the wrong icon and unknowingly send an unintended communication to the other user. The contextual bandit, may, upon receiving and analyzing context data, determine, within a confidence interval, that the user likely did not intend to send the tapped icon. In this case, the computing device may display a message confirming the user’s intention to send the selected icon. The contextual bandit updates the probabilistic model based on the user’s response to improve the model’s future decisions of whether to query the user about suspected incorrect user inputs. DESCRIPTION A user may interact with applications executing on a computing device (e.g., a mobile phone, tablet computer, smart phone, desktop computer, or the like). In some examples, a computing device may include or communicate with a touch-sensitive display that may enable a 2 Carbune and Damian: REVERTING ACCIDENTAL KEY TAPS USING CONTEXTUAL BANDITS Published by Technical Disclosure Commons, 2019 user to interact with applications executing on the computing device. Some applications may provide functionality through receiving indications of various user inputs, such as key taps. Due to the physical size of the screen and a user’s ability to carefully, accurately tap different icons, the user may occasionally tap something other than their intended target, and an unintended message is sent (e.g., a wrong gif or sticker in a messaging application) or an unintended action is performed (e.g., a wrong friend request sent on a social media application). The user should be provided with the ability to undo most of their actions determined to be likely accidental, without affecting the user experience for intended actions. This disclosure provides techniques that may mitigate some of the unintended consequences of incorrect taps, using a probabilistic model built to indicate how likely a certain action was actually desired to be performed by the user based on context such as the previous actions, context of the application where the action is being executed, and the action itself. This disclosure describes a machine-learning based contextual bandit model that, given a state as input (contextual signals), outputs an indication of whether an action should be executed immediately or delayed by requesting the user to confirm. These two options may be referred to as two “arms” of a multi-arm contextual bandit reward model. Unlike supervised machine learning, which requests a user to confirm after every user action, a contextual bandit model’s unsupervised learning process attempts to optimize its output based on previous user responses to the user confirmation requests. These previous user responses may have been based on previous user contexts. For example, for a particular action the contextual bandit model may be used to determine, based on previous confirmations for the particular action, that the user has a certain probability to confirm the particular action. If the certain probability satisfies a threshold, the contextual bandit will output a request to the user to confirm the action. That is, if it is more 3 Defensive Publications Series, Art. 2364 [2019] https://www.tdcommons.org/dpubs_series/2364 likely than not that the user selected an incorrect action, the contextual bandit requests a confirmation. Two competing interests are at play in a contextual bandit’s learning process: to collect preferences by requesting the user to confirm, and to determine whether to execute the action immediately. That is, to either gain information to make the contextual bandit more precise or decide based on less information. Although the contextual bandit may incorrectly request the user to confirm when the user intended the action (e.g., to attach a gif), the contextual bandit will have more information to include in a corpus for future decision making. For example, the user wishes to select an icon (e.g., from among twenty icons) within the application to send to a coworker; each of the twenty icons have an associated probability distribution. The contextual bandit may analyze the selected icon and any previous uses of the selected icon with respect to any contextual signals associated with previous uses of the selected icon. The contextual bandit may not make any inferences about any of the other nineteen icons from the selected icon. A probabilistic two-arm reward model, which depends on the selected icon and associated previous selected icon usage, determines whether the contextual bandit will send the request for confirmation. Figure 1 illustrates a computing device having a user interface (UI) device, an output device, and a contextual bandit module. Example computing devices include mobile phones, tablets, digital cameras, laptops, gaming systems, e-book readers, televisions, wearable computing devices, or any other type of mobile or non-mobile computing device connected to a display that may transmit messages (e.g., emails, text, SMS, etc.). The example computing device may output a request asking a user to confirm executing an action (e.g., attaching a gif to an email). For instance, the computing device may collect data indicative of contextual signals, 4 Carbune and Damian: REVERTING ACCIDENTAL KEY TAPS USING CONTEXTUAL BANDITS Published by Technical Disclosure Commons, 2019 including application specific text, images, videos, screenshot data, actions taken by the user within a predetermined timeframe (e.g., within the past twenty milliseconds), etc. The user interface device may function as an input device for the computing device, such as using a presence-sensitive input screen. The output device may, e.g., attach a gif the user selects to an email, text message, etc. The output device may function as an output (e.g., display) device using one or more display devices, such as a liquid crystal display (LCD), dot matrix display, light emitting diode (LED) display, organic light-emitting diode (OLED) display, e-ink, or similar monochrome or color display capable of outputting visible information to a user. The user interface device may control a graphical user interface including determining what the user interface device presents and what information is exchanged between the user interface device and other applications or components (e.g., the output device and the contextual bandit module) of the computing device. For example, the user interface device may receive information from a component of computing device for generating a user interface and elements 5 Defensive Publications Series, Art. 2364 [2019] https://www.tdcommons.org/dpubs_series/2364 thereof. In response, the user interface device may output instructions and information, causing the graphical user interface to display an application. The contextual bandit may receive information from the user interface device in response to inputs detected at locations of a screen of the user interface device at which elements of the graphical user interface are displayed. The user interface device disseminates information about inputs detected by the graphical user interface to other components of the computing device for interpreting the inputs. The user interface device may cause the graphical user interface to facilitate interaction between users and the computing device. For example, the user interface device may cause the graphical user interface to display content associated with the application, including icons that a user may select to include in the application (e.g., a correspondence application). Figure 2 illustrates the contextual bandit module’s learning process. In some examples, the computing device may receive user input to perform an action (e.g., to send an emoji with a message to a coworker). Upon receiving an indication of the action, the contextual bandit module may refer to a stored corpus of information regarding the particular emoji and all historical user responses to requests to confirm whether the user intended to send the particular emoji. The contextual bandit module may then determine, based on the emoji-corpus and the contextual signals, whether the user likely intends to include the emoji in the message. In response to the contextual bandit module determining it is likely that the user intends to send the emoji, the contextual bandit module causes computing device to send the message without asking the user to confirm. In response to the contextual bandit module determining it is unlikely that the user intends for that particular emoji to be included in the message, the contextual bandit module may cause the output device to output a request asking 6 Carbune and Damian: REVERTING ACCIDENTAL KEY TAPS USING CONTEXTUAL BANDITS Published by Technical Disclosure Commons, 2019 the user to confirm the intention to send the emoji. Indications of received responses by the user may be stored within the emoji-corpus for further use. The contextual bandit module uses context features and a context model. As examples, the contextual signals that may form the input data (state) for the contextual bandit algorithm may include: application context including application specific content, such as text content for a communication application, v