很久了一直觉得个性化推荐这个东西是很高级且神秘的,直到这次为主题商店引入个性化算法,才算是有缘以管窥天,基本了解了个性化推荐的相关知识。
故名思议,个性化推荐,自然是为了提高内容产品的消费的转化而进行的基于用于自身特点的推荐,希望经过推荐提高内容的消费转化率,让用户用的开心,内容也得到最大程度的利用。为了给用户推荐的更加准确,因此就需要更加的了解用户,这里的了解我分为了两个类型:
一种是可视化的推荐,是标签化的了解,根据用户的行为数据,给用户打标签,从而可视化的看出用户的特点;
一种是非可视化的推荐,是算法层面的了解,根据协同过滤,直接根据数据和数据,用户和用户之间的关系进行推荐,直接将算好的结果呈现给用户,因此是非可视化的了解。
一般进行个性化推荐现实可行的总体流程是:
1)数据收集层:通过用户日志获取用户的历史行为数据,作为推荐的原始数据
2)数据计算层:根据用户的历史数据和推荐算法,计算出在当前情况下最适合给用户的内容,作为备选数据
3)复合排序层:将计算得出的备选内容和现有的其他下发算法进行归一运算,进行同意排序运算
4)展示下发层:将排序后的内容,进行下发展示
因为标签体系对于产品的上下游而言的好是显而易见的,因此新产品直接就开始建立是最合适的。但是如果需要对旧产品引进个性化推荐,其实更加建议从非可视化的推荐开始,这种方式的启动成本相对低一点,再根据推荐的效果进而引入标签体系。而输入法正是从这个角度进行的,以下就先分享下个性化的典型化算法:
计算逻辑层
根据上面的图,就可以对个性化分为三个路线
1,基于内容的相似推荐
这种推荐的思路是:根据用户消费过的内容再推荐相似的内容。但是在非可视化,无标签的情况下,如何实现基于内容的推荐呢?
正如下图,如果A,B,C···用户都喜欢了信息I,同时喜欢了I的用户大多也喜欢III,就可以认为I和III相似,就可以给喜欢了I的用户推荐III。
2,基于用户的相似推荐
这种推荐的似路是:算出用户行为之间的关联度,从而预测用户的行为,将与用户现在行为最接近的内容推荐给用户。
用户A,消费过:I,III,IV
用户B,消费过:II,III
用户C,消费过:I,II ,IV
在这三个数据量的情况下,给用户D进行推荐,用户D消费过I,因此可以计算出在此情况下的用户行为的相关度,进行推荐。
P(II | I)=1/3, P(III | I)=1/3,P(IV | I)=2/3,因此给用户D进行推荐的话,IV是首选。
3,基于标签的相似推荐
这种推荐方式是基于用户标签和内容标签的匹配程度,按照用户自身的属性,计算出与用户身份匹配度最高的内容,然后机进行排序和下发
模型的选择就是基于产品现行的的原始数据情况了,同时也可以根据现有的数据进行基于用户和基于内容的结合。从而将算法中的协调、过滤两个环节进行拆分。
将协同和过滤进行拆分的过程其实是依次解决了两个问题:找谁协同?过滤什么?
这种方式实现起来的模型其实是这样的:为了给用户A做推荐,在一个推荐周期内,先根据行为的相似度,找好了B,C,D,作为协调用户。然后再本次推荐周期内将B,C,D的行为和A最新的行为进行对比,再按照内容进行相关度计算,从而得出给A推荐的内容。
最后,没有最好的推荐算法,只有最合适自己产品的推荐算法,只有不断地进行尝试,调教推荐引擎,才能最高效的让自己的内容利用率最大化。