为什么淘宝总会给你推荐你买过的东西?
其实推荐系统无非是要推荐你更有可能点击、购买的商品给到你,或者简单点说,你喜欢的商品。
那如果一个推荐系统足够的好,他很有可能非常倾向于推荐给你买过的商品,因为你既然买过,那你肯定喜欢嘛。所以首先他推荐你买过的商品给到你,说明至少这个推荐系统是work的。因为他肯定不是专门挑的你买过的商品,而是通过种种策略恰好发现了一件商品你可能很喜欢,这件商品你又恰好买过了。
那么其次,推荐给你买过的商品,真的是一个bad case吗?这是一个很深刻的问题,因为比如说你在淘宝买了一包牛肉干,吃了很爽,你很可能一周后还想买。你如果买了一个iPhone7,很可能你不会再买了(当然也不一定)。
所以其实推荐给你买过的商品,未必是个坏的体验,至少相对于推荐一个你很小几率点击进去的商品来说(电商推荐系统的ctr一般不过个位数),可能ctr还高一些。如果用ctr来衡量用户的体验,没准高于你没看过的那些商品。
好,那我们怎么解决这个问题?
解决方案1:
老板说:xxx,怎么又推我买过的商品,这个体验太差了!然后开发赶紧加上一个策略,用户购物车、收藏夹和已买到宝贝里的商品通通过滤掉。然后发现卧槽:
1. 没法用商品id过滤,因为一个iPhone7就有100万个不同的商品id,而且你完全不知道哪些是iPhone7,判断淘宝哪些商品是iPhone7这件事情就比做推荐系统还要难。
2. 过滤所有的手机?别逗了,因为淘宝的类目结构巨他妈乱,大概有100个叶子类目下有属于手机的商品。手机、移动通信设备、塑料制品、玩具、......再说你确认这样做手机类目的运营不会砍死你?手机下面不止有手机,还有手机壳以及充电器。。。真是个悲伤的故事
3. 用关键词?你想多了,别说机器,就是人类都无法通过关键词来判断这哥们到底卖的是啥。
所以在实践中,其实淘宝是有策略过滤已买到的商品的,但是这件事情太难了,漏网之鱼多如狗。
解决方案2:
把你近期买过的商品(及对应的各种特征)和购买的时间作为特征加进机器学习模型里,同时构造更大更多样化的候选集。这样如果数据足够多,也许能学到你买过的商品和你愿意去买和去看的下一件商品之间的关系。这会比解决方案1带来更好的体验,更好的效果。当然会让你的模型和机器负载复杂很多很多。(摘自网友观点)