首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成Nan嵌入的LightFM用户/项目

生成Nan嵌入的LightFM用户/项目
EN

Stack Overflow用户
提问于 2016-12-05 12:42:06
回答 1查看 827关注 0票数 0

我正在尝试使用python中的LightFM库创建冷启动建议。https://github.com/lyst/lightfm

对于没有用户和项目功能的协作过滤,这是预期的工作方式,即:

代码语言:javascript
复制
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)

这可以很好地产生预测。但是,当我添加:

代码语言:javascript
复制
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)

我得到了Nan的用户和项嵌入。

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2017-02-06 00:51:29

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40967226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档