我有~3000名用户下载~100个报告,因此我将其视为隐式推荐问题。
用户/项目矩阵填充(非零)大约9%的组合,用户似乎没有报告类似的报告子集,下载次数差异很大。
我关注教程https://getstream.io/blog/recommendations-activity-streams-vowpal-wabbit/
我已经改组了数据:
% head downloads.vw
2 |u jane |r 72
0 |u bob |r 57
0 |u jim |r 6
1 |u zoe |r 41
0 |u peter |r 14
0 |u sonya |r 65
% head reports.vw
|r 72
|r 65
|r 80
|r 24
|r 36
|r 78
|r 74
|r 17
|r 12
|r 25
我这样训练vw
:
LATENT=20
vw -d downloads.vw --rank "$LATENT" --interactions ru
gd_mf_weights -I downloads.vw --vwparams "-d downloads.vw --rank $LATENT --interactions ru"
获得推荐:
echo '|u jane' | recommend --topk 10 -U /dev/stdin -I reports.vw -B blacklist.vw --vwparams "-d downloads.vw --rank $LATENT --interactions ru --quiet"
对于5到40之间的任何等级(潜在因素),我会为每个用户提供相同的建议,例如:等级20:
% head -n 30 recommendations_20.txt
0 |u jane|r 72
0 |u jane|r 80
0 |u jane|r 74
0 |u jane|r 25
0 |u jane|r 12
0 |u jane|r 78
0 |u jane|r 17
0 |u jane|r 36
0 |u jane|r 65
0 |u jane|r 24
0 |u peter|r 72
0 |u peter|r 80
0 |u peter|r 74
0 |u peter|r 25
0 |u peter|r 12
0 |u peter|r 78
0 |u peter|r 17
0 |u peter|r 36
0 |u peter|r 65
0 |u peter|r 24
0 |u sonya|r 72
0 |u sonya|r 80
0 |u sonya|r 74
0 |u sonya|r 25
0 |u sonya|r 12
0 |u sonya|r 78
0 |u sonya|r 17
0 |u sonya|r 36
0 |u sonya|r 65
0 |u sonya|r 24
这是否合理或我做错了什么?
更新
我忽略了设置交互参数错误,感谢arielf指出这一点。但是,我仍然会为每个用户提供相同的建议。
另一个问题:按此article:
在推荐系统中,删除两个用户都很重要 已与许多具有许多评级的项目和项目进行了交互。 直观地说,喜欢很多项目的用户不会添加任何有用的东西 我们系统的信息,因为它们不够有选择性。 同样,许多用户喜欢的项目往往过于苛刻 推荐使用。
这可能是这种现象的根源(每个用户都有相同的建议)吗?到目前为止,我还没有从数据中删除这些案例。