带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(4)

简介: 带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(4)

带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(3) https://developer.aliyun.com/article/1246866?groupCode=taobaotech



event流程构建


首先对曝光/点击和全埋点特征TT流进行日志解析生成对应的event,在 PyPorsche 中,实时特征被称为 Event。


每个event表具有自己的schema和主键,注意event_ids为业务的唯一主键,index_fields中需填入后续会用于和其他表进行join操作的字段。


以下是将曝光的TT流解析并转换为对应event的代码片段:


tt_source = TTSource(TT(topic='dwd_ihome_lapp_content_expo_sample',
 access_id='',
 access_key=''),
 parser_clazz='com.alibaba.pyporsche.ihome.IhomeLappLogParser',
 schema=ihome_tt_schema)#schema
tt_source = session.register_table(tt_source)
ihomelapp_sink = session.register_table(
 EventSink(Event(event_name=EVENT_NAME_EXPO, event_ids=['pv_id', 'item_id'],
 index_fields=['pv_id', 'user_id', 'item_id'])))
tt_source.insert(ihomelapp_sink)


在上面的片段中,曝光event具有5个字段,其中pv_id,item_id,user_id,record_timestamp 这4个属性是通过ihome_tt_schema定义得到,而event_id是通过event_ids指定根据pv_id和item_id拼接得到。表的schema如下:


image.png


注意,由于xDeepCTR 3.0中将label放置在了features字段中,需要在xfc_event构建时将label特征从fg.json中移除,否则可能会导致最终产出的流式样本label为空。


流式样本骨架构建


在backbone的构建中,需指定一个主event,并从主event出发关联起若干event。在每平每屋场景中,曝光event被作为主event并以keyed_join的形式关联起一跳点击event和详情页的二跳点击event以及对应的全埋点特征event。


以下是将曝光event,一跳点击和二跳点击以及全埋点特征event进行关联并产生backbone的代码片段:


pv_event = session.get_table('event.' + EVENT_NAME_EXPO) # 主event
full_tracking_event = session.get_table('event.' + EVENT_NAME_FULL_TRACK)
click_event = session.get_table('event.' + EVENT_NAME_CLICK)
detail_click_event = session.get_table('event.' + EVENT_NAME_DETAIL_CLICK)
wide_table = pv_event.keyed_join(click_event, condition='pv_id=pv_id,item_id=item_id',
 join_type='ONE_TO_MANY', left_wait_second=630,tps=100)
wide_table = wide_table.keyed_join(detail_click_event, condition='pv_id=pv_id,item_id=item_id',
 join_type='ONE_TO_MANY', left_wait_second=1,tps=100)
output_table = wide_table.keyed_join(full_tracking_event, 'pv_id=pv_id,item_id=item_id', join_-
type='ONE_TO_ONE',
 left_wait_second=-630,tps=3000)
output_table.insert(session.register_table(BackboneSink(Backbone(BACKBONE_NAME))))


通过prosche任务页面的监控可以看到在当前等待时间下各event中数据被join上的的比例,pos表示join上的记录,neg表示没有被join上的记录,根据丢弃比例可以调整等待时间left_wait_second。



带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(5) https://developer.aliyun.com/article/1246863?groupCode=taobaotech

相关文章
|
算法
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(1)
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(1)
119 0
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(1)
|
分布式计算 监控 算法
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(5)
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(5)
129 0
|
Swift
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(7)
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(7)
128 0
|
Swift
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(6)
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(6)
133 0
|
监控 算法 API
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(8)
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(8)
101 0
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(2)
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(2)
100 0
|
机器学习/深度学习 智能设计 自然语言处理
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(9)
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(9)
111 0
|
Swift 流计算 Python
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(3)
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(3)
121 0
带你读《2022技术人的百宝黑皮书》——因果推断实战:淘宝3D化价值分析小结(4)
带你读《2022技术人的百宝黑皮书》——因果推断实战:淘宝3D化价值分析小结(4)
118 0
|
测试技术
带你读《2022技术人的百宝黑皮书》——因果推断实战:淘宝3D化价值分析小结(3)
带你读《2022技术人的百宝黑皮书》——因果推断实战:淘宝3D化价值分析小结(3)
140 0