2016-12-05 11 views
0

Я пытаюсь создать рекомендации о холодном запуске, используя библиотеку 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) 

ответ

0

Вы должны попробовать обновить до LightFM 1,12 (через pip install lightfm==1.12). Эта версия исправляет ряд проблем с числовой нестабильностью, которые могут привести к результатам, которые вы видите.

Если вас интересуют детали gory, вы можете взглянуть на это Github issue.

 Смежные вопросы

  • Нет связанных вопросов^_^