用户负反馈(推荐流过滤校验篇)

推荐流负反馈资源过滤

  • 背景
  • 目的
  • 名词说明
    • 1.推荐流渠道
    • 2.负反馈项
    • 3.负反馈类型
  • 过滤校验
    • 不看此作者

背景

1.pc推荐流的负反馈数据虽然上报,但是用的是旧的系统,策略没有使用上,即使用户点击负反馈,还是会给用户推到同类或者同作者内容;
2.pc和app端的负反馈,由于使用的负反馈系统新旧不一 并且上报字段也不一致,导致两边负反馈数据没有互通

目的

1、30天内不再向该用户推荐此作者的任何内容
2、任意入口用户选择“不看此作者”负反馈,在以下首页频道均按照规则屏蔽该作者发布的内容
动态_热门
动态_最新
动态_投票
动态_同城
推荐
3.pc或者app任意端进行此项负反馈操作,均需要双端同步
eg:用户在pc屏蔽了作者A,在app规定的频道流里均不展示该作者发布的内容

名词说明

1.推荐流渠道

  • app_feed_v7
  • pc_feed_v2
  • pc_feed_blog
  • pc_feed_blog_category

2.负反馈项

  • 内容重复推荐
  • 内容质量较低
  • 内容夸张、涉及广告等
  • 减少 【xx】相似内容推荐
  • 不看此作者:xx

3.负反馈类型

  • blog
  • blink
  • ask
  • live

过滤校验

不看此作者

  • 获取用户负反馈操作数据(union为un_like_username_table)

pc端:

select concat(tolower(username),'-',tolower(un_like_username)) key,
    tolower(username) username,
    tolower(un_like_username) un_like_username,
    cast(receive_time as string) un_like_time
    from  pc_user_action_negative
    where pt>='2022-11-25'
    and action_type IN('不看此作者')
    

app端:

select concat(tolower(header_memberid),'-',tolower(get_json_object(trackinginfo,'$.username'))) key,
        tolower(header_memberid) username,
        tolower(get_json_object(trackinginfo,'$.username'))  un_like_username,
        header_date un_like_time
        from  ods_app_user_activity_realtime 
        where pdate>='2022-11-25'
        and action='feedback'
        and get_json_object(regexp_replace(get_json_object(trackinginfo,'$.extra')  ,'\\\\"','"'),'$.utm_medium') like "%distribute.%.%"
        and split_part(split_part(get_json_object(trackinginfo,'$.type'),':',1),':',1)='不看此作者'
  • 获取负反馈用户在推荐流的曝光数据
    (union为exposure_username_table限定username在un_like_username_table中 )
    pc端:
select concat(tolower(uid),'-',tolower(exposure_username)) key,
        tolower(uid) username,
        tolower(exposure_username) exposure_username,
        cast(receive_time as string) receive_time
        from  ods_pc_page_exposure_event
        where pt>= '${pdate-7}'
        and uid is not null 
        and uid!=''
        and extra like "%utm_medium%distribute.%.%" 
        and split_part(get_json_object(extra,'$.utm_medium'),'.',2) IN(
            'pc_feed_v2','pc_feed_blog','pc_feed_blog_category'
        )

app端:

select concat(tolower(header_memberid),'-',tolower(exposure_username)) key,
        tolower(header_memberid) username,
        tolower(exposure_username) exposure_username,
        header_date exposure_time
        from  ods_app_page_exposure_event
        where pt >= '${pdate-7}'
        and requestheader_pagekey='blog.home'
        and header_memberid is not null 
        and header_memberid!=''
        and trackinginfo like '%distribute.app_feed_v7.%'
  • 获取用户在推荐流不应该被曝光的不喜欢作者资源数据
select u1.key,un_like_time,exposure_time
from exposure_username_table u1
join un_like_username_table u2 
on u1.key=u2.key
where   un_like_time<exposure_time

你可能感兴趣的:(odps,odps,阿里云,数据分析)