Q:协同过滤中的 userCF 和 itemCF 分别适应于什么场景,有什么区别?
A:协同过滤一般都用在召回中,通常来说,在召回中的粒度一般比较粗就可以了。通常召回都不是太难的问题,召回的逻辑也可以尽量的简单一些。
u2u2i(u2u协同过滤,看一下共同爱好的人都在阅读什么)
通常离线 T+1 计算找到相似用户,在计算用户相似度的时候,一般使用 profile 特征就可以了,比如:性别、年龄、城市、身份等这些特征,处理成 one-hot 形式,然后就能够迅速地计算用户之间的相似度。现在我们得到了一个用户的相似用户群,然后在召回的时候,对这个用户群最近阅读的文章进行统计,将阅读数最多的 topN 个item召回。
在 u2u2i 中主要存在的问题是:u2u 中我们会统计出这个人群阅读量最多的一些资讯,然后继续推荐这些内容。这样子是一个正向的反馈,这样的反馈循环是不利于多样性阅读的。也就是大家开始时候阅读比较多的资讯会被更多的人阅读,而那些开始没什么人阅读的资讯,并不代表这它们不好,但后期他们连曝光的机会都没有。所以需要通过更多的渠道召回才能满足用户阅读的多样性。
u2i2i(i2i协同过滤,找到其他可能感兴趣的内容)
基于用户行为和资讯内容,根据用户正在阅读的内容,找到这个内容相似的其他资讯进行召回。
主要存在的问题是:如果不是 T+1 的方式进行 i2i 召回,需要实时计算资讯之间的相似度,如果使用 dense 特征进行计算的话可能会准确一些,但是效率会比较低。而且计算完后,还应该把找到的相似资讯进行保存。
可以通过 i2tag2i 的方式进行召回,这样只需要使用资讯的 tag 信息就可以了,不需要整个 item 进行相似度计算,这样子不会存在性能问题,只需要在 GeaBase 进行简单的存储,逻辑也很简单。同时,通过 tag 的计算方式,还能够增加召回的多样性。
i2u2i(看看阅读这篇资讯的用户还在看什么其他的内容)
- 找到还有哪些用户也在和你看一样的 item,然后这些用户还看了哪些其他的 item,统计这些 item 的阅读数,然后召回阅读最多的 item。同样这种方式也需要将每个 item 相关的其他 item 进行保存,不能每次推荐都重新算一遍。
在u2u计算的时候,用户的数量非常多,而且很多用户基本都是没有什么阅读记录的,活跃用户可能只占到十分之一甚至百分之一,所以实际中我们只需要对活跃的用户进行计算就行了。同样,对于i2i,并不需要对所有的资讯都进行计算,一般来说给用户推荐的时候,我们不会推荐很久之前生产的内容,所以会设置一个时间窗口,当发布时间太久的资讯,我们就不再推荐了。但是,有一些没什么时效性的文章,而且内容质量非常高,那么我们可以单独沉淀为一个优质内容库,以后可以永久性的推荐这些优质内容。但是,如何才能有效的衡量资讯的内容质量和怎么判断一篇资讯是没有时效性的呢?这也是一个比较困难的问题,除了人工筛选的方式,寻找一些自动化一点的方式是很有必要的。此外,大量的资讯中,会出现一些内容重复的现象,特别是数据多了以后,怎么样才能判断一篇资讯是原创的也是需要解决的一个问题。
Q:推荐系统中怎么解决冷启动问题?
A:获取用户的特征->没有用户特征就让用户创造->不行我们就做一些非个性化推荐。
利用之前其他场景积累、沉淀的用户特征
通常来说,很多公司都积累了很多用户数据的,像阿里、腾讯这样的大公司,用户的特征维度非常丰富,所以当要在一个新的场景中进行资讯推荐的时候,是有很多特征可用的。
那么对于一些初创公司,可能并没有什么用户特征,这个时候可能就不适合进行个性化推荐了,应该是没有办法。所以在开始的时候一方面是制定选项,让用户选择自己的兴趣点,或者是根据用户的个人信息等特征进行规则推荐,慢慢的积累数据。
通过用户授权的方式获取用户手机上的一些其他信息也能够有效的帮助理解用户,比如手机上面安装的 APP 等。
制作选项,让用户自己选择兴趣点
很多设计推荐的产品在用户第一次使用的时候都会设计一个稍有逼格的选项方式来让用户填写自己的个人兴趣,主要是比较粗的粒度。比如资讯推荐、音乐推荐、电影推荐,往往内容覆盖的领域比较广泛、风格非常丰富,用户基本上也能够比较轻松地做出选择。
对于一些垂直领域,比如金融、理财资讯的推荐,大部分用户可能比较缺乏相关的基础知识,比较难的像其他推荐那样制定一些兴趣选项让用户选择。这个时候希望用户提供的更多是一些理财相关信息,比如用户的身份、工作、资产、收入状况、风险承受能力等。
总而言之,通过制作选项的方式是解决冷启动非常有帮助的一种途径。
非个性化推荐
不止是在冷启动,很多时候一些非个性化的内容推荐也是很有必要的。给用户推荐的非个性化内容应该是一些热门、优质,优质内容应该来自不同的类别,这样才能够增加用户阅读的多样性。
在冷启动中,可以在召回渠道中召回一些热门、优质的内容;同样,给一般用户推荐非个性化内容可以在召回增加召回渠道,然后再进行整体的排序打分等。
在财富资讯推荐中,也会存在冷启动问题,有很多新手是没有任何的阅读历史的。但是这部分用户其实也是有很多其他特征的,比如性别、年龄等个人信息,还有他在支付宝、淘宝等上面的一些行为信息,都是我们进行推荐重要的依据。