美文网首页
推荐场景介绍(结合业务)

推荐场景介绍(结合业务)

作者: 拼搏向上001 | 来源:发表于2019-04-09 19:21 被阅读0次

    一、短视频个性化推荐

    https://www.jiqizhixin.com/articles/2018-06-27-10

    个性化推荐的目标是连接用户与内容、提升用户体验和优化内容生态。
    算法需要理解内容,了解平台上可用于推荐的内容;
    同时也要理解用户,了解用户的兴趣爱好,从而进行精准推荐。

    理解内容:内容的特征提取

    (1)基础特征:时长、分辨率、一级标签、二级标签、扩展标签、视频类型、拍摄类型、特效类型、音乐曲目
    (2)文本特征:封面文字、描述关键字、描述topic、关联实体、评论情感极性、评论topic
    (3)视觉特征:人物性别、身材、发型、颜值、视频场景、视频清晰度、对象识别、视频标签分类、深度哈希
    (4)交互特征:点赞数、点赞率、评论数、评论率、播放数、播放率、分享数、分析率、适合人群

    理解用户:即用户画像建设

    建设用户画像需要了解用户的自然属性,如用户的性别、年龄、所在城市;社会属性,如职业、婚姻状况等;以及最重要的兴趣属性,除了了解用户在平台上的兴趣和偏好,也要尽可能去探索用户在平台之外的兴趣爱好(打游戏、逛淘宝等)。

    推荐流程:基于对内容和用户的理解可进行精准推荐。

    三个阶段:
    (1)召回:推荐的本质是给不同的用户提供不同的内容排序。美拍APP上有数十亿个短视频,面对如此庞大的量级我们无法对用户计算所有内容的排序。通过统计召回、简单模型、图计算等筛选方式将内容的数量级降到几千~几百之后可以得到初步的推荐结果

    (2)预估:利用机器学习模型、结合超高维度和精细化的特征,以“用户-情境-物品”三个维度联合建模,得到预估模型,再对不同的目标进行预估

    (3)排序:在对目标进行预估之后,要对内容进行排序,从而决定可触达用户的排序。排序阶段会结合新颖性、多样性、准确性三个方面进行综合排序,最终将推荐结果呈现给用户。

    推荐流程.jpeg

    在召回阶段,我们已经实施了基于热度、趋势、协同过滤、用户画像、内容、情境和社交关系等一系列召回方式,同时也实践了基于深度学习的召回方法
    在预估阶段,较成熟的有大规模离线特征+LR、连续特征+GBDT,也实践了NFM、DCN等深度学习预估模型。

    实时更新的相似视频索引:
    用户播放视频:利用此索引,得到对应视频的相似视频进行召回。用户的实时行为:不同内容类型的偏好,对应偏好类型的实时榜单内容——实时召回的结果。

    在引擎部分,会融合实时及非实时的召回,并进行预估排序,最终将推荐结果综合呈现给用户。

    离线评估模型效果随着时间变差,考虑在线学习FTRL:对样本不稳定带来的梯度更新不稳定性,采用生成解析解的更新方式。

    W_{t+1}=arg\min\limits_{w}(g_{1:t}\cdot w+\frac{1}{2}\sum\limits_{s=1}^t \sigma_s ||w-w_s||^2_2+\lambda_1 ||w||^2_1+\lambda_2 ||w||^2_2)
    第一项是保证参数沿着梯度、次梯度方向更新
    第二项是更新的结果不要远离之前的结果,保证模型的稳定性

    实时更新&在线学习.jpg

    (1)Arachnia收集到日志之后,FeatureServer通过Kafka组件获取到实时日志,进行实时特征计算更新特征。(2)TrainServer还会收集用户不同行为的日志,分正负样本,得到原始样本,再将原始样本与FeatureServer进行交互,索引到对应的特征列表,拼装成模型训练可以直接应用特征样本,供模型进行更新。(3)基于Parameter Server架构的模型更新,模型更新阶段从Parameter Server获取模型参数,对样本进行预估,计算参数的更新,并将更新结果回流到Parameter Server中。

    2、新闻推荐

    资讯推荐特征维度.jpg

    内容维度+用户维度+环境的特征==>模型函数给一个预估【内容在这个场景下,对这个用户是不是合适的】

    https://36kr.com/p/5114077
    第一类是相关性特征,就是评估内容的属性与用户是否匹配。显性的匹配包括关键词匹配、分类匹配、来源匹配、主题匹配等。像FM模型中也有一些隐性匹配,从用户向量与内容向量的距离可以得出。
    第二类是环境特征,包括地理位置、时间。这些既是bias特征,也能以此构建一些匹配特征。
    第三类是热度特征。包括全局热度、分类热度,主题热度,以及关键词热度等。内容热度信息在大的推荐系统特别在用户冷启动的时候非常有效。
    第四类是协同特征,它可以在部分程度上帮助解决所谓算法越推越窄的问题。协同特征并非考虑用户已有历史。而是通过用户行为分析不同用户间相似性,比如点击相似、兴趣分类相似、主题相似、兴趣词相似,甚至向量相似,从而扩展模型的探索能力。

    3、商品推荐

    从电商平台的角度来讲,个性化推荐技术的本质是将当前最有可能成交的产品/优先推荐给消费者,使流量得到更加充分的利用,最大限度的提高转化效率。


    ctr预估就是预估的从展示到点击,默认以第一位为展示位置(有一个position bias的概念,你可以了解一下)。cvr有两种建模方式,一种是从点击到转化,就是样本构建全都是点击了的样本,其中区分购买没购买作为正负样本;还有一种是从展示到购买,样本全都是曝光样本,区分购买没购买作为正负样本

    1.用用户维度数据建模,给定FKJD额度————筛选用户,就是只有拿到额度的用户行为才做后续推荐参考
    2.用户拿到额度,给用户推荐商品

    Q:“不同商品/怎么统一提取特征维度”做模型建模?比如图书和衣服这两种,商品维度特征,可以统一提取么?
    A:首先,品类特征可以保证泛化;再者,价格之类的我们都可能会用同品类里面的相对值(比如价格所处分位数段)。
    如果是深度学习就没关系了,id很多都会做embedding。如果是搜索排序推荐,其实召回阶段会把不同类别过滤掉。

    Q:就是,直接把商品不管什么类别,不同类别商品的属性差异,直接做embedding,是这意思吧?
    A:会直接做embedding,类别id也会embedding,所以其实很多信息是可以帮助区分的。

    Q:那我的理解,电商推荐转化:主要就是(1)先给用户(用户维度特征)一个召唤列表(2)取排在列表首位商品的信息(物品维度特征),以及用户是否购买该商品(label) 建ranker的模型是么?
    A:推荐有几类方法:基于近邻的方法就是对商品做表示,比如协同过滤就是用用户行为对item做向量化表示.分类排序的方法,就要先召回和粗排,再使用ctr预估之类的方法做概率细排.

    Q:我现在疑惑的就是,"最后ctr预估做细排的作用"这个环节,也是影响推荐列表物品顺序的是么?
    就是一个用户用粗排召回100件物品,然后用ctr预估对这100件物品再细排。
    A:恩对,你可以理解成这样。用户的浏览深度有限。在大部分电商的场景下,长时兴趣比较重要,我会用历史行为数据构建模型。在feed的场景下,session就比较重要,我们可能就会考虑用户刚点过的item,基于item的相似度进行推荐,比如听音乐或者抖音。一般长时的数据和session数据建模,是要配合好的。

    Q:那建立细排的ctr模型的时候,每一个样本怎么选呢?用户买了某个物品,这个"用户-物品对"就是一个样本行,作为正样本?
    A:对,你说的对。[item_feature_vector, user_feature_vector, session_feature_vector] label。

    Q:给用户推荐了物品a,用户没买;就"用户-物品a对"就是一个负样本,对吧?正负样本不均衡,需要处理么?xgb、lr、nn处理方式不一样吧。几比几可以接受?
    A:对,是这样的。一般我们会采样一下,对预估概率的绝对值会有影响,对相对顺序不影响。采样不全是因为不均衡,有时候是因为数据量有点大。1:1.5 1:2这种都OK。

    相关文章

      网友评论

          本文标题:推荐场景介绍(结合业务)

          本文链接:https://www.haomeiwen.com/subject/dtmiiqtx.html