GBRank的问题列表


0 串讲列表:
样本的采样有哪些方式?
- gbdt在gbrank中有什么作用? gbrank可以用其它的方法来替代gbdt? 如果有, 该方法是怎么工作的?
- gbrank如何防止过拟合?
- gbdt在训练和预测的时候, 都用到了步长, 两个步长是一样的? 有什么用, 如果不一样, 为什么? 怎么设步长的大小? (太小? 太大?) 
     在预测时, 设太大对排序结果有什么影响? 跟shrinking里面的步长一样么?
- 树(CART)为什么要剪枝? 如何剪枝的
- gbrank的h(x)函数为什么要加变量  不加可不可以? 加了有什么作用? 设多大才合适? 太大对排序有什么影响么?
- boosting的本意是什么? 跟bagging, random forest, adaboost, gradient boosting有什么区别?


1 样本的采样有哪些方式?
- 按query进行采样?
    - 随机选择query, 一旦选择了某个query, 则该query的所有url都被选择了.
    需要注意的时, 对于不同的query, 它的url个数是不一样的(尽管对于query而言, 采样是等概率的, 而对于url而言不是等概率的).
- 按url进行采样
    - 是事先对每个query的url组成url对然后随机采样url对?
    - 是对url进行采样, 然后对采用到的url进行pairing(要注意只有在同一个query下的url才可以pairing).
    不同query的url进行采样时, 它们显得更随机(但是对于query而言, 还是多url的query被抽到的概率偏大)
    但是有可能导致抽到query的url不足以pairing.
- 哪种更好? 优缺点?
    query的: 对于query而言是随机的, 但是对于query的url而言是绝对的, 可保证每个query的url能够pairing
    url的: 更随机.
    由于训练样本是url对, 所以希望在抽样的时候, 抽到url的概率是随机的, 所以选择"url"方案.
实际上是结合query采样和url采样, 对于urls少的query用query采样, 对于urls多的采样url采样.


2 gbdt在gbrank中有什么作用? gbrank可以用其它的方法来替代gbdt? 如果有, 该方法是怎么工作的?
gbdt在gbrank的作用是在每次迭代中, 用负梯度来产生一颗回归树来拟合样本的负梯度, 用拟合后的负梯度来更新模型.
如果能够用其它的方法来拟合每次迭代中的 负梯度 , 那么该方法就可以替代gbdt. 而这个问题,  本质上是个回归问题.  所以可以用一些回归的方法来替代gdbt. (这样就不一定体现boosting的思想了).


3 gbrank如何防止过拟合?
- 增加样本(data bias or small data的缘故), 移除噪声
- 减少特征, 保留重要的特征(可以用PCA等对特征进行降维)
- 对样本进行采样(类似bagging)
    就是建树的时候, 不是把所有的样本都作为输入, 而是选择一个子集.
- 对特征进行采样
    类似样本采样一样, 每次建树的时候, 只对部分的特征进行切分.
但采样有个很严重的问题, 就是不可复现, 也就是每次的训练结果不一样, 不知道是调了参数导致效果好, 还是采样导致效果好, 还是其他的?
- 迭代中更关注上次迭代分错的样本(但是华哥说, 这是为了更好的拟合目标函数, 而不是防止过拟合).
在迭代中, 动态调整学习率.
     通过对比训练集上的loss和验证集上的accuracy, 当发现loss持续减少, 而accuracy不再提高的时候, 可以判读出现了过拟合. 
     (这点上, 与华哥的理解不一致, 华哥认为是欠拟合).
     这时要么停止训练, 要么调小学习率, 继续训练?
    - 训练模型的同时学习学习率/步长. (见7)
- 对回归树进行剪枝 (见9)
- 减少回归树的个数, 尤其那些作用不大的回归树(在验证集上进行测试).


4 cross entropy loss的物理意义是啥?
根据公式 - log2(p^y * (1-p)^(1-y))  ==> -y*log2(p) - (1-y)*log(1-p) (由于出于方便, 就不写完整的公式).
当预测的概率p和真实label y一致时, loss理应很小; 当它们不一致时, loss会呈指数级增加, 从而惩罚不一致的样本.
所以在训练的时候, 通过惩罚不一致的情况, 来拟合真实情况.
一句话概括: 就是尽可能地让学到的分布与真实分布一致.




ltr相对于传统方法有什么好处 or ltr与传统调参法有什么优缺点? ltr输入是啥?
- 可以自动学习模型的权重 (当然也可以加入领域知识作为约束来优化模型).
- 易扩展: 对于新增的样本或者特征, 容易加入到原来的模型中, 再重新训练模型.
- 成本低(相对于人工调参而言)
- 容易学习到特征之间的关系.
(快速验证模型的好坏 (相对于传统模型, 训练过程快) ==> 个人想法有待验证)
以上都是针对样本数量大, 特征维度高的情况, 要不然, 直接人工模型即可.
迁移学习

ltr的输入:
- feature + label
- feature + new feature + label
- output from models + labels
-   output from models  + feature + label
-   output from models  + new feature+ label
-   output from models  + feature+  new   feature  + label
- ...
- end-to-end的过程, 即模型训练和特征学习是同时进行的. (raw input ?)


6 ltr怎么定义? ltr的流程是什么(pointwisepairwiselistwise.) 
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值