腾讯讲新用户冷启的文章《Cold & Warm Net: Addressing Cold-Start Users in Recommender Systems》,有值得借鉴的地方,也有让我不以为然的地方。
整个结构就是一个Multi-Expert架构。
用户有三种特征:
cold-start expert的输入只有Ua(静态画像信息)和来自Uc的信息。来自Uc的信息,具体来说,就是由Ua(静态画像)对m个user group center embedding做一个attention。这里我担心只有user profile信息作为query,能做好这个attention吗?根据我的经验,凡是性别、年龄这样的信息,都是鸡肋。唉,反正也没别的信息了,聊胜于无吧。
warm-up expert就非常常规了。把Ua(用户静态画像)、Ub(用户行为历史)、Uc的信息都喂进去。这里来自Uc的信息,就是Ua+Ub再鼓捣出一个向量当query,去Uc中做attention。
Multi-Expert架构里怎么能没有gate?这里的gate是拿用户活跃状态(是否登陆、活跃几次之类)当输入,鼓捣出两个权重,分别乘上cold-start output与warm-up output,最终的user embedding就是cold-start output与warm-up output的加权平均。接下来的事情,就和普通双塔无异了。
这里所讲的方法就和我的《互联网大厂推荐算法实战》中介绍用多场景推荐做冷启的思想如出一辙。
同时类似的方法,也被Google用在新物料冷启上,参考我的另一篇文章《似曾相识:谈Google CDN长尾物料推荐》,用item frequency来决定是否启用item id embedding。
其实我个人是非常不感冒蒸馏的,因为有的时候,师生关系没有那么明确。比如这里,我有个问题,这个蒸馏对哪些用户有用?
说起蒸馏,我个人比较认可Deezer(一家法国在线音乐公司)的《A Semi-Personalized System for User Cold Start Recommendation on Music Streaming Apps》这篇文章的作法。
这一段是最最让我摸不清头脑的。你说新老用户的行为有很大不同,海量的老用户数据实际上给模型引入了很大的偏见(bias),这一点我是相当同意的。
但是你这个bias score是用user feature生成的,是几个意思?我们推荐的目的是每次给同一个user推荐不同的物料。这个bias score是基于user feature的,每次给候选物料排序的时候,同一个user,相同的user feature,生成的bias score也相同,给所有的item原来的sim_score上再加上相同bias score,这对排序结果能有啥影响???
bias score加也得加在item侧呀,比如我在《互联网大厂推荐算法实战》中讲“FM增广”的时候描述的。
整体评价一下:
想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定o要备注信息才能通过)