Я пытаюсь создать рекомендации о холодном запуске, используя библиотеку LightFM в python. https://github.com/lyst/lightfmLightFM пользователь/элемент, производящий Nan-вложения
Это работает, как ожидалось для совместной фильтрации, без пользователя и элемента особенности: то есть
from lightfm import LightFM
interaction_matrix
<322139x42715 sparse matrix of type '<type 'numpy.float32'>'
with 4571208 stored elements in COOrdinate format>
model = LightFM(no_components=50)
model.fit(interaction_matrix, epochs=1, num_threads=32)
predictions = model.predict(12, np.arange(250), num_threads=32)
Это производит предсказания хорошо. Однако когда я добавляю:
members_features, item_features
(<322139x2790 sparse matrix of type '<type 'numpy.float32'>'
with 19840665 stored elements in Compressed Sparse Row format>,
<42715x2790 sparse matrix of type '<type 'numpy.float32'>'
with 355006 stored elements in Compressed Sparse Row format>)
model2 = LightFM(no_components=100, loss='warp', item_alpha=0.001, user_alpha=0.001)
model2.fit(interaction_matrix, user_features=members_features, item_features=item_features, sample_weight=None, \
verbose=True, epochs=2, num_threads=32)
Я получаю Нан для вложений пользователя и предметов.
model2.item_embeddings
array([[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan],
...,
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan]], dtype=float32)