2016-12-05 82 views
0

我试图创建冷启动建议使用Python中的LightFM库。 https://github.com/lyst/lightfmLightFM用户/物品生成南嵌入

可正常工作的协同过滤,无需用户和项目特点即:

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

你应该尝试(通过pip install lightfm==1.12)更新到LightFM 1.12。该版本修复了一些数字不稳定性问题,可能会导致您看到的结果。

如果你对血型细节感兴趣,你可以看看这个Github issue