推荐系统搜索与用户行为建模I

1.用户画像(标签)
比如:程序员、男、SQL、运动、熬夜、阅读、游戏、计算机…
2.计算广告
用算法去匹配广告主和流量
LR+特征工程、树模型+模型融合、深度学习 (学习思想套路,万变不离其宗)
拆解问题去解决
3.推荐系统的一般架构
C端:用户端(ios,h5,Android)移动端
Server(服务端):接受C端发过来的请求,向下游去调用相应的算法服务;用到的技术栈有nginx、tomcat、spring (算法与这个会有一些交互,比如需要什么参数)
Algo:CF(挖掘用户历史行为、产生列表)、用户画像(给用户贴标签)、NLP和CV(对item进行深挖)、DL、知识图谱(实体间的关系作为实体间的依据)
Data:HDFS(分布式处理海量数据,python单机搞不定)、MySQL、Redis、ES
用户反馈:Kafka (消息队列的组建,接收管理客户端上传的数据)因为数据需要实时接收
流式计算:Flink、Spark 做实时的相关性推荐

4.信息流的典型数据闭环
客户端请求------模型serving(模型、画像)------曝光(通过模型得到列表返回给客户端进行渲染)/点击(以日志的形式出现)------客户端上报(客户端把日志上报到kafka上面)------实时流处理------清洗/挖掘(存储到HDFS里面)------模型训练(从HDFS里面拿出样本,feed到模型里面训练)------模型serving(模型迭代)
PS:
数据埋点是否正确;是否实时(是t的数据还是t+1的数据);日志上报是否正确;数据清洗是否正确
数据质量好,才能做好用户画像和推荐系统(不然模型效果出不来)

5.关键组件----用户画像
用户画像是真实用户的虚拟代表,是建立在一系列真实数据之上的目标用户模型
给用户贴标签,计算权重

6.关键组件------内容理解
profile
文本特征case:NLP命名体识别,主体识别,情感分析,反垃圾算法,文章摘要,语义标签体系
(今日头条曹欢欢的PPT)
CV:OCR,目标检测

7.关键组件------召回与排序
YouTube的推荐架构:
迅速召回候选集(基于内积),多路召回组合策略(不同模型的偏好不一样??),运营热点内容
video features:item profile

8.推荐系统大有不同
业务场景、面临的问题、架构、算法:
头条:新闻资讯
快手:短视频(NLP少很多)、用户行为很丰富
微博:复杂社会网络、实时热点、模型的时效性
咸鱼:上架商品的实时性(用哪种算法好)
知乎:基于问题、答案去推荐
Arbnb:双边收益最大化,双边系统

9.目标导向
不必拘泥于架构,而是要把业务抽象成模型,进而探求解决方案

Part II 从实际业务出发

1.场景:视频的相关推荐
上面:《惊蛰》
下面相关推荐:抗战题材
2.如何挖掘item的相似性?
解决方法:
视频理解:抽取关键帧,提取有用特征,生成封面
文本理解:演员,剧情摘要,nlp,提取特征
画像体系:视频画风类型年代,提取特征
协同过滤:找相似性,矩阵分解,聚类,分类方法,user,itemCF

3.用到什么样的数据–行为日志:
时间戳、userid、itemid、title、content、…

4.如何度量相似性?
关键是量化相似性:余弦相似度(item表示成向量,再计算相似度)
TF-IDF、embedding(item嵌入到另一个空间里面,item相似的距离比较近)

5.根据相似性做推荐?
通过模型计算越相近item距离越近–>取最近邻的内容作为候选集–>建立倒排索引快速找到相似内容
比如:用户阅读过A,就可以把A附近的item推荐给用户
有一个问题:候选量集很大,LSH hash的方法(陈老师讲过),基于数据建立索引的方法,图建立索引

6.抽象成机器学习的问题
机器学习几大要素:
如何建模问题(分类/聚类/回归)
如何定义损失loss function
用什么样的优化算法
如何处理样本数据:横纵向,横向:如何生成训练样本(traindata,线上data的分布,尽量一致,即采样问题)如:YouTube所采用的对于每个用户的样本量是相当的,防止激进的用户把模型带偏;
纵向:特征选取,尽量刻画用户、item、context特征(时间、网络环境、在家还是哪里看)

7.回到视频推荐的问题
word2vec:给定一个主item之后,找相似的item,可以用分类模型来预测:内积、sigmoid
负采样之后的内积:概率接近于0
(tip:关注数学公式背后的直观含义)

8.优化算法
梯度下降:batch adam 动量
牛顿法:二阶加速优化
共轭梯度:

9.数据组织,生成训练数据
把每个用户的行为,组织成一行一行的形式,每一行对应用户的阅读历史,按照时间顺序排列在一起
这个方法就相当于我论文里面的embedding的方式:每次扫描一个用户看过的一个item,用word2vec来训练,上下文的item还包括一些没看过的item,来训练,求得每一个item的特征向量

10.工程实现
1)将行为日志处理成特定格式:利用分布式数据处理框架,hive/python(pandas)/spark
2)利用word2vec算法求相似性:gensim、spark ML、tf、keras
3)为item的向量建立索引:faiss (LSH)

Part III RS和NLP的对比 (感觉这些简历都可能被问到)
思想相互借鉴:为什么在RS中行之有效
对比项1:基本假设
RS:邻近的浏览,兴趣点相似;
NLP:context相似的word,有相似的语义
对比项2:正例
RS:滑窗内的2条浏览记录;
NLP:滑窗内的2个单词(w,c)
对比项3:负例
RS:在用户画像内随机采样;
NLP:在语料库中随机采样
对比项4:下采样
RS:CTR过高的热门内容;
NLP:停用词等无实际意义的单词

11.RS任务借鉴NLP的思想
Seq2Seq、Attention、Bert
DSSM:深度语义匹配(塔状)
NLP任务借鉴RS的思想:图方法、度量学习

Part IV 回到实际场景
矩阵分解简介
SGNS embedding等价于PMI矩阵分解
NCE embedding等价于对数条件概率分解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值