
## Model description
This model demonstrates the [Node2Vec](https://snap.stanford.edu/node2vec/) technique on the small version of the [Movielens dataset](https://files.grouplens.org/datasets/movielens/ml-latest-small-README.html) to learn movie embeddings.

### Node2Vec Technique
[Node2Vec](https://arxiv.org/abs/1607.00653) is a simple, yet scalable and effective technique for learning low-dimensional embeddings for nodes in a graph by optimising a neighbourhood-preserving objective. The aim is to learn similar embeddings for neighbouring nodes, with respect to the graph structure.
Given your data items structured as a graph (where the items are represented as nodes and the relationship between items are represented as edges), node2vec works as follows:
- Generate item sequences using (biased) random walk.
- Create positive and negative training examples from these sequences.
- Train a [word2vec](https://www.tensorflow.org/tutorials/text/word2vec) model (skip-gram) to learn embeddings for the items. 

This model is an example of applying [Node2Vec](https://arxiv.org/abs/1607.00653) technique on the small version of the [Movielens dataset](https://files.grouplens.org/datasets/movielens/ml-latest-small-README.html) to learn movie embeddings. Such a dataset can be represented as a graph by treating the movies as nodes, and creating edges between movies that have similar ratings by the users. The learnt movie embeddings can be used for tasks such as movie recommendation, or movie genres prediction.  

For more information on Node2Vec, please refer to its [host page](https://snap.stanford.edu/node2vec/)

### Skip-Gram Model
Our skip-gram is a simple binary classification model that works as follows:

- An embedding is looked up for the target movie.
- An embedding is looked up for the context movie.
- The dot product is computed between these two embeddings.
- The result (after a sigmoid activation) is compared to the label.
- A binary crossentropy loss is used.

### Model Plot

<details>
<summary>View Model Plot</summary>

![Model Image](./model.png)

</details>

## Credits
Author: [Khalid Salama](https://www.linkedin.com/in/khalid-salama-24403144/).   
Based on the following Keras example [Graph representation learning with node2vec](https://keras.io/examples/graph/node2vec_movielens/) by Khalid Salama   
Check out the demo space [here](https://huggingface.co/spaces/keras-io/Node2Vec_MovieLens)

{"library_name": "keras", "tags": ["keras"]}
keras tensorboard arxiv:1607.00653 has_space region:us
TAGS
#keras #tensorboard #arxiv-1607.00653 #has_space #region-us 


## Model description
This model demonstrates the Node2Vec technique on the small version of the Movielens dataset to learn movie embeddings.

### Node2Vec Technique
Node2Vec is a simple, yet scalable and effective technique for learning low-dimensional embeddings for nodes in a graph by optimising a neighbourhood-preserving objective. The aim is to learn similar embeddings for neighbouring nodes, with respect to the graph structure.
Given your data items structured as a graph (where the items are represented as nodes and the relationship between items are represented as edges), node2vec works as follows:
- Generate item sequences using (biased) random walk.
- Create positive and negative training examples from these sequences.
- Train a word2vec model (skip-gram) to learn embeddings for the items. 

This model is an example of applying Node2Vec technique on the small version of the Movielens dataset to learn movie embeddings. Such a dataset can be represented as a graph by treating the movies as nodes, and creating edges between movies that have similar ratings by the users. The learnt movie embeddings can be used for tasks such as movie recommendation, or movie genres prediction.  

For more information on Node2Vec, please refer to its host page

### Skip-Gram Model
Our skip-gram is a simple binary classification model that works as follows:

- An embedding is looked up for the target movie.
- An embedding is looked up for the context movie.
- The dot product is computed between these two embeddings.
- The result (after a sigmoid activation) is compared to the label.
- A binary crossentropy loss is used.

### Model Plot

<details>
<summary>View Model Plot</summary>

!Model Image

</details>

## Credits
Author: Khalid Salama.   
Based on the following Keras example Graph representation learning with node2vec by Khalid Salama   
Check out the demo space here

## Model description
This model demonstrates the Node2Vec technique on the small version of the Movielens dataset to learn movie embeddings. ### Node2Vec Technique
Node2Vec is a simple, yet scalable and effective technique for learning low-dimensional embeddings for nodes in a graph by optimising a neighbourhood-preserving objective. The aim is to learn similar embeddings for neighbouring nodes, with respect to the graph structure.
Given your data items structured as a graph (where the items are represented as nodes and the relationship between items are represented as edges), node2vec works as follows:
- Generate item sequences using (biased) random walk.
- Create positive and negative training examples from these sequences.
- Train a word2vec model (skip-gram) to learn embeddings for the items. 

This model is an example of applying Node2Vec technique on the small version of the Movielens dataset to learn movie embeddings. Such a dataset can be represented as a graph by treating the movies as nodes, and creating edges between movies that have similar ratings by the users. The learnt movie embeddings can be used for tasks such as movie recommendation, or movie genres prediction.  

For more information on Node2Vec, please refer to its host page ### Skip-Gram Model
Our skip-gram is a simple binary classification model that works as follows:

- An embedding is looked up for the target movie.
- An embedding is looked up for the context movie.
- The dot product is computed between these two embeddings.
- The result (after a sigmoid activation) is compared to the label.
- A binary crossentropy loss is used. ### Model Plot

<details>
<summary>View Model Plot</summary>

!Model Image

</details> ## Credits
Author: Khalid Salama.   
Based on the following Keras example Graph representation learning with node2vec by Khalid Salama   
Check out the demo space here
TAGS
#keras #tensorboard #arxiv-1607.00653 #has_space #region-us 
 ## Model description
This model demonstrates the Node2Vec technique on the small version of the Movielens dataset to learn movie embeddings. ### Node2Vec Technique
Node2Vec is a simple, yet scalable and effective technique for learning low-dimensional embeddings for nodes in a graph by optimising a neighbourhood-preserving objective. The aim is to learn similar embeddings for neighbouring nodes, with respect to the graph structure.
Given your data items structured as a graph (where the items are represented as nodes and the relationship between items are represented as edges), node2vec works as follows:
- Generate item sequences using (biased) random walk.
- Create positive and negative training examples from these sequences.
- Train a word2vec model (skip-gram) to learn embeddings for the items. 

This model is an example of applying Node2Vec technique on the small version of the Movielens dataset to learn movie embeddings. Such a dataset can be represented as a graph by treating the movies as nodes, and creating edges between movies that have similar ratings by the users. The learnt movie embeddings can be used for tasks such as movie recommendation, or movie genres prediction.  

For more information on Node2Vec, please refer to its host page ### Skip-Gram Model
Our skip-gram is a simple binary classification model that works as follows:

- An embedding is looked up for the target movie.
- An embedding is looked up for the context movie.
- The dot product is computed between these two embeddings.
- The result (after a sigmoid activation) is compared to the label.
- A binary crossentropy loss is used. ### Model Plot

<details>
<summary>View Model Plot</summary>

!Model Image

</details> ## Credits
Author: Khalid Salama.   
Based on the following Keras example Graph representation learning with node2vec by Khalid Salama   
Check out the demo space here
passage: TAGS
#keras #tensorboard #arxiv-1607.00653 #has_space #region-us 
## Model description
This model demonstrates the Node2Vec technique on the small version of the Movielens dataset to learn movie embeddings.### Node2Vec Technique
Node2Vec is a simple, yet scalable and effective technique for learning low-dimensional embeddings for nodes in a graph by optimising a neighbourhood-preserving objective. The aim is to learn similar embeddings for neighbouring nodes, with respect to the graph structure.
Given your data items structured as a graph (where the items are represented as nodes and the relationship between items are represented as edges), node2vec works as follows:
- Generate item sequences using (biased) random walk.
- Create positive and negative training examples from these sequences.
- Train a word2vec model (skip-gram) to learn embeddings for the items. 

This model is an example of applying Node2Vec technique on the small version of the Movielens dataset to learn movie embeddings. Such a dataset can be represented as a graph by treating the movies as nodes, and creating edges between movies that have similar ratings by the users. The learnt movie embeddings can be used for tasks such as movie recommendation, or movie genres prediction.  

For more information on Node2Vec, please refer to its host page### Skip-Gram Model
Our skip-gram is a simple binary classification model that works as follows:

- An embedding is looked up for the target movie.
- An embedding is looked up for the context movie.
- The dot product is computed between these two embeddings.
- The result (after a sigmoid activation) is compared to the label.
- A binary crossentropy loss is used.### Model Plot

<details>
<summary>View Model Plot</summary>

!Model Image

</details>## Credits
Author: Khalid Salama.   
Based on the following Keras example Graph representation learning with node2vec by Khalid Salama   
Check out the demo space here