最近有些迷茫吧,所以在这里想倾诉一下,顺便把做过项目的心得在这里说一下……
项目经验
最近我一个承接了一个业务线的项目工作,那我们就重头说起吧。
首先,刚接到这个任务的时候,我感觉很荣幸,也很激动。为什么呢?因为我觉得我又可以踏足于一个我没有接触的领域,这个领域责任很重,任务很多,链路很长……我觉得如果我来负责整个项目,把控整个项目,我会有很大的进步空间,从中不仅可以将之前所学所用的东西融进来,还可以接触到、学习到我没有触及过的很多东西吧。
刚接手的那段时间,我对熟悉的东西还是很有信心能够做好的(但是这个也需要时间和精力去做)。当你真正的一个人负责整个业务线的时候,做的过程中你会觉得时间、排期根本不够用,并不是当初自己想的那么简单,可能会遇到各种意想不到的突发问题:与业务方的勾兑需求问题、最初的埋点问题、业务方办事效率问题、以及之前没接触过的工作经验问题、最后就是技术问题了。反正所有的这些问题,只有你一个人来进行反馈、验证、解决,每个版本的迭代周期也就是最多一个月,这个时候你会感觉好累呀(各种沟通、会议,自己根本无法全身心投入技术研究)。就算你很厉害,一边勾兑问题、需求、验收等等,你还可以全身心投入技术效果的优化中,但是优化那么简单的吗?你是否真正check过数据是否完整:类目体系、各种标签等都给到了吗?如果数据不完整,做技术研究会做好吗?(最基础的意图、ner怎么做呀),更何况后面还会有召回、排序的特征从哪里来,没有这些数据又怎么能保证你的搜索、推荐效果那么好?这一切的一切都是问题,但又不能不做,就是挖地三尺都要把该有的特征和数据自己挖出来,这个过程真的好痛苦啊。
不过整个项目你都能自己做了,也就能慢慢地负责更大的项目了。我还是很庆幸自己有这种经历的,对整个搜索、推荐算法有了全局的把控能力。
技术困难
搜索和推荐,本来就是两个截然不同的方向领域。当然,有些人会说:搜索和推荐是相通的,会搜索了,推荐也就会了,我刚开始也是这么想的。但是这个相通的定义是什么?是直接搜索算法放到推荐就能用?还是推荐算法放到搜索上就能好使?老话说的好:万物要回归事物本质。搜索本质要的准确,出现用户不想要的就是badcase,就是0分。推荐本质要的是个性化,相关性,出现用户不想要的不一定是badcase,是大于等于0分的。所以做搜索算法的码农线上真的不能出现任何差错,尤其是对于高频case了。身边做推荐的可以上各种模型:双塔模型、深度语义模型,传统机器学习模型(需要特征工程),这都是基于大数据,没有大量的用户埋点数据能做吗?反正我没见过,稀疏的话就别用模型了。言归正传,就是这些双塔模型、深度模型用在推荐没什么,人家就不需要很准确,出现不相关的结果又能怎么样,无非就是ctr、转化率低点嘛,我慢慢优化就是了,就死不了。但是这些模型放到搜索上呢,你敢说你的模型放上去就是好的,高频badcase你能保证不出问题吗?线上出了问题靠模型能立即解决吗?有些人会说:不会做小流看对比试验桶的指标吗?好的话就可以推全量了呗。那线上出问题怎么办?小流量的用户就不是用户了吗?不是说搜索不可以用推荐的特征和模型,可以用,这得看什么时候用。如果刚启动这个项目几个月,你就想上深度模型、语义模型,这有点不现实,你的数据都没积累到一定的量,所以说上不上模型得看时机,稀疏特征对模型不会起到很大的作用,点击特征很重要,没有大量的数据就不要使用浪费时间。业务达标才是王道。
今天就说这些吧,这些都是我个人的体会和心得,意见不一致的自己保留就好了。
好好吃饭,好好睡觉,好好达标,过个好年!加油!