In [8]:
from lightfm import LightFM
from lightfm.datasets import fetch_movielens
import pickle

In [1]:
movielens = fetch_movielens()
train = movielens['train']
test = movielens['test']

model = LightFM(learning_rate=0.05, loss='warp', no_components=64, item_alpha=0.001)
model.fit_partial(train, item_features=movielens['item_features'], epochs=20 )

item_vectors = movielens['item_features'] * model.item_embeddings


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-858fa4cae174> in <module>
----> 1 movielens = fetch_movielens()
      2 train = movielens['train']
      3 test = movielens['test']
      4 
      5 model = LightFM(learning_rate=0.05, loss='warp', no_components=64, item_alpha=0.001)

NameError: name 'fetch_movielens' is not defined

In [11]:
with open('movies.pickle', 'wb') as f:
    pickle.dump({"name": movielens['item_labels'], "vector": item_vectors}, f)


Out[11]:
{'name': array(['Toy Story (1995)', 'GoldenEye (1995)', 'Four Rooms (1995)', ...,
        'Sliding Doors (1998)', 'You So Crazy (1994)',
        'Scream of Stone (Schrei aus Stein) (1991)'], dtype=object),
 'vector': array([[ 0.00556256, -0.31017324, -0.42630482, ..., -0.04581085,
          0.14328493, -0.20023775],
        [-0.13123392, -0.08866664,  0.14923859, ..., -0.0287729 ,
          0.1504815 , -0.20533574],
        [ 0.20538749, -0.08851511, -0.08104168, ...,  0.06462071,
         -0.22843511, -0.10499141],
        ...,
        [ 0.07214844,  0.17425403,  0.00231001, ...,  0.06285579,
         -0.07091519,  0.12204432],
        [ 0.13527896,  0.03136421, -0.13009414, ...,  0.07497142,
         -0.14013359,  0.11093302],
        [ 0.11324484,  0.14196336, -0.14459045, ..., -0.05265689,
         -0.18139891,  0.05192617]], dtype=float32)}