商品推荐方案讨论、E&&E算法以及deep learning如何作用于推荐系统中的排序

  • 经常用于冷启动的bandit算法
    商品推荐方案讨论、E&&E算法以及deep learning如何作用于推荐系统中的排序

  • 推荐系统和计算广告中经常会碰到某些长尾广告或长尾item从来没有机会或者很少机会的展示,
    导致CTR预估非常不准,需要探索性地创造机会给它们一定的展示量,但又不能带来太大的损失。
    这种问题一般称作Explore and Exploit问题。
    在学术界经常把它描述成为一个多臂**机问题(multi-armed bandit problem, MAB),若干台**机,
    每次可以选择一台机器摇一下,有一定概率会吐钱出来,但各台机器吐钱概率不一致且未知,
    那么赌徒每次该如何选择来最大化收益?
    每个**机相当于一个item,吐钱:item的质量(简单的看作点击率)赌徒:推荐算法,这样就把我们的推荐系统映射到bandit算法了

  • 探索和利用(Explore and Exploit):概念介绍
    exploit-explore问题,
    exploit意思就是:对用户来说,是比较确定的用户兴趣,对item来说,系统知道这个item的质量(丰富行为产生的历史ctr)
    explore意思就是:不断探索用户新的兴趣才行,不然很快就会出现一模一样的反复推荐。对item来说,
    针对新出现的item,要给一定的概率进行推荐试错。
    商品推荐方案讨论、E&&E算法以及deep learning如何作用于推荐系统中的排序

  • 用bandit算法解决冷启动的思路
    用圈定的推荐候选item表示每个用户不同兴趣,也就是MAB问题中的臂(Arm),通过几次试验,
    来刻画出新用户心目中对每个item的感兴趣概率。
    如果用户对某个item感兴趣(提供了显式反馈或隐式反馈),就表示得到了收益,ctr
    如果推给了它不感兴趣的item,推荐系统就表示无收益。无点击
    如此经历“选择-观察-更新-选择”的循环,理论上是越来越逼近用户真正感兴趣的item。
    这里介绍一下UCB算法,UCB算法全称是Upper Confidence Bound(置信区间上界):
    xjˉ(t)+2lntTj,t\bar{x_{j}}(t)+\sqrt{\frac{2\ln t}{T_{j,t}}}xjˉ(t)\bar{x_{j}}(t)代表第tt轮时第jj个item的平均点击率,其中加号前面是这个item到目前为止的收益均值(平均点击率),后面的叫bonus,Tj,tT_{j,t}是这个item被展示次数。
    关于UCB的计算公式,可以这么理解:
    公式右边的第一项,可以称之为“Exploitation Term”; 第二项,可以称之为“Exploration Term”。 为什么? 首先,如果一个臂,到t时刻为止,已经尝试了很多次。那收益(UCB公式右边第一项)越高,越会继续采用。这就是Exploit; 此外,如果一个臂尝试的次数很少,那么UCB右边第二项就会比较高。也就是相对尝试的机会更高。这也就是Exploration。也就是相应也会鼓励去尝试哪些之前尝试的少的臂。
    举个例子:
    池子是1000个新item,展现1万次以上,默认展现充分,剔除这个池子,新来的item进入这个池子,(使用队列,pop,push的思路操作)
    实验思路:先对每一个item都试一遍,之后,每次选择UCB值最大的那个item,其中加号前面是这个item到目前为止的收益均值(平均点击率),后面的叫bonus,t是目前1000个item的总的试验次数,Tj,tT_{j,t}是这个item被展示次数。
    这个公式反映:收益均值ctr越大,bonus越小,被选中的概率会越来越大,同时那些被选次数较少的item也会得到试验机会。
    获取这个item的实时点击率

  • Epsilon-Greedy算法:
    选一个(0,1)之间较小的数epsilon,每次以概率epsilon(产生一个[0,1]之间的随机数,比epsilon小)做一件事:所有圈定的1000个item中随机选一个。否则,选择截止当前,选择平均ctr最大的那个item进行展现。(每次以 Epsilon 的概率在 N 臂老虎机中随机选择一个拉杆,否则就选择目前为止平均收益最大的那个拉杆)
    这种算法简单粗暴,epsilon的值可以控制对探索和利用的偏好程度。

  • Thompson sampling算法(汤普森采样):

  1. 假设1000个当中,每个item是否产生ctr,其背后都服从一个概率分布(β\beta分布),产生收益的概率为p。
  2. 我们不断地试验,去估计出一个置信度较高的“概率p的概率分布”近似解决这个问题。
  3. 怎么能估计“概率p的概率分布”呢?
    答案是假设概率p的概率分布符合beta(clk, no clk)分布,它有两个参数: clk, no clk。
  4. 每个item都维护一个beta分布的参数。每次试验后,选中一个item,展示一下,有clk则该item的clk增加1,否则该item的no clk增加1。
  5. 每次选择item的方式是:
    用每个item现有的beta分布产生一个随机数b,选择所有item产生的随机数中最大的那个item去展现。

choice = numpy.argmax(pymc.rbeta(1 + self.clk, 1 + self.noclk - self.clk))商品推荐方案讨论、E&&E算法以及deep learning如何作用于推荐系统中的排序
GMV,QPS,RT是什么?
GMV:电商里面经常会用的一定时间内的商品成交总额
QPS:
对于特定的server,在一定时间内处理的流量
举个例子:假设server1每秒1000qps(query per second,每秒处理1000次请求)
RT
server1对每次请求的评价响应时间
用户不至于产生厌恶情绪要求要求RT<100ms
优化性能:
1.减少排序候选的数量,1000-》100
卡召回的阈值
2.
一次request
response流程:解析请求(获取user id),去索引里拉取倒排,进行召回的阈值过滤,进排序模型进行排序
优化排序:
裁剪模型:让模型参数变得更少,在AUC(效果)和RT(效率)之间进行tradeoff

  • 对推荐系统的理解
    推荐系统有什么作用?
    1.提升用户体验,帮助用户节省时间,优化用户体验
    搜索和推荐有什么关系,推荐的效果越好,用户主动搜索的意愿越小
    用户对app,网站也好,熟悉感更好,好感,长期来看,对提升用户留存越高
    提升GMV
    我们对推荐系统的理解是什么?
    第一阶段:根据用户兴趣,分析出下一次希望获取的信息,然后推荐给用户
    第二阶段:对用户进行引导,培养,让用户按照我们设定的路线去使用我们的产品
    靠技术
    靠提升效率的技术
    靠推荐的更好
    怎么推荐的更好,靠兄弟们设计的算法,设计的item embedding,user embedding,排序算法更加精确
    电影推荐系统和电商推荐系统有什么区别?
    y(clk,no clk)=model(user,item,context)
    举个例子:
    user:对于电影来讲,用户喜欢武打片(用户观看过武打片)大概率一直喜欢武打片
    对于电商来讲,用户喜欢某一品牌的电视,下次推电视就是不合理的
    item:对于全世界的电影来讲,几十万部
    对于商品来讲,商品会下线,保守估计百万两级
    假设item要embedding成100维的向量,对于商品来说,纸巾,衣服,裤子,鞋子…
    对于电影来讲,成龙电影和ab的电影,区别不是很大,即电商推荐系统的难度还是要大一些的。

    实际业务场景数据量最大的两个场景
    首页:猜你喜欢
    详情页:相关推荐

    推荐系统其实是诸多互联网公司的重要业务
    理解推荐系统要必须从业务角度,用户视角出发,而不是从算法 视角

推荐论文:Neural Collaborative Filtering