目录
2 根据数据特性定义模型 y = wx + sq + sp + pq
1 不一样的SVD(blog)
概念
所谓SVD(Singular Value Decompositon)中文翻译为奇异值分解,是数值代数中很重要的概念。首先陈述一下传统的定义,这里我们仅考虑实矩阵。
对于任意m×n的矩阵M,存在分解 ,其中U是m×m阶正交矩阵,V是n×n阶正交矩阵。sigma是对角矩阵,对角线上的元素成为奇异值。U和V的列向量分别被成为左奇异向量和右奇异向量。课本变换类比理解
SVD在物体识别中就有应用,可以结合来理解。我有两张照片,照片中都有一本相同的书,一本横着放且照片拍的比较大,一本竖着放且照片拍的比较小。直观上看,第一本书是可以旋转再缩小一下而和第二本书完全重合,这样我们就可以发现两个照片中实际上存在着相同的东西。这种操作实际上可以用一个变换来实现,对于第一本书上的任何一个点,可以左乘一个矩阵A而得到第二本书上的对应点坐标。这种操作实际上可以分解为首先对(x,y)T进行旋转,把书“放正”,然后再沿着坐标轴拉伸把它缩小到和第二本书一样大小,再把他旋转到和第二本书重合。所以可以使用SVD便捷的找到相同的物体,具体细节不详细描述。上述三种操作分别对应了矩阵V,矩阵sigma,和矩阵U。因为矩阵sigma是对角矩阵,因此它只是在做沿着坐标轴方向的拉伸,而正交矩阵所做的就是旋转。
应用
SVD还可以用来干什么呢?其中矩阵的对角线上可能有一些非零但是很接近零的元素,这就相当于沿着坐标轴的拉伸基本上把那一维“变没了”。如果我们直接强行把那一维“变没”,似乎也没有多大影响,但是这样做的意义就是原来的变换的维数降低了。数据挖掘中的主成分分析法实际上就是将那些非常接近0的奇异值直接变成0,然后得到的新矩阵的维数就降低了,但是却仍然和原来的矩阵“几乎相同”。新得到的矩阵比原来的矩阵的秩要低,比如原矩阵的秩是n,如果你要得到一个秩为n-1的近似矩阵,SVD基本上是最好的方法,可以证明这样得到的近似矩阵是所有近似矩阵当中和原来矩阵在某种意义上“最接近”的,也即对应元素的差的平方和最小。
2 推荐算法工程师 还有事可做吗?
1 将业务转化为数学问题
分类or回归; 收集什么样的数据:商品、用户、商品用户交互数据、销售用户交互数据等;数据清洗统计:缺失值处理、默认值、异常值
2 根据数据特性定义模型 y = wx + sq + sp + pq
若特征间相互独立:y=wx的形式;若有交互关系:y=wij*xi*xj,或者SVD分解y=pq对交互特征进行建模
(如果很多交互数据观测不到:FM,隐向量内积表示交叉项;否则直接用:GBDT、 RF、 LR)
3 根据业务定义合理损失函数
RMSE or 其他,考虑top-N排序,才会提升转化率,还要考虑损失函数是否带权,带权主要是比如一个商品推成功了赚5毛,一个商品推成功了赚50,天壤之别,这就要结合业务来定义了。
4 参数调优
各种梯度求解方法的参数不同,求解问题的类型不同,尝试,观察(training error)
5 计算量太大的离线算法优化和线上算法优化
线下选定离线商品范围,线上做CTR预估。
离线测评(分布式or 并行,区别在于通讯延迟上,前者延迟更小。数据预处理并行——python nohup不挂断或hadoop写MR矩阵分解、算法并行spark or MR)
线上算法架构(先算好离线池子+实时新特征,缓解线上压力)
3 Accuracy vs Diversity
balance
精准推荐的,很可能是一些热门的,或是已经听说过或看过的类似的,但这些热门的到处可见,能否推荐一些冷门的但是很符合的?当然会面临不被信任的风险,这就需要。不同的人群,不同的场合需要不同的推荐策略。比如用户刚开始浏览的时候,着重diversity使其确定目标,然后在目标下再着重accuracy进行精准推荐。
反馈
反馈很重要。根据用户显式或隐式反馈,及时进行推荐策略调整,反馈信息必不可少。
算法具有数据依懒性!
不同的数据集上、不同应用场景上的表现会有差异,没有最好的算法,融合很重要!算法也需要diversity
4 推荐模型混合方法
1. 加权的混合(WeightedHybridization):用线性公式(linear formula)将几种不同的推荐按照一定权重组合起来,具体权重的值需要在测试数据集上反复实验,从而达到最好的推荐效果。
2. 切换的混合(SwitchingHybridization):前面也讲到,其实对于不同的情况(数据量,系统运行状况,用户和物品的数目等),推荐策略可能有很大的不同,那么切换的混合方式,就是允许在不同的情况下,选择最为合适的推荐机制计算推荐。
3. 分区的混合(MixedHybridization):采用多种推荐机制,并将不同的推荐结果分不同的区显示给用户。其实,Amazon,当当网等很多电子商务网站都是采用这样的方式,用户可以得到很全面的推荐,也更容易找到他们想要的东西。
4. 分层的混合(Meta-LevelHybridization):采用多种推荐机制,并将一个推荐机制的结果作为另一个的输入,从而综合各个推荐机制的优缺点,得到更加准确的推荐
5. 推荐系统的动态模型
RSVD model:(静态模型)
显性反馈系统中有如下几种显著的时间效应:
(1) 社 会兴趣随时间变化(Social Preference Shifting);
社会兴趣代表了所有用户的平均兴趣,因此一 个系统所有物品的平均得分的变化可以体现社会兴趣的变化。
(加入bt作为时间变化项)
(2) 用户偏好随时间变化(User Bias Shifting);
(将but分解,用户u和时间t的特征向量)
(3) 物品的受欢迎程度随时间变化(Item Bias Shifting);
(4) 用 户个人兴趣随时间变化(User Preference Shifting)
TRSVD model:
参考文献:
1 项亮. 动态推荐系统关键技术研究[J]. 毕业生, 2011.
2 项亮. 《推荐系统事件》