详细解决方案
                
                  day1 - 推荐系统碎碎念
                  热度:52   发布时间:2023-12-07 01:26:48.0
                  
					
						
						
					
                  	
  
 
 
  - 三要素 
   
 
  - 算法 
   
 
  - 做推荐,一个基本点,货找人
 
  - label = model(item, user, context) -- 3个input 
   
    - label是指什么? --业务上的指标:可以是点击、收藏、加购、评分等
 
    - 例如:对于点击指标-- label 是预估出当前item被user点击的概率
 
   
 
  - 针对user我们可以设计哪些特征 
   
    - 兴趣,历史点击浏览行为,用户的标签,用户自身的属性
 
   
 
  - 针对item我们可以设计哪些特征 
   
    - 统计类特征(点击率、购买率),内容类特征(category, title)
 
   
 
  - context 
   
 
  - model可以是哪些? 
   
    - 任意的模型都是ok的
 
    - label = model(item, user, context)
 
    - 单目标学习
 
    - 多目标学习也是一个趋势
 
    - label1, label2, label3= model(item, user, context)
 
    - LR、gbdt、xgb、dnn、fm、ffm、deepfm、dcn、wide & deep、ftrl、MMOE的多任务学习框架、DIN、DIEN
 
   
 
  - 预估出的概率怎么使用?
 
  - item、user、context特征哪个更重要,为什么?
 
  - 如何用技术手段判断item重要还是user重要? 
   
    - 本质上来讲就是特征重要性
 
    - 答案:是item更加重要 ?label = model(user, context),没有item就没法排序,对于一个到达用户,若没有item,则对于所有的候选item,所有的用户,context的特征都是一样的,根本无法区分
 
    - label = model(item, context), 对于一个到达用户,没有用户特征,还是能依据item特征进行排序的,可能性能或个性化做不好
 
   
 
  - 统计类特征,具体是指什么统计?怎么统计?
 
  - 我们所说的推荐数据具体是什么?
 
  - 假设库存100万短视频,候选是100万全预估排序么?
 
  - 为什么要召回?
 
  - 是不是所有的推荐系统都要用召回?哪些情况下不需要用? 
   
    - 在线延迟必须小于0.1s,机器能一次拍出来的item的总数
 
   
 
  - 召回的具体形式是什么?
 
  - 针对中间的app,能设计出哪些类型的召回分支
 
  - 召回 
   
    - 字典 
     
      - dict={}
 
      - key, value, score
 
      - key有哪些, value有哪些?
 
      - key: user, 类别,topic, hot(热度)、item、tag...
 
      - value: itemlist
 
      - score: 衡量value相对于key的相似的概率
 
      - key-value:本质上来讲是i2i,u2u,通过协同过滤算法计算
 
     
 
   
 
  - 听过UGC么?用户生成内容
 
  - 排序模型的item的数量多少由什么决定?label1, label2, label3= model(item, user, context) 
   
    - 由召回分支的相似度topk进行截断后输入给排序模型 
     
      - k:在线延迟必须小于0.1s,机器能一次拍出来的item的总数
 
     
 
   
 
  - u2i
 
  - key: user, value:item
 
  - key:user, 类别,topic, hot(热度)、item、tag...
 
  - 针对某个用户在线的一次请求 
   
    - i2i、u2i...这些都是离线生成好的,用户在线请求的时候,会对用户进行这些key的抽取,进行召回(召回的key是在线查询的),每次排序都要重新召回
 
   
 
  - 为什么每次排序都需要重新召回?
 
  - 召回分支是user2i,u2i是怎么计算得到的? 
   
    - 通过log实时挖掘出user点击历史,生成u2i(value是用户一段时间内的itemlist)
 
    - 日志(log),log从哪来?log的具体的工程链路是什么样的? 
     
      - 每个用户手机里客户端埋点(记录下用户的点击、浏览、曝光、点赞、评论、关注、等等等)行为
 
      - phone上回传回公司的服务器,实时数据传输工具kafka -> 计算机集群上(storm、haodoop)-> 实时的数据拼接 -> 用户id、item id、behavior -> 形成log,形成data_1.csv,整体这条工程链路是实时的,就可以拿到u2i
 
     
 
    - 曝光过滤的逻辑
 
    - dict,召回分支
 
    - i2i
 
    - 例子:实时获取当前用户前10次点击的itemlist,依据当前用户前10次(时间窗口可以设置为1个月,1个星期,1天等)点击的itemlist作为key,去查询i2i(离线协同过滤计算好的)
 
   
 
  - 电商推荐系统的业务指标和技术指标分别是什么? 
   
    - 业务指标GMV(商品成交总额(一段时间内))
 
    - 衡量技术上排序模型的指标是AUC
 
    - GMV = 购买量 * 商品平均单价
 
    - 购买量=点击率之后的购买率
 
    - 点击人数和购买人数一般来说呈现正相关
 
    - 排序模型优化的是点击率和购买率
 
   
 
  - 机器学习的本身
 
  - 用监督学习还是非监督学习来解决推荐问题?
 
  - QPS、RT 
   
    - QPS(query per second):对于特定的server,在一定时间内处理的流量,每秒100qps
 
    - RT:server对于请求的响应时间, RT < 0.1s
 
   
 
  - 飘红 
   
    - 关注tab上的关注红点有什么作用?
 
    - 推荐首页一般叫做猜你喜欢
 
    - 关注页
 
    - 红点打与不打对猜你喜欢这个页面有什么影响?有无影响? 
     
 
   
 
  - 搜索框 
   
    - 搜索框做的好对猜你喜欢这个页面有什么影响,还是没有影响? 
     
 
   
 
  - 底纹词,搜索框里嵌入了一个推荐系统,做词的推荐