内容算法读书笔记
推荐系统的架构与搜索系统的架构具有一定的相似度:二者实现的都是信息与用户意图之间的匹配。搜索系统是将海量内容与用户表意明确的查询词相关联,推荐系统则是将海量内容与用户没有明确表达的偏好相关联。
我们可以将推荐问题极度简化:当用户只有一个爱好“NBA”时,那么推荐引擎给用户的结果就可以近似等于搜索引擎在“NBA”这个搜索词下的结果。
标签是我们对多维事物的降维理解,抽象出事物更具有表意性、更为显著的特点。
在不同的应用场景下,我们会对标签全集进行有针对性地投射,有倾向性地选用不同的标签以换取信息匹配效率最大化。
分类是树状的,是自上而下依次划分的。在分类体系里,每个节点都有严格的父类继承关系,在兄弟节点层都具有可以被完全枚举的属性值。
标签是网状的,更强调表达属性关系(hasa)而非继承关系(isa),只有权重大小之分,不强调包含与被包含关系。这就使得相对于分类而言,标签的灵活性更强。
在权威性方面,标签是弱化的,每个用户都可参与进来,基于自己的偏好贴标签,从而借助规模效应实现对信息表意完备性的覆盖。
我们需要引入聚类的方式来描述。这种方式并不是以标签词的方式来定义事物是怎样的,而是基于某一维度的特征将相关物品组成一个集合,并告诉你这个新的物品同哪个集合相似。
把用户的消费行为作为特征,以此进行用户相似性或物品相似性的计算,进行信息匹配,是协同过滤(CollaborativeFiltering)的基础。
协同推荐可以分为三个子类:基于物品(Item-based)的协同、基于用户(User-based)的协同和基于模型(Model-based)的协同。
推荐准确度。对应到内容推荐系统中,表现为对用户点击的预判(点击率)和对消费情况的预判(点击后的各种主动行为、停留时长)。
推荐覆盖度(多样性)。好的推荐系统是能够给用户提供视野范围之外的内容的:
从用户的角度看,可以评估用户的展示历史中各种题材、类目、话题的丰富程度如何,丰富度越高代表个体体验的多样性越好;从内容的角度看,可以评估有推荐展示的内容占整体内容量的比例,或整个内容分发体系的基尼系数[1]。
指标是我们对业务的抽象和预判印证,所以,客观上它是后验性的体现。如果只关注已有指标,很容易让我们忽略那些尚未被纳入指标体系之内的信息。
如推荐算法部分所提到的,在内容被提交进入系统伊始,由于缺乏用户行为反馈,推荐系统更依赖于内容本身的固有属性来进行冷启动。基于内容的展示和消费,这些属性可以拆分为内容展现维度和内容消费维度。
其中,内容展现维度是列表页展现给用户的信息,如标题、封面、发布时间等。内容消费维度包括作者层和内容层两方面:
作者层内容消费维度是指,作者的粉丝群体更应该看到该作者的新内容,一个过往表现更好的作者可以得到更高的冷启动推荐量;
内容层内容消费维度是指分类信息、关键词、命中的实体和话题等,用于判断内容与用户的偏好是否匹配。
互联网平台往往更容易放大消费者的诉求,而忽略服务者的积累诉求,会将每次服务当成独立随机事件。
一个典型的场景:一个用户下单要去机场,用户身边1公里处有一辆新手车,3公里处有一辆老手车,这个单要下给谁?
- 纯粹的效率导向:下给新手车,新手车由于距离因素能够更好地满足用户的需求。
- 实际操作:平台应该做的是在用户可接受的服务体验下,阶梯性地优化有积累的司机的利益。将更好的单子倾斜给老手车,且将这种决策同步给新手车,才能够营造出平台参与者有成长性的群体期望。
更新。为了防止用户体验发生断崖式的下跌,从产品角度来看,还是希望避免一次刷新中出现内容过度密集的情况。
通常,我们采用滑动窗口规则,即连续多条规则尽可能在多个维度打散,降低用户的视觉密集感。密集的衡量取决于我们对内容的理解拆分维度,能够拆分出的维度越细致,可以做出的打散策略就越细致。典型的可以拆分的维度有题材载体维度、作者维度、类目(话题)维度和实体词维度。
内容作为一种消费品,每个人都有选择消费途径和消费内容的权利。无论是纸媒还是网媒,只要有足够大的候选集和主动选择权,用户就一定会选择自己更为偏好的信息载体和信息源。从内容匮乏到内容繁荣,从中心化一统到垂直化聚群,用户的选择更贴近自身喜好是不可逆转的趋势。
来说:他们跳得出算法分发,也跳不出社交关系分发;跳得出社交关系分发,也跳不出自己的认知选择边界。“茧房”始终存在,真正过滤你的,是你的认知泡泡。
脸谱网最初的排序方式,称为边际排名算法(EdgeRankAlgorithm)。该算法的核心计算公式为:E=u×w×d。
- u:用户与内容发布者之间的亲密度分数,互动越高的亲密度分数越高。
- w:不同反馈动作具有不同的权重,反馈动作包括展示、评论、点赞等。比如,评论动作的权重就会显著高于点赞动作。
- d:基于时间的衰减,越新的内容权重越高。
训练机器通常需要以下几个步骤:第一,设定目标。机器擅长的是数据优化,产品经理的职责是给机器设定合理的优化目标,可以概括为:明确产品场景,确定业务的核心指标,并以灵敏指标拟合长期目标。第二,制订保底方案。
机器的优化不是一蹴而就的,需要一个不断改进的时间周期。
在机器算法尚未完善前,产品经理应该给出一个保底方案作为基线。以反低俗为例,在模型识别不好的时候,我们可以通过用户举报反馈、数据异常波动复审等方式拦截一部分低俗内容。以此作为基线保证用户的基础体验,留给机器学习和优化的时间。
第三,发现问题。与其说是发现机器推荐的问题,不如说是发现产品经理在制定目标时存在偏差的问题。在机器优化的过程中,往往会出现为了极致优化目标A,造成其他部分有损的情况。
比如,目标设定的是优化用户的阅读完成度,那么机器执行后最直接的结果就是只推荐短文(一屏展现完毕,用户点击后就100%完成阅读)。
这样的结果显然不是我们想要的。为了优化,我们需要进一步修正目标的设定方式。比如,内容至少要多于多少字,对哪些内容可豁免(如快讯),等等。好的算法结果,既离不开优秀技术研发的实现,也离不开优秀产品经理的投入。
哪个才是一款产品的核心指标呢?我个人给出的答案是:有价值用户的长期留存。
个性化的好,是生意。好的个性化,是理想。
“如果你不能量化一件事物,就无法改进它。”这是一句在增长黑客圈非常有名的格言,套用自管理学大师德鲁克的名言“Youcan’tmanagewhatyoucan’tmeasure”(你不能管理无法量化的事物)。
我们在开展业务的过程中,需要首先对业务进行量化(指标化)处理,只有可量化的业务才可以被更好地分析和改进,不会深陷“我觉的做得好,老板觉得还不够,大家觉得还不错”这样表述模糊不清的泥沼当中。
人们往往会夸大BuzzFeed的“内容三扳斧”——清单体、短视频和小测验,却忽视了在这些内容背后更深层次的数据支持。
粉丝增长分析,就是围绕有变现价值的粉丝算的一笔账:如果一个粉丝能给自媒体带来5元的净利润,那么花低于5元的成本来购买这个粉丝就是划算的。
首先,我们引入三个概念:LTV、CAC和ROI。
LTV:一个粉丝从关注该自媒体的那一天开始到取消关注或者脱离平台,能够带来的收益,通常按渠道来计算。如果某个渠道或某个平台的用户不精准、付费意愿差,那么这个渠道的用户LTV就相对较低。
CAC(CustomerAcquisitionCost,用户获取成本):同样跟渠道有关,自媒体需要持续发现低价、优质的渠道,抢占红利期。比如,2015年年初,微信广点通渠道的公众号涨粉,单个用户获取成本只有1~2元。
ROI(ReturnOnInvestment,投资回报率):其计算公式为ROI=(收入–成本)/成本。应用于粉丝增长场景就是ROI=(LTV–CAC)/CAC,衡量的是自媒体从一个粉丝身上挣到的钱是否能够覆盖获取这个粉丝的成本。
在后续的此类活动中,我们都有意识地对礼品形态进行控制:实物礼品用于鼓励已有的活跃老粉丝,虚拟礼品用于激活和拉新。
想要算清楚用户的ROI,有赖于用户身份的识别和渠道的追溯。在这一点上,微博和微信的基础建设比较完善。
以微信为例,基于平台提供的二维码,我们可以追溯不同用户的来源并进行标识,就像是安卓应用下载对不同的应用市场打不同的渠道包一样。进而,通过平台提供的外链功能、私信功能,来识别用户的活跃情况。
如果采用平台内自媒体互推换量的方式,可以首先估算出自己内容的转粉率,再与其他自媒体换量之后进行计算:
通过其他自媒体互推带来的粉丝量=当日总增长粉丝量–自有内容的增粉丝量=当日总增长粉丝量–自己内容的曝光量×转粉率;
或者,邀约其他自媒体推荐自己的一篇无时效性内容(如工具型内容,汇总了一些高热文章、提供了资源下载等),那么这篇工具型内容的阅读量增长也能作为辅助计算因素。
对推荐引擎而言,其理亦然。内容就像是网站的网页,可以优化内容的构成与包装方式,让它适应不同平台的推荐分发规则从而得到更高的曝光量,我们姑且称之为REO(RecommendEngineOptimization)吧。