ctr算法
㈠ LR-融合多种特征的推荐模型
LR模型,作为基于线性回归的推荐算法,通过学习用户点击行为来预测点击率(CTR),其核心公式如下:
P(喜欢) = 1 / (1 + e^(-w_1 * feature_1 - w_2 * feature_2 - ...))
其中,P(喜欢) 表示用户喜欢某个标的物的概率,w 为权重参数,feature 为对应的特征值。在工业实践中,如Google的FTRL和阿里巴巴的分片线性模型,它被广泛应用到实时推荐排序中。
与协同过滤和矩阵分解不同,逻辑回归将推荐视为分类问题,通过预测正反馈行为(如点击)的概率对物品进行排序。它能综合多种特征(如用户年龄、性别、物品属性等)生成全面的推荐结果,是推荐领域的重要工具。虽然看似简单,但背后涉及伯努利分布、极大似然估计和梯度下降等概念。
推荐过程包括:首先,将各类特征转化为数值向量;接着,训练模型以优化点击率,确定权重参数;服务阶段,输入特征向量得到预测概率,然后根据概率对候选物品排序生成推荐列表。
逻辑回归的优势包括数学基础的合理性、易于解释、工程应用的便捷性,以及内存占用低等。然而,其表达能力有限,难以处理复杂非线性数据,且对特征工程要求较高,这促使了更复杂模型的出现,如FM和深度学习模型。
㈡ CTR(1):IJCAI2020-Deep Feedback Network for Recommendation
显性反馈和隐性反馈 (Explicit and Implicit Feedback)都能反映用户对物品的看法,这对于学习用户的偏好至关重要。然而, 大多数当前的推荐算法仅仅关注于隐式的正反馈(例如,点击) , 忽略了其他蕴含信息的用户行为 。
本文旨在联合考虑 显性/隐性和正性/负性反馈(Positive/Negative) ,以针对推荐任务 学习用户的无偏偏好 (unbiased preferences/更加准确的偏好建模)。具体来说, 提出了一种新的深度反馈网络(DFN)模型来建模点击,未点击和不喜欢等用户行为。
DFN 有一个内部反馈交互组件,用于 捕获个体行为之间的细粒度交互 ; 还有一个外部反馈交互组件, 使用精确但相对稀少的反馈(点击/不喜欢) ,从丰富但嘈杂的反馈中提取有用的信息(未点击) 。
在实验中,对一个现实的推荐系统——数百万用户使用的微信看一看——进行线下和线上评估,验证了 DFN 的有效性和鲁棒性。
用户-项目交互这样的信息分为两种类型,即 显性反馈和隐性反馈 。
近年来,推荐系统通常将个性化推荐作为一项 点击率预测任务 (CTR)。因此,很自然的,大多数推荐算法主要集中在隐式正反馈,如点击,这可以很容易地在实践中收集。这些模型是通过点击行为和面向 CTR 的目标直接优化的,这将不可避免地导致以下问题:
两段话全面准确地表达了两个关键问题,指出了负反馈和显式反馈的价值,也是本文关注的两个点,好论文读起来就是舒服呀~
多个显性/隐性和正性/负性反馈可以相互补充,反映用户在推荐中的无偏偏好 。目前的工作中负反馈往往被忽略,或者仅仅局限于显性反馈,这种反馈精确而又少见。
一些工作认为未点击或缺失行为是 隐含的消极反馈 ,以扩增负反馈信息。然而,这样的假设带来了很多噪声,极大地限制了推荐效果。因为这些隐性的负面反馈可能是由除了不喜欢以外的各种原因造成的。(噪声比较多)
本文中重点研究利用不同类型的显性/隐性和正性/负性反馈提高推荐性能。针对传统推荐方法中存在的问题,提出了一种新的深度反馈网络(DFN) ,该网络在基于深度模型的推荐中联合考虑多个反馈及其相互作用。图1显示了 DFN 中使用的不同类型的反馈,包括隐式正反馈(例如,点击)、隐式负反馈(例如,不点击)和显式负反馈(例如,不喜欢)。
具体地说,我们首先在 每个反馈序列中分别对目标项和行为构建Transformer,以捕获内部行为级别的交互 。
接下来,我们利用高质量但相对少见的点击和不喜欢行为 (显式反馈)来减少丰富但嘈杂的无点击行为与外部反馈级别的交互 。这些提取出来的反馈特征与其他特征相结合,然后输入到包含 Wide、 FM 和 Deep 组件的特征交互模块中。
DFN 的主要优点是它成功地结合了多种反馈信息,学习用户无偏的正向偏好(喜欢)和负向偏好(厌恶),解决了反馈信息存在的质量和数量两难问题。
在一个真实世界的推荐系统上构建DFN 模型,并收集用户历史行为的三种反馈:
深度反馈网络DFN主要由深度反馈交互模块和特征交互模块两部分组成。
最后实现了用于特征聚合的 Wide、 FM 和 Deep 组件。将特征交互模块的输出反馈到全连接层和softmax层,基于正负样本间损失进行模型优化。
其层次上可以分为内部交互模块和外部交互模块:
以点击序列为例:将待预测/目标物品的嵌入与点击序列的嵌入构成输入矩阵:
隐式负反馈是足够的,但是噪声很大。一般来说,未点击行为似乎暗示着负反馈, 然而暴露给用户的物品是由某些策略精心挑选的,这些策略也可能包含粗粒度方面的用户兴趣 。外部反馈交互组件旨在根据点击和不喜欢行为中强烈的反馈信息,区分用户真正喜欢和不喜欢的点击行为。具体来说,我们进行了两个原版注意力机制,其中考虑隐含的正向和显式负反馈嵌入 fc,fd 作指导,从未点击序列中提取正向和负向偏好:
在特征交互中,我们将提取的反馈特征与其他特征结合起来,包括用户画像、物品特征和推荐上下文特征。
我们将这些稀疏特征分为 m个 字段,包括连续字段(例如,age)和类别字段(例如,location)等。所有字段都表示为单热嵌入。查找表用于生成所有字段的稠密特征嵌入。然后利用Wide、FM和Depp组件进行特征组合。( 通用架构 )
Wide
对特征进行线性组合:
Deep
简单的MLP操作:
一个训练集按照三个反馈类型分成3部分。
注意这里的比例设置,显式负反馈比重很大。
这篇工作对数据反馈充分分析的基础上,借助自己的生产系统,收集并利用了显式负反馈和隐式正反馈这类信息,并利用这两类重要信息对具有噪声的隐式负反馈进行调整,基于注意力架构从隐式负反馈中分离出更有价值的特征。在实践系统上有很好的效果表现。其中的注意力设计感觉可以在相关比赛中进行尝试,是很值得借鉴的工作。
如果觉得有用,欢迎点赞关注赞赏,若对推荐感兴趣欢迎评论区/私信交流~~~
㈢ 微博最常访问算法
基础及关联算法
这一层算法的主要作用是为微博推荐挖掘必要的基础资源、解决推荐时的通用技术问题、完成必要的数据分析为推荐业务提供指导。
这一部分中常用的算法和技术如下:
分词技术与核心词提取
是微博内容推荐的基础,用于将微博内容转化为结构化向量,包括词语切分、词语信息标注、内容核心词/实体词提取、语义依存分析等。
分类与 anti-spam
用于微博内容推荐候选的分析,包含微博内容分类和营销广告/色情类微博识别;
内容分类采用决策树分类模型实现,共 3 级分类体系,148 个类别;营销广告/色情类微博的识别,采用贝叶斯与最大熵的混合模型。
聚类技术
主要用于热点话题挖掘,以及为内容相关推荐提供关联资源。属于微博自主研发的聚类技术 WVT 算法(word vector topic),依据微博内容特点和传播规律设计。
传播模型与用户影响力分析
开展微博传播模型研究和用户网络影响力分析(包含深度影响力、广度影响力和领域内影响力)。
主要推荐算法
1. Graph-based 推荐算法
微博具有这样的特点:用户贡献内容,社会化途径传播,带来信息的爆炸式传播。之所以称作 graph-based 推荐算法,而不是业界通用的 memory-based 算法,主要原因在于:
我们的推荐算法设计是建立在社交网络之上,核心点在于从社交网络出发,融入信息传播模型,综合利用各类数据,为用户提供最佳的推荐结果;比如很多时候,我们只是信息传播的关键环节,加入必要的推荐调控,改变信息传播通路,后续的传播沿着原来的网络自然的传播。
Feed 流推荐(我们称作趋势),是我们最重要的产品,而结果必须包含用户关系。
从 graph 的宏观角度看,我们的目标是建立一个具有更高价值的用户关系网络,促进优质信息的快速传播,提升 feed 流质量;其中的重要工作是关键节点挖掘、面向关键节点的内容推荐、用户推荐。
对这部分的算法做相应的梳理,如下面的表格:
这样利用 content-based 很好的解决了冷启动的问题,又充分发挥了 user-based CF 的作用,实现1+1>2 的效果。
分层模型混合:
很多情况下,一个模型无法很好的得到想要的效果,而分层组合往往会取得比较好的效果,分层模型混合即“将上一层模型的输出作为下层模型的特征值,来综合训练模型,完成推荐任务“。比如我们在做微博首页右侧的 ctr 预估排序时,采用分层逻辑回归模型,解决了不同产品间特征天然缺失与样本量差异、曝光位置带来的效果偏差等问题。
㈣ AES的ctr模式如何处理
AES的CTR模式只需实现AES块加密算法,无需块解密算法;块加密参量不涉及明密文,无需填充算法,可用作流式加密。此时加解密算法完全一样,与明密文相关的步骤都仅仅是异或,明密文并未参与AES块加密。逆向时如果发现AES算法特征,但未对非块长度整数倍的数据进行填充处理,即可合理猜测CTR模式的出场。 ctr模式里没有iv和nonce,链接里面的把nonce和counter拼接起来应该是为了说明counter不需要从0开始。这个counter就是aes加密的明文。加密counter的时候不存在模式的问题,是对单个分组长度进行加密。counter的选择nist有说明。AES的CRT模式需要长时间的锻炼来熟悉,只有尽快熟悉才能更快分掌握这个技能。勤于练习才能帮到自己。