Input-Output Example Encoding for Neural Program Induction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing neural network architectures for program induction are computationally expensive, hard to train, and require separate models for each task, making them inefficient and difficult to interpret.

Innovation Solution

The use of a cross-correlation input/output network and a recursive-reverse-recursive neural network (R3NN) to encode input-output examples and generate programs incrementally, allowing for the construction of interpretable programs consistent with given specifications without explicit search over the vast space of possible programs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional neural network architectures are used for program induction, then the model can learn mappings from input-output examples, but the computational cost becomes expensive and training becomes difficult

Engineering Contradiction:
Improveprogram induction accuracyVSAvoidcomputational cost
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent segments the program induction task into character-level processing using LSTM networks. Instead of processing entire programs at once, the system processes input and output examples character by character, generating feature vectors that capture local patterns. This segmentation reduces computational complexity while maintaining induction accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces cross-correlation as an intermediary mechanism between input and output feature vectors. The cross-correlation operation efficiently identifies matching patterns without requiring exhaustive search through the program space, reducing computational cost while preserving the ability to induce correct programs.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If traditional neural network architectures are used for program induction, then the model can generalize to new test inputs, but the model requires separate training for each task and is hard to train

Engineering Contradiction:
Improvegeneralization capabilityVSAvoidtraining difficulty
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent creates a universal program induction system that can handle multiple tasks through a single trained model. The LSTM-based architecture with cross-correlation learns task-agnostic features from input-output examples, enabling the same model to generalize across different program induction tasks without requiring separate training for each task.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent transforms the program induction problem into a parameter estimation problem where the system learns optimal parameters for character processing and cross-correlation operations. By changing the representation parameters to character-level features and using cross-correlation instead of exhaustive search, the system becomes easier to train while maintaining generalization capability.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If exhaustive search over program space is used, then complete programs can be found consistent with specifications, but the search space is vast and the process is inefficient

Engineering Contradiction:
Improveprogram correctnessVSAvoidprogram synthesis efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary character-level processing of input-output examples to generate feature vectors before attempting program synthesis. By pre-processing the examples at the character level and computing cross-correlations in advance, the system narrows down the relevant program patterns before full synthesis, making the process more efficient while ensuring correctness.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces the mechanical exhaustive search process with a neural network-based cross-correlation mechanism. Instead of systematically exploring the entire program space, the LSTM networks with cross-correlation operations efficiently identify relevant program patterns through learned feature representations, dramatically improving productivity while maintaining reliability.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

4Adaptability or versatility

If complex neural network models are used for program induction, then the model can capture complex mappings, but the models become difficult to interpret or verify

Engineering Contradiction:
Improvemapping complexityVSAvoidinterpretability
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent creates interpretable copies of the program induction process by generating feature vectors that represent character-level patterns. These feature vectors serve as intermediate representations that can be inspected and verified, providing interpretability while the underlying LSTM networks capture complex mappings. The cross-correlation operations also provide transparent pattern matching that can be analyzed.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10817552B2Input-output example encoding
Publication Date: 2020.10.27 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10817552B2 patent drawing
  • US10817552B2 patent drawing
  • US10817552B2 patent drawing

AI summary

Generally discussed herein are devices, systems, and methods for encoding input-output examples. A method of generating a program using an encoding of input-output examples, may include processing an input example of the input-output examples, using a first long short term memory (LSTM) neural network, one character at a time to produce an input feature vector, processing an output example associated with the input example in the input-output examples, using the LSTM neural network, one character at a time to produce an output feature vector, determining (a) a cross-correlation between the input feature vector and the output feature vector or (b) previously computed feature vectors for a different input-output example that are sufficiently close to the input feature vector and the output feature vector, respectively, and using the determined cross-correlation or previously computed vector, generating a program consistent with the input example and the output example.