基于 icf+als 矩阵分解+gbdt 的推荐
现在 recall 是 icf als 矩阵分解 rank 是 smart gbdt
可以先后验 ctr 后验 staytime 做 ab ,再先验 ctr (模型) 后验 staytime
基于 Word embedding + xgb 的推荐
基于 fm+lr 的推荐
基于 GBDT+LR 的推荐
基于 ItemToVector 的推荐
基于 ffm+wide&deep ->deepfm 的推荐
迭代步骤
1、埋点数据
2、模型迭代
现在 recall 是 icf als 矩阵分解 LDA item2vec rank 是 smart gbdt
整体架构流程图:
中青看点离线数据处理
1,数据探查
1.1 数据量
主要是:用以判断整体计算规模,优质用户数和采样准备
1、用户量:用户总量:3800W
2、文章量:文章总量:1200W
3、每用户平均行为量:日均事件总数:40E
4、用户行为数分布判断:
事件人数分布统计图
![image.png](https://intranetproxy.alipay.com/skylark/lark/0/2019/png/44971/1567748371820-14d54c04-836e-4b5e-91ee-816d0e7bfb3f.png#align=left&display=inline&height=149&name=image.png&originHeight=297&originWidth=758&size=16383&status=done&width=379)
5、每天的行为日志:40E多
1.2 数据质量
因各个业务系统原始数据上云,数据质量情况需摸排一下,看是否有清洗必要,我这边会提供相应工具(hive类型检查)
工具质量报告
1.3 数据内容
列级统计
对于各字段内的内容进行一下大体摸排,当前三点:
1,实数类型看最大值,最小值,平均值等(有现成组件)
2,类别型对类别数量和字典进行一下统计
3,日期格式是否统一
原始数据表分为三部分:用户表,文章表和事件表
事件比例:
事件数 | 人数占比 |
---|---|
<=1 | 2% |
<=2 | 5% |
<=3 | 7% |
<=4 | 10.3% |
<=100 | 51.9% |
<=200 | 63.21% |
<=300 | 69.84% |
<=400 | 74.6% |
<=500 | 78.3% |
<=800 | 85.3% |
<=900 | 86.9% |
<=1000 | 88.3% |
更详细的数据分析及字段含义见下表:
2,特征工程
用户_ID_
用户身份特征
年龄,直接可获取值,归一化
地域,可能需要转换一下,one hot
手机类型,可以直接获取到,embedding
活跃天数,可以直接获取到,归一化
性别, 可以直接获取到,one hot
国家,可以直接获得,embedding
城市,可直接获得,embedding
省份,可以直接获得,embedding
屏幕高度,例如1920
屏幕宽度,例如1080 ,先不做了
网络类型,可直接获取,one hot
渠道来源(备选)
事件类特征
7,15,30天浏览类型统计,需要统计计算,取top5的类型,one hot类别,数可以先不用
7,15,30天观看地域统计,需要统计计算,取top3的类型,one hot类别
7,15,30天观看时间段的统计,需要统计计算,24小时分割one hot
2、文章特征
文章ID,区分使用
发布日期,日期分段1,3,7,15,30,180, 1年以上,one hot表达
文章类别(新的表会有,频道),可直接获得,one hot
文章所有人平均阅读时长,需要统计计算,先直接输入数值
文章阅读率,需要统计计算,先直接输入数值
文章点击率,需要统计计算,先直接输入数值
分享率,可以直接获得
二分率,(待确认确定一下)
点击率,需要统计计算一下
阅读量,可以直接获取
点赞量,可直接获取
评论量,可直接获取
收藏量,可直接获取
分享量,可直接获取
是否机构文章,可直接获取
是否作者文章,可直接获取
作者id,可直接获取
文章时效性,可直接获取
关键词embedding ,需要另外一个全量语料库,得到标签的embedding
3,样本生成
当前选取文章为推荐的第一阶段目标,样本生成策略:
1,为了排除极端用户的事件情况,同时覆盖大多数用户的行为,所以,根据1中事件统计信息选择事件大于4小于1000的用户,站全部用户比78%
2,为了排除羊毛党的影响,过滤掉数美和腾讯云安全检测的非正常用户
3,事件类型根据事件稀缺程度排序为:
contentshow(内容展现)
contentClick(内容点击)
(阅读完成度)
veiwFullContent(查看你内容全文)
contentOperatorion(内容操作,收藏,写评论,分享)
shareSucess(分享成功,微信,朋友圈,QQ好友)
其中正样本的定义为:contentShow 同时 contentClick事件出现,默认为1倍权重
其中负样本的定义为:contentShow 同时 contentClick事件没有出现,默认为1倍权重
对于正反馈权重加权的定义为阅读完成度100%或者viewFullContent事件发生,定义为2倍权重,contentOperation出现收藏,分享为3倍权重,暂时不考虑其他激励
对于负反馈权重加权的定义为(安卓用户)阅读没有完成100%或者viewFullContent事件发生,定义为2倍负权重,暂时不考虑其他负激励
因为安卓用户和ios用户事件定义不一样,负激励处理要根据用户比例再确认,如果ios用户较少,可以至用安卓用户。
正负样本如果比例不均衡的情况下,以削减剩余过剩样本,或随机增加,看具体数据情况。所有样本以样本出现倍数为激励,样本label为0和1
召回训练集。用户历史七天点击文章列表,统计一下7天的事件量人群分布,如果某用户7天内事件不够丰富,向前推一段时间窗口,如果事件比较丰富,可以部分筛检一些
先样本用户生成,再做事件处理的样本拼接。
中青看点线上数据处理
特征工程
1、用户特征表
1.0 用户基础特征
用户 id user_id
性别 wx_user.sex user_sex
用户积分 wx_user.total_score user_total_score
注册时间 wx_user.reg_time user_reg_time
总活跃天数 wx_user.active_days user_active_days
会员状态 wx_user.status user_satus
数美风险等级 wx_user.sm_level user_sm_levl
腾讯云风险等级-手机 wx_user.iphone_status user_iphone_satus
腾讯云风险等级-微信 wx_user.wechat_status user_wechat_status
是否绑定身份证 wx_user.is_bind_card user_bind_card
1.1 用户统计特征
APP元素点击_1天统计 $AppClick user_AppClick _1_days
APP退出_1天统计 $AppEnd user_AppEnd_1_days
APP启动_1天统计 $AppStart user_AppStart_1_days
APP浏览页面_1天统计 $AppViewScreen user_AppViewScreen_1_days
H5元素点击_1天统计 $WebClick user_WebClick_1_days
H5热力图_1天统计 $WebStay user_WebStay_1_days
H5浏览页面_1天统计 $pageview user_pageview_1_days
内容评论操作_1天统计 ContentCommentOperation user_ContentCommentOperation_1_days
广告点击_1天统计 adClick user_adClick_1_days
广告展现_1天统计 adShow user_adShow_1_days
输入手机号_1天统计 bindphone1 user_bindphone1_1_days
手机绑定_1天统计 bindphone2 user_bindphone2_1_days
点击频道ICON_1天统计 clickChannel user_clickChannel_1_days
浏览内容详情_1天统计 contentClick user_contentClick_1_days
内容加载成功_1天统计 contentDownloadSuccess user_contentDownloadSuccess_1_days
内容操作_1天统计 contentOperation user_contentOperation_1_days
内容展现_1天统计 contentShow user_contentShow_1_days
完整播放视频_1天统计 endPlayVideo user_endPlayVideo_1_days
进入TAB页_1天统计 enterTab user_enterTab_1_days
提现_1天统计 exchangeResult user_exchangeResult_1_days
退出内容详情页_1天统计 exitContentDetail user_exitContentDetail_1_days
获得验证码_1天统计 getCode user_getCode_1_days
APP登录_1天统计 login user_login_1_days
应用外push点击_1天统计 outerPushClick user_outerPushClick_1_days
提交评论_1天统计 postContentComment user_postContentComment_1_days
搜索_1天统计 search user_search_1_days
点击搜索框_1天统计 searchClick user_searchClick_1_days
点击搜索结果_1天统计 searchResult user_searchResult_1_days
分享_1天统计 share user_share_1_days
分享方式选择_1天统计 shareMethodChoose user_shareMethodChoose_1_days
签到_1天统计 signIn user_signIn_1_days
开始播放视频_1天统计 startPlayVideo user_startPlayVideo_1_days
APP元素点击_3天统计 $AppClick user_AppClick _3_days
APP退出_3天统计 $AppEnd user_AppEnd_3_days
APP启动_3天统计 $AppStart user_AppStart_3_days
APP浏览页面_3天统计 $AppViewScreen user_AppViewScreen_3_days
H5元素点击_3天统计 $WebClick user_WebClick_3_days
H5热力图_3天统计 $WebStay user_WebStay_3_days
H5浏览页面_3天统计 $pageview user_pageview_3_days
内容评论操作_3天统计 ContentCommentOperation user_ContentCommentOperation_3_days
广告点击_3天统计 adClick user_adClick_3_days
广告展现_3天统计 adShow user_adShow_3_days
输入手机号_3天统计 bindphone1 user_bindphone3_3_days
手机绑定_3天统计 bindphone2 user_bindphone2_3_days
点击频道ICON_3天统计 clickChannel user_clickChannel_3_days
浏览内容详情_3天统计 contentClick user_contentClick_3_days
内容加载成功_3天统计 contentDownloadSuccess user_contentDownloadSuccess_3_days
内容操作_3天统计 contentOperation user_contentOperation_3_days
内容展现_3天统计 contentShow user_contentShow_3_days
完整播放视频_3天统计 endPlayVideo user_endPlayVideo_3_days
进入TAB页_3天统计 enterTab user_enterTab_3_days
提现_3天统计 exchangeResult user_exchangeResult_3_days
退出内容详情页_3天统计 exitContentDetail user_exitContentDetail_3_days
获得验证码_3天统计 getCode user_getCode_3_days
APP登录_3天统计 login user_login_3_days
应用外push点击_3天统计 outerPushClick user_outerPushClick_3_days
提交评论_3天统计 postContentComment user_postContentComment_3_days
搜索_3天统计 search user_search_3_days
点击搜索框_3天统计 searchClick user_searchClick_3_days
点击搜索结果_3天统计 searchResult user_searchResult_3_days
分享_3天统计 share user_share_3_days
分享方式选择_3天统计 shareMethodChoose user_shareMethodChoose_3_days
签到_3天统计 signIn user_signIn_3_days
开始播放视频_3天统计 startPlayVideo user_startPlayVideo_3_days
APP元素点击_7天统计 $AppClick user_AppClick _7_days
APP退出_7天统计 $AppEnd user_AppEnd_7_days
APP启动_7天统计 $AppStart user_AppStart_7_days
APP浏览页面_7天统计 $AppViewScreen user_AppViewScreen_7_days
H5元素点击_7天统计 $WebClick user_WebClick_7_days
H5热力图_7天统计 $WebStay user_WebStay_7_days
H5浏览页面_7天统计 $pageview user_pageview_7_days
内容评论操作_7天统计 ContentCommentOperation user_ContentCommentOperation_7_days
广告点击_7天统计 adClick user_adClick_7_days
广告展现_7天统计 adShow user_adShow_7_days
输入手机号_7天统计 bindphone1 user_bindphone7_7_days
手机绑定_7天统计 bindphone2 user_bindphone2_7_days
点击频道ICON_7天统计 clickChannel user_clickChannel_7_days
浏览内容详情_7天统计 contentClick user_contentClick_7_days
内容加载成功_7天统计 contentDownloadSuccess user_contentDownloadSuccess_7_days
内容操作_7天统计 contentOperation user_contentOperation_7_days
内容展现_7天统计 contentShow user_contentShow_7_days
完整播放视频_7天统计 endPlayVideo user_endPlayVideo_7_days
进入TAB页_7天统计 enterTab user_enterTab_7_days
提现_7天统计 exchangeResult user_exchangeResult_7_days
退出内容详情页_7天统计 exitContentDetail user_exitContentDetail_7_days
获得验证码_7天统计 getCode user_getCode_7_days
APP登录_7天统计 login user_login_7_days
应用外push点击_7天统计 outerPushClick user_outerPushClick_7_days
提交评论_7天统计 postContentComment user_postContentComment_7_days
搜索_7天统计 search user_search_7_days
点击搜索框_7天统计 searchClick user_searchClick_7_days
点击搜索结果_7天统计 searchResult user_searchResult_7_days
分享_7天统计 share user_share_7_days
分享方式选择_7天统计 shareMethodChoose user_shareMethodChoose_7_days
签到_7天统计 signIn user_signIn_7_days
开始播放视频_7天统 startPlayVideo user_startPlayVideo_7_days
2、文章特征表
文章 id wx_feed.id article_id
文章发布时间 wx_feed.publish_time article_publish_time
文章类型 wx_feed.type article_type
文章标题 wx_feed.title article_title
关键字 wx_feed.keywords article_keywords
标签类型 wx_feed.tagid article_tagid
文章统计特征
内容评论操作\_1 天统计 ContentCommentOperation article_ContentCommentOperation_1_days
浏览内容详情\_1 天统计 contentClick article_contentClick_1_days
内容加载成功\_1 天统计 contentDownloadSuccess article_contentDownloadSuccess_1_days
内容操作\_1 天统计 contentOperation article_contentOperation_1_days
内容展现\_1 天统计 contentShow article_contentShow_1_days
完整播放视频\_1 天统计 endPlayVideo article_endPlayVideo_1_days
退出内容详情页\_1 天统计 exitContentDetail article_exitContentDetail_1_days
提交评论\_1 天统计 postContentComment article_postContentComment_1_days
分享\_1 天统计 share article_share_1_days
分享方式选择\_1 天统计 shareMethodChoose article_shareMethodChoose_1_days
开始播放视频\_1 天统计 startPlayVideo article_startPlayVideo_1_days
内容评论操作\_3 天统计 ContentCommentOperation article_ContentCommentOperation_3_days
浏览内容详情\_3 天统计 contentClick article_contentClick_3_days
内容加载成功\_3 天统计 contentDownloadSuccess article_contentDownloadSuccess_3_days
内容操作\_3 天统计 contentOperation article_contentOperation_3_days
内容展现\_3 天统计 contentShow article_contentShow_3_days
完整播放视频\_3 天统计 endPlayVideo article_endPlayVideo_3_days
退出内容详情页\_3 天统计 exitContentDetail article_exitContentDetail_3_days
提交评论\_3 天统计 postContentComment article_postContentComment_3_days
分享\_3 天统计 share article_share_3_days
分享方式选择\_3 天统计 shareMethodChoose article_shareMethodChoose_3_days
开始播放视频\_3 天统计 startPlayVideo article_startPlayVideo_3_days
内容评论操作\_7 天统计 ContentCommentOperation article_ContentCommentOperation_7_days
浏览内容详情\_7 天统计 contentClick article_contentClick_7_days
内容加载成功\_7 天统计 contentDownloadSuccess article_contentDownloadSuccess_7_days
内容操作\_7 天统计 contentOperation article_contentOperation_7_days
内容展现\_7 天统计 contentShow article_contentShow_7_days
完整播放视频\_7 天统计 endPlayVideo article_endPlayVideo_7_days
退出内容详情页\_7 天统计 exitContentDetail article_exitContentDetail_7_days
提交评论\_7 天统计 postContentComment article_postContentComment_7_days
分享\_7 天统计 share article_share_7_days
分享方式选择\_7 天统计 shareMethodChoose article_shareMethodChoose_7_days
开始播放视频\_7 天统计 startPlayVideo article_startPlayVideo_7_days
3、事件表
用户 id org_event_topic.$.distinct_id user_id
文章id org_event_topic.$properties.contentID article_id
国家 org_event_topic.$properties.$country event_country
省份 org_event_topic.$properties.$province event_province
城市 org_event_topic.$properties.$city event_city
手机型号 org_event_topic.$properties.$model event_phone_model
网络类型 org_event_topic.$properties.$network_type event_network_type
事件类型 org_event_topic.$.event event_type
事件时间 org_event_topic.$.time event_time
排序升级为 XGB 排序
召回升级为 fm,用户特征存在 Redis,item 特征存在 faiss,向量之间做乘积
开发工具为 TF
tf 的 FM 接入 kafka 的增量数据实时训练,然后 FM 即做召回,又做排序。
用户画像 emb,item 基础信息 emb,对多个召回在做排序。
作者张俊林
3、流式计算
基于 flink 的实时推荐