LightFM:用于协同过滤的用户/项目特征工程(不完整的特征/多个条目)

时间:2019-02-06 17:12:59

标签: python machine-learning collaborative-filtering matrix-factorization recommender-systems

我正在尝试为隐式反馈排名模型建立基本的BPR和WARP基线,而我目前在功能设计上有些停留,并对LightFM如何处理功能矩阵有一些疑问。

说我想建立一个用户特征矩阵,而我的字段看起来像这样,

{
    "id": "818499",
    "username": "nvok",
    "name": "nvok",
    "join_date": "2016-08-12",
    "followers": "696",
    "following": "65",
    "ideas": "1863",
    "like_count": "23",
    "subscribers_count": "132",
    "subscribed_to_count": "1",
    "location": "United States",
    "trading_strategy": "{'assets_frequently_traded': [], 'approach': 'Growth', 'holding_period': 'Position Trader', 'experience': None}"
}

如果我要构建用户特征矩阵,而用户的个人资料有点不完整;例如,如果 location 字段保留为空,那么LightFM会为该特定用户跳过此功能,还是我必须将该特定功能排除在外?所有字段都必须完整吗?定位似乎是培训中要包括的有用功能。

我的商品功能采用推文的形式以及有关该推文的各种信息;时间戳,赞等。在使用井号的情况下,有一个“符号”字段,看起来像:

"symbols": "[{
    'id': 11571, 
    'symbol': 'FEYE', 
    'title': 'FireEye Inc', 
    'is_following': False, 
    'exchange': 'NASDAQ', 
    'sector': None, 
    'industry': None, 
    'trending': False, 
    'trending_score': -1.40734, 
    'watchlist_count': 13750
}]"

LightFM是否有效地使用列表中包含的信息,还是我必须将其分为单独的功能,也许#标签本身是关键,而当前的值是1?

0 个答案:

没有答案