推荐系统引擎——模型(1)

讲到引擎大家想到的是不是V8、斯特林、马自达转子发动机,今天要讲的是排序引擎,其实两者有很多相似之处。油液引擎主要部件如下:
1.火花塞——点火装置                        2.油液雾化

3.油气混合腔                                      4.压缩装置

5.输出动力曲轴                                  6.刚启动时候打火装置

preview

对应到排序引擎,火花塞就是用户请求过来,带上特征驱动排序服务器的反应装置;油液雾化对应的就是用户ID查询特征和item特征、场景特征混合拼接装置;油液混合腔对应的就是对把数据混合存放的线上即时响应数据库——Hbase、Redis...;点火后推送活塞运动对应的就是燃烧数据模型排序,影响排序结果输出过程,这个包括一般包括两冲程:召回、精排;动力输出对应就是排序结果,用户反馈又会返回再次驱动曲轴的往复运动;发动机刚启动时候需要手动启动过程对应就是冷启动,启动起来开始抽取油液自动运作过程,对应就是推荐系统冷启动后数据可以驱动模型自训练排序过程。

除了以上的核心部件,发动机还有很多辅助的系统,比如油液过滤装置把油液中铁屑过滤以防止渣滓伤害气缸;润滑系统减少机械件之间的相互摩擦;ECU结合油液燃烧特性为了达到输出动力平顺或强动力,调控点火时间、油液混合比。这些控制装置其实在排序引擎也有对应的体现,为了更好拟合序列分布脏数据过滤,防止过拟合正则工具,为了更好的响应不同工况增加各中策略比如疲劳度过滤、模型时间调权、场景调权、事件脱敏...如此看是否觉得汽车引擎的很多技术在更本质里和排序引擎时候相通的,在我们碰到问题没有思路时是否可以借鉴汽车引擎设计结构思考可能解决方案。

好了下面我们来具体介绍排序模型,这部分我们主要介绍推荐系统的发展历史,模型结构的演进历史背后原理是什么。这部分不会过多的讲解模型的数学推导和实现细节,但是会提供实现的简单版本。

协同过滤:itemBase userBase

1.利用用户在item上行为数据,建立共享矩阵

2.通过共线矩阵计算用户或item的相似用户或item

3.相似物品排序,过滤以有行为物品推荐

这个模型很好的利用了人、物共线特征可以比较好的发现统计规律共线行为。问题在于模型的泛化能力弱,模型对人、物、场特征利用率低。那是否有办法提高模型的泛化能力呢。

SVD&隐因子分解:利用人、item共线构建矩阵,把推荐问题看成是矩阵补全问题

1.构建item-人共线矩阵

2.把用户没有数据格子做矩阵补全

3.利用rsme最小来求解补全矩阵方程

从找相似做推荐到矩阵补全思路的演进,这是一个巨大进步。对信息的利用和提取是远大于相似推荐的,相似推荐是一个局部视野而矩阵补全需要考虑全局信息,所以模型的泛化能力比较强。然而仍然只能利用人、物共线数据,人、物共线数据信息量是否已经被萃取到极致了呢。

FFM模型:考虑item的域,不同的域特征和人共线的规律应该是有差别的;如果考虑域的差异在数据量预测效率是否会更好。

隐因子分解的原理其实就是用两个小矩阵来拟合一个大矩阵,直话讲就是希望用更少的因素来表征一个更大的矩阵。那如果我们要考虑item的域,是否可以把小矩阵看成每个元素都是有多个域组成的,前面用一个元素表示的事现在用一个向量表示不就好了;原理上事可以的,只是如何用数学方式表示,这个其实就是张量。用一组向量表示一个元素表达能力更强,但为了在表达能力和泛化力之间权衡,这组向量个数事要认真选择的。

FFM看起来是可以更好的萃取人、物共线数据的信息,但是item、人、场的特征时候一直是被忽略的,是否有种模型可以把这些特征给用起来呢。

基于内容推荐:基于内容的推荐是最直观想到推荐方法,基本思路就是考虑物和人的相似度,找出和人特征最相似的物品推给人;但其实背后涵盖了很牛逼的思路,item、用户特征用向量表示,然后计算item特征和用户特征相似度来做排序依据;那模型就可以很好的利用人、item各种特征,但是此时U2I特征似乎用不上、场景特征似乎也用不上,是否有个模型可以包打天下把各种数据特征都涵盖进来用起来呢。

LR模型:这个模型厉害的地方在于它一点也不厉害,😄开个玩笑。它厉害地方在于把相似度计算转变为是否相关问题,别看就这么小小的一步转变,世界豁然开朗。因为把问题由相似变成了是否相关问题,主要“是否”两个字这不是我们最喜欢的二分类问题嘛。所以分类模型用什么已经不重要了,重要在于可以把各种的item特征、user特征、u2i特征、场景特征、u2c、i2c、多模态特征...一股脑儿的拉平塞进来,世界似乎变成五颜六色美妙无比。LR问题在于线性模型,想的比较简单没办法很好拟合非线性场景,需要手撸各种特征耗时耗力,没法表征数据的结构信息。
MLR模型:这个模型缘何而生呢,LR模型很厉害了但是它毕竟太直女,只能表示表示是否;往往很多时候是需要考虑多领域的是否,而非简单的一统天下的单个“是否”。那是否有着解决这个问题呢,阿里12年偷偷用着的武功秘笈MLR,其实它就相当于在LR之前做了个聚类,然后在对每个类做LR分类。看论文看他的loss你就可以知道包括LR和聚类两部分。别看只是改了这些加了一层而已,但是在多场景推荐中效果了得。那是否推荐系统就登峰造极了呢,显然是没有的;最简单的手撸特征问题、非线性表达能力不够问题都没解决。

GBDT+LR

WIDE&DEEP

EMbbeding

模型的演变推动力在于如何利用更多的数据特征、如何让模型泛化能力更强;更本质原因就是如何让排序结果更准,如何提高数据的燃烧产热率(信息提取率)。
 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值