# US 11,443,231 B2 · Automated software selection using a vector-trained deep learning model

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,443,231 B2
- Document ID: US11443231B2
- Status: Granted
- Kind: B2
- Application number: 16/165,013
- Filed: 2018-10-19
- Published: 2020-04-23
- Granted: 2022-09-13
- Earliest claimed: 2018-10-19
- Assignees: Red Hat, Inc.
- Applicants: Red Hat, Inc.
- Inventors: SriKrishna Paparaju; Avishkar Gupta
- Web page: https://patentgrep.com/patent/US11443231B2

## CPC

- G06N 20/00: Machine learning
- G06F 8/433: {Dependency analysis; Data or control flow analysis}
- G06N 3/045: Combinations of networks
- G06N 3/0455: Auto-encoder networks; Encoder-decoder networks
- G06N 3/047: Probabilistic or stochastic networks
- G06N 3/09: Supervised learning
- G06N 7/01: Probabilistic graphical models, e.g. probabilistic networks
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A processing device can establish a vector-trained, deep learning model to produce software dependency recommendations. The processing device can build a list of software dependencies and corresponding metatags for each of the software dependencies, and generate a probability distribution from the list. The processing device can sample the probability distribution to produce a latent vector space that includes representative vectors for the software dependencies. The processing device can train a hybrid deep learning model to produce software dependency recommendations using the latent vector space as well as collaborative data for the software dependencies.

## Claims

### Claim 1

A system comprising:
a processing device; and
a memory device including instructions that are executable by the processing device for causing the processing device to perform operations comprising:
building a list of software application dependencies and corresponding metatags for each of the software application dependencies;
generating a probability distribution based on the list of software application dependencies and corresponding metatags;
generating user vectors for the software application dependencies using collaborative data for a software ecosystem corresponding to the software application dependencies;
sampling the probability distribution to produce a latent vector space wherein distances between representative vectors from the latent vector space indicate similarity; and
combining, using matrix factorization, the latent vector space and the user vectors to train a hybrid deep learning model to provide software application dependency recommendations.

### Claim 2 (depends on 1)

The system of claim 1 wherein the operations further comprise accessing a registry of software application dependencies and metatags to build the list of software application dependencies and corresponding metatags.

### Claim 3 (depends on 1)

The system of claim 1 wherein the operation of generating the probability distribution comprises using a variational autoencoder.

### Claim 4 (depends on 1)

The system of claim 1 wherein the collaborative data comprises manifests corresponding to the software application dependencies.

### Claim 5 (depends on 4)

The system of claim 4 wherein the operation of combining the latent vector space and the user vectors comprises using a rating matrix to train the hybrid deep learning model.

### Claim 6 (depends on 1)

The system of claim 1 wherein the operations further comprise:
receiving user input of an application stack; and
producing a software application dependency recommendation using the hybrid deep learning model based on the application stack.

### Claim 7 (depends on 1)

The system of claim 1 wherein the operations further comprise:
updating the list of software application dependencies and corresponding metatags for each of the software application dependencies; and
retraining the hybrid deep learning model to produce the software application dependency recommendations based on updated software application dependencies.

### Claim 8

A method comprising:
building, by a processing device, a list of software application dependencies and corresponding metatags for each of the software application dependencies;
generating, by the processing device, a probability distribution based on the list of software application dependencies and corresponding metatags;
generating, by the processing device, user vectors for the software application dependencies using collaborative data for a software ecosystem corresponding to the software application dependencies;
sampling, by the processing device, the probability distribution to produce a latent vector space wherein distances between representative vectors from the latent vector space indicate similarity; and
combining, by the processing device, using matrix factorization, the latent vector space and the user vectors to train a hybrid deep learning model to provide software application dependency recommendations.

### Claim 9 (depends on 8)

The method of claim 8 further comprising accessing a registry of software application dependencies and metatags to build the list of software application dependencies and corresponding metatags.

### Claim 10 (depends on 8)

The method of claim 8 wherein the probability distribution is generated using a variational autoencoder.

### Claim 11 (depends on 8)

The method of claim 8 wherein the collaborative data comprises manifests corresponding to the software application dependencies.

### Claim 12 (depends on 11)

The method of claim 11 wherein combining the latent vector space and the user vectors comprises using a rating matrix to train the hybrid deep learning model.

### Claim 13 (depends on 8)

The method of claim 8 further comprising:
receiving user input of an application stack; and
producing a software application dependency recommendation using the hybrid deep learning model based on the application stack.

### Claim 14 (depends on 8)

The method of claim 8 further comprising:
updating the list of software application dependencies and corresponding metatags for each of the software application dependencies; and
retraining the hybrid deep learning model to produce the software application dependency recommendations based on updated software application dependencies.

### Claim 15

A non-transitory computer-readable medium comprising program code that is executable by a processing device for causing the processing device to:
build a list of software application dependencies and corresponding metatags for each of the software application dependencies;
generate a probability distribution based on the list of software application dependencies and corresponding metatags;
generate user vectors for the software application dependencies using collaborative data for a software ecosystem corresponding to the software application dependencies;
sample the probability distribution to produce a latent vector space wherein distances between representative vectors from the latent vector space indicate similarity; and
combine, using matrix factorization, the latent vector space and the user vectors to train a hybrid deep learning model to provide software application dependency recommendations.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15 wherein the program code is further executable for causing the processing device to generate the probability distribution using a variational autoencoder.

### Claim 17 (depends on 15)

The non-transitory computer-readable medium of claim 15 wherein the collaborative data comprises manifests corresponding to the software application dependencies.

### Claim 18 (depends on 17)

The non-transitory computer-readable medium of claim 17 wherein the program code that is executable to cause the processing device to combine the latent vector space and the user vectors further causes the processing device to use a rating matrix to train the hybrid deep learning model.

### Claim 19 (depends on 15)

The non-transitory computer-readable medium of claim 15 wherein the program code is executable by the processing device to cause the processing device to:
receive user input of an application stack; and
produce a software application dependency recommendation using the hybrid deep learning model based on the application stack.

### Claim 20 (depends on 15)

The non-transitory computer-readable medium of claim 15 wherein the program code is executable by the processing device to cause the processing device to:
update the list of software application dependencies and corresponding metatags for each of the software application dependencies; and
retrain the hybrid deep learning model to produce the software application dependency recommendations based on updated software application dependencies.
