一步一步学推荐系统(二)——推荐系统的难点和挑战
挑战一:数据稀疏性
千万级用户*千万级产品,遇到两个人买了同一个产品的概率
重复性越低,稀疏性越高
挑战二:冷启动问题
1.新用户因为罕见的行为信息,很难给出精确的推荐
2.新产品因为选择次数很少,也很难给合适的用户推荐
解决办法:
1.打标签(给用户和产品打标签)
2.建立评价体系
3.利用交叉推荐和社会推荐
挑战三:大数据处理和增量问题
在百千万级的基础上,新产品、新用户同样源源不断的进入系统,怎么保证推荐的时效性?
- 以某极小系统:
- 用户数50人
- 产品数10000个
- 二维表示≈50万
- 遍历用户关系50亿次(暂不考虑算法优化)
- 此时加入新产品(新改动)或新用户,可以想象运算量有多少
挑战四:多样性和精准性两难困境
- 多样性:推荐给出多种不同的口味
- 精确性:推荐给出用户喜欢的口味 用户的操作记录作用于推荐系统 → 推荐系统产生了局限性
用户的操作记录作用于推荐系统
→ 推荐系统产生了局限性
挑战五:推荐系统的脆弱性
为了使自己的推荐靠前,竞品的推荐靠后,有很多攻击性的评判
如上图所示:
是否会对用户h推荐商品7呢?
与h相似的用户为i-m
那么i-m用户均不满意商品7
所以h不会得到7商品的推荐
挑战六:用户行为模式的挖掘和利用
深入挖掘用户的行为模式有望提高推荐的效果
新用户:热门商品,老用户:小众商品
7点-8点在手机阅读的用户,一般不会在9点以后再阅读
对用户经常出没地进行推荐反而效果更差
频繁而不精确的推荐会使得用户有一种被窥视的感觉
挑战七:推荐系统的效果评估
概念提出几十年,效果评估依然是难题。
常见的评估指标:
挑战八:用户界面和用户体验
上图是对facebook页面浏览关注度的检测。
挑战九:多维数据的交叉利用
关系一:依存关系
关系二:合作关系
关系三:交叠关系(社会关系)
挑战十:社会推荐
社会推荐的挑战分为三类:
1.如何利用社会关系提高推荐的精确度
2.如何建立良好的机制以促进社会推荐
3.如何将社会信任关系引入到推荐系统中