真实面经题目 · 原创解析
如何避免给用户重复推荐已看过的视频?
避免重复推荐已看过视频,要把曝光、播放、完播和负反馈记录接入召回、排序和重排链路,并处理跨设备、相似内容和时间窗口。
出现于:美团 · 算法
真实面经题目 · 原创解析
避免重复推荐已看过视频,要把曝光、播放、完播和负反馈记录接入召回、排序和重排链路,并处理跨设备、相似内容和时间窗口。
我会先定义“看过”的口径,例如曝光、点击播放、有效播放、完播或用户明确不感兴趣。系统上要维护用户已曝光和已消费历史,在召回后或重排前过滤完全相同的视频;对于相似视频,要用内容指纹、视频 embedding、作者和主题做相似去重。还要设置时间窗口和频控,避免永久屏蔽用户可能想重看的内容。最终用重复曝光率、负反馈、完播和留存验证效果。
曝光过、点开过、播放超过几秒、完播和主动负反馈代表不同强度的“看过”。口径不同会影响过滤力度,不能混在一起处理。
需要可靠记录用户的曝光、播放、完播、跳过、点赞、收藏和不感兴趣行为,并支持跨端同步,避免同一用户换设备后重复推荐。历史记录还要区分时间窗口和行为强度。
候选生成后可以按视频 ID、内容 ID 或业务唯一键过滤已消费内容。过滤位置要足够靠前,避免浪费排序资源。
完全相同视频容易过滤,难点是搬运、剪辑、合集和高度相似内容。可以用内容指纹、embedding、标题、作者和主题做相似去重或降权。
有些视频用户可能愿意复看,所以不一定永久禁止。可以按内容类型、用户行为和时间衰减设置窗口,并用重复曝光率和用户负反馈评估,避免过滤过强导致候选不足。
通常不直接永久过滤,可以短期降权或控制频次,因为用户没播放可能只是当时没兴趣。
用视频指纹、音频指纹、关键帧 embedding、标题相似和作者信息综合判断相似内容。
看重复曝光率、跳过率、负反馈、完播、点击和留存,避免过滤过强导致候选不足。