A method provides program structures for constructing a program that is learned over training data. In one example, two specific program structures are provided in which the first program structure transforms each vector in an input tuple of vectors to provide an output tuple of vectors, and the second program structure operates on an input tuple of vectors to provide an output tuple of vectors by applying one or more transformations that each involves two or more vectors in the input tuple. The transformations of the first and second program structures may be linear transformations. The program may alternatively execute the first program structure and the second program structure in any suitable order a number of times, beginning with operating one of the program structures on an initial tuple of vectors. The vectors may each consist of an ordered set of real numbers.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method for constructing a program that is learned over training data, the program receiving an initial tuple of vectors in which each vector consists of an ordered set of real numbers, the method comprising: providing a first program structure, the first program structure provided for transforming each vector in an input tuple of vectors to provide an output tuple of vectors; providing a second program structure, the second program structure provided to operate on an input tuple of vectors to provide an output tuple of vectors by applying one or more transformations that each involves two or more vectors in the input tuple and by summing the results of the transformations; and alternatively executing the first program structure and the second structure a plurality of times, beginning with operating one of the program structures on the initial tuple of vectors. 2. The method of claim 1, wherein the first program structure includes one or more linear transformations. 3. The method of claim 2, wherein a first one of the linear transformations maps an input value from RN space to RM space, and wherein a second one of the linear transformations maps an input value from RM space to RN space, wherein N and M are integers. 4. The method of claim 3, further comprising applying a predetermined function on the result of the first linear transformation. 5. The method of claim 4, wherein the predetermined function comprises a threshold function. 6. The method of claim 2, wherein the first one of the linear transformations includes computing an inner product. 7. The method of claim 1, wherein each transformation of the second program structure operates on vectors of the input tuple to the second program structure that are separated by a predetermined distance. 8. The method of claim 7, wherein the transformations of the second program structures operate on vectors of the input tuple to the second program structure that are separated by successively increasing distances. 9. The method of claim 8, wherein the increasing distances are each a power of P, where P is an integer. 10. The method of claim 9, wherein P equals two. 11. The method of claim 1, wherein the transformations of the second program structures comprise linear transformations. 12. The method of claim 1, further comprising training the program using the training data and performing data prediction using the trained program. 13. The method of claim 12, wherein the data prediction is presented as a probability distribution over a set of candidate results.