Closed shuDaoNan9 closed 4 years ago
@JWenBin
您好。由于movielens-1M的数据太小了。用来评价模型的精度可能不太具有很高的参考价值。我没有具体测试过AUC。如果您把分好的train/valid数据放到网盘上,我可以测一下看看。
那你们的推荐是 离线计算保存模型,然后实时计算推荐得分排序吗? 还是直接离线每天计算好推荐结果呢?存推荐结果的话感觉太大了
模型一般是每天更新的
直接离线每天计算好推荐结果
这个各种情况都有,有离线的有实时的。有些服务对实时性不高,就离线。离线的好处是维护成本低。
存推荐结果的话感觉太大了
这个一般是选取topK,目前的公司存储方面没有瓶颈。可以用redis或者cassandra的。 如果存储空间受限,可以尝试只cache热点数据。
如果推荐结果存几百万用户的top1000,到redis的话,岂不是要几个T的内存?
如果推荐结果存几百万用户的top1000,到redis的话,岂不是要几个T的内存?
这个到不了那么大,一般只缓存ID。item 的详细信息一般都是实时从API获取。
top1000
用户真的能看到top1000吗?
到redis的话,岂不是要几个T的内存?
可以做一些分散。我用过cassandra集群。平均到每个机器也没多大。
我存了 商品id,得分score,推荐引擎代号,推荐引擎版本号。共4个字段。一天推荐数据1.3T内存。 大部分用户top100就够用了,少部分用户会出现滑到top几百的情况,然后取了个1000做推荐
少部分用户会出现滑到top几百的情况,然后取了个1000做推荐
感觉这样就比较浪费空间。因为大部分都看不到那么多。 可能用异步更新会比较好,只存储TOP100。当用户有新的浏览记录时,异步生成新的推荐,更新数据库中推荐list。理论上只需要1/10的空间
那实时性能要求比较高哦,Java后台应该不会弄这个,flink又没玩过o(╯□╰)o
那实时性能要求比较高哦,Java后台应该不会弄这个,flink又没玩过o(╯□╰)o
搞个pub/sub,中间做个缓存,用python就可以。
Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like A clear and concise description of what you want to happen. 请问你的deepfm跑movielens-1M的AUC是多少?我看网上别人动不动就是0.88左右的,我自己写的跑测试集才0.77至0.85左右AUC,可能是我的参数没优化好
Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.
Additional context Add any other context or screenshots about the feature request here.