LOGO排序介绍课程回顾为什么要排序排序指标排序的流程LOGO排序介绍作业计算MAP计算nDCGLOGO排序介绍排序流程数据预处理特征抽取模型训练后处理LOGO模型训练PointWisePairWise主要是将排序问题转化为机器学习中常规的分类或回归问题。预测单个item点击率、转化率或相关度item1是否应该排在item2前面转换成二分类问题LOGO模型训练PointWise建模转换成二分类问题:预测点击率、转化率xf(x)[0,1]损失函数LogLoss-ylog(f(x))-(1-y)log(1-f(x))LOGO模型训练PointWise建模多标签怎么办转换成多分类问题?转换成带权重的二分类问题转换成回归问题LOGO模型训练PointWise建模带权重的二分类问题label越大权重越大正样本带权重,负样本不带损失函数LogLoss[-ylog(f(x))-(1-y)log(f(x))]*weightLOGO模型训练例如:特征标签权重损失x101-log(1-f(x1))x211-log(f(x2))x3510-log(f(x3))*10x401-log(1-f(x1))LOGO模型训练PointWise建模多标签问题:回归正样本是大于0数,具体值根据需要调整损失函数:负样本为0rmseLOGO模型训练特征标签目标值损失x100||f(x1)-0||^2x211||f(x2)-1||^2x3520||f(x3-20)||^2x400||f(x4)-0||^2例如LOGO模型训练PairWise方法(x1,x2)f(x1,x2)[0,1]损失函数:LogLoss-log(f(x1,x2))性质:f(x1,x2)+f(x2,x1)=1LOGO模型训练PairWise方法Pair生成转化大于点击点击大于不点击转化大于不点击LOGO模型训练例子特征标签x10x25x31x40pair损失(x2,x1)-log(f(x2,x1))(x2,x3)-log(f(x2,x2))(x2.x4)-log(f(x2,x4))(x3,x1)-log(f(x3,x1))(x4,x1)-flog(f(x4,x1))LOGO模型训练总结:排序可以转化成这三种情况带权重二分类问题回归问题Pair排序预测xf(x)[0,1]x[-∞,+∞]f(x)(x1,x2)f(x1,x2)[0,1]f是什么?LOGO模型训练假设空间中:x[-∞,+∞]g(x)二分类:回归:Pair排序:f(x)=σ(g(x))f(x)=g(x)f(x1,x2)=σ(g(x1)-g(x2))LOGO模型训练g可以是任意的函数一次函数:线性模型二次函数:因子模型复杂函数:神经网络、树模型LOGO模型训练g可以是任意的函数一次函数:线性模型二次函数:因子模型复杂函数:神经网络、树模型LOGO模型训练因子模型矩阵分解:g(x)=u*iu和i都是向量LOGO模型训练因子模型:矩阵分解:u1[0.1,0.5,0.3]u2[0.5,0.3.0.1]i1[0.3,0.7,0,7]i2[0.3,0.4,-.5]x=(u1,i1)g(x)=0.1*0.3+0.5*0.7+0.3*0.7x=(u2,i1)g(x)=0.5*0.3+0.4*0.7+0.2*0.7LOGO模型训练因子模型:特征矩阵分解X=[r,a,b]部分参数带有因子项LOGO模型训练例子x=[r,a,b]r是4维向量,a是2维向量,b是3维向量因子数为3b是(4+2+3)维向量p是2*3矩阵q是3*3矩阵LOGO模型训练b:122320103p:q:123213025413213x[(1,0,1,0),(0,1),(1,1,0)]y=3+0+1+(2,1,3)*(4,3,8)=39LOGO模型训练b:p:q:123213025413213x[(1,1,0,0),(1,1),(1,0,1)]y=?122320103LOGO模型训练因子模型FacorizationMachineLOGO模型训练0.10.210.30.401v:x[1,0,1,0,0,0,1]y=0.5+2.1+v1*v3+v1*v7+v3*v7=0.5+2.1+0.61+2.01+1.06=6.28例子x:维度为7w0:0.5w1因子为3个0.1020.30.70.50.10.50.30.50.10.20.20.90.40.210.80.11.51LOGO模型训练0.10.210.30.401v:x[1,0,1,0,0,1,0]y=?例子x:维度为7w0:0.5w1因子为3个0.1020.30.70.50.10.50.30.50.10.20.20.90.40.210.80.11.51LOGO模型训练算法优化:减少乘法个数LOGO模型训练算法优化(x1*v1)*(v2*x2)+(x1*v1)*(x3*v3)+(x2*v2)*(x3*v3)=[(x1*v1+x2*v2+x3*v3)^2-(x1*v1)^2-(x2*v2)^2-(x3*v3)^2]/2假设长为3v1,v2,v3的平方每次计算完保存LOGO模型训练算法优化向量平方保存v:0.1024.010.30.70.50.830.10.50.30.350.50.10.20.30.20.90.41.010.210.81.680.11.513.260.10.210.30.401w1w0:0.5x[1,0,1,0,0,1,0]y=?LOGO模型训练因子模型Field-AwareFMLOGO模型训练因子模型Field-AwareFMx=[0,1,1,0,1,1]=[(0,1),(0,1),(1,1)]例子:x分为三组因子矩阵也分为三组组内不做内积组间内积用不同的矩阵LOGO模型训练x=[0,1,1,0,1,1]=[(0,1),(0,1),(1,1)]v1v311021021v2v331102120v1v3v2v1v223121302y=(x1*v1,2)*(x2*v2,1)+(x1*v1,3)*(x3*v3,1)+(x2*v2,3)*(x3*v3,2)=(0,2)*(1,0)+(2,0)*(3,5)+(2,1)*(1,5)LOGO模型训练x=[0,1,1,0,1,1]=[(1,0),(1,0),(1,1)]v1v311021021v2v331102120v1v3v2v1v223121302y=?LOGO模型训练其他模型树模型随机森林GBDTLambdaRankLOGO大作业•内容:•利用数据对酒店进行排序•测试集没有:position,click_pool,gross_booking_usd,booking_book•评价指标:•NDCG–交易:5点击:1展示:0LOGO大作业数据类型描述Srch_idInteger搜索idDate_timeDate搜索时间Site_idIntegerExpedia.com,Expedia.co.uk,Expedia.co.jpVisitor_location_country_idInteger用户所在国家Vistor_hist_starratingFloat用户订酒店的平均星级visitor_hist_adr_usdFloat用户订酒店的平均花费prop_country_idInteger酒店所在国家LOGO数据类型描述prop_idInteger酒店IDprop_starratingInteger酒店星级prop_review_scoreFloat酒店平均评分prop_brand_boolInteger是否为连锁酒店prop_location_score1FloatAscoreoutliningthedesirabilityofahotel’slocationprop_location_score2FloatAscoreoutliningthedesirabilityofahotel’slocationprop_log_historical_priceFloatThelogarithmofthemeanpriceofthehoteloverthelasttradingperiod.大作业z大作业LOGO大作业数据类型描述positionInteger排名price_usdFloat价格promotion_flagInteger是否促销gross_booking_usdFloat预订费用srch_destination_idInteger目的地idsrch_length_of_stayInteger住宿天数srch_booking_windowInteger预订提前的天数srch_adults_countInteger成人人数srch_children_countInteger儿童人数srch_room_countInteger房间的个数srch_saturday_night_boolInteger是否包含周末srch_query_affinity_scoreFloat酒店被点概率的log值LOGO大作业orig_destination_distanceFloatPhysicaldistancebetweenthehotelandthecustomeratthetimeofsearchrandom_boolInteger是否随机排序comp1_rateInteger是否比同行低comp1_invInteger同行是否availablecomp1_rate_percent_diffFloat比同行低的比例