本周,包工头同学给我提了2个需求,都是关于不同应用的好友推荐。
1)应用1的关系推荐,满足该需求,可以使用协同过滤算法,算法其实不是很难设计,一说明就明白。难的是面对大数据量,如何利用杭研院现有的技术储备,设计低成本的实现策略;若实在没有技术储备,那只能硬着头皮开发了。俺对着电脑打了一天的腹稿,终于打成了。其间受到n人的骚扰,尤其是印象派负责推广的mm,老是找我问为啥印象派在搜索引擎的排名这么差,汗啊汗,其实是因为你们的产品做的太漂亮了,文字少,图片flash太多...跑题了。对于这种推荐算法的实现,换种思维,利用全文检索来做,性能会很快,而且能满足实时的要求,不用离线做。
2)应用2的排序推荐,满足该需求,大家都知道要使用统计来做。利用哪些因素进行统计,加权算法怎么设计,这些都是比较简单的,一个公式都就能搞定,稍微做做实验,就可以确认权重参数。麻烦的是实现时间因素的融合,也就是时间衰减,低成本高性能的实现很麻烦。直接计算得分然后修改数据库的字段,会给数据库带来巨大的性能损耗。因为时间衰减是每天都在进行的,我们不可能每天计算索引里的所有数据。腹稿打了3天,期间当然伴随着被骚扰3n次,

!最后....还是没有想出来。今天下午在舒适堡锻炼洗澡后,浑身爽。这时候头脑灵光,思路清晰,在回去的车上,反正没事,就拿出来想想,嘿,还真在肚子里设计出一种新的策略,实现成本低性能好,效果应该可以,下周有空去准备测试测试。