微博|人工智能技术创新,赋能微博内容理解与分发( 四 )


对比学习在前面的话题模型中已经提到过 , 这里的对比学习和话题模型的对比学习非常类似 。 用bert对微博文本内容进行编码 , 图像和视频内容通过vision transformer进行编码 , 然后通过fusion子网络进行融合 , 形成微博的embedding编码 。
经过预训练 , 学好的微博编码器 可以拿来对新的微博内容进行编码 , embedding结果可以广泛的用到下游的各种业务中 。 由于训练的数据来自微博 , 大家知道微博的内容非常有特色 , 所以最终的embedding结果也很有微博特色的 。
同样 , 微博在用户理解方面工作中 , 采取超大规模图计算 。 微博是国内最大的社交媒体 。 微博的社交媒体属性天然匹配超大规模图计算 。
微博以用户和博文作为图中的节点 , 以用户间的关注关系、用户对博文转、评、赞等互动行为作为图中的边 , 这样就可以构建一个超大规模的图 , 节点可以达到10亿规模、边可以达到100亿规模 。
通过对超大规模图的传播计算中 , 我们可以得到一个描述用户兴趣的embedding向量 。 这种做法尤其对系统的新用户 , 也就是对冷启动用户有很好的应用价值 。
当我们做好了对微博内容的理解 , 对微博用户的理解 , 接下来要做的事就事怎么样把高质量的内容分发给感兴趣的用户 , 这就是推荐系统要做的事情 。
而当一个推荐系统基本成型之后 , 我们还会遇到哪些问题 , 怎么去解决 。 首先我们遇到的是一个多场景问题 , 前面提到过 , 微博在多很多场景都有推荐需求 , 比如微博主页的关系流 , 推荐流 , 微博发现页的热点流 。 还有视频流 , 视频后推荐流等
这些场景到底是什么关系呢?我们分析认为 , 这些场景之间有共性 , 也有个性:不同场景有很大的用户重叠度 , 同一个用户虽然在不同从场景下 , 他的基本兴趣是一致的;与此同时 , 场景之间也有很多差异 , 比如有的用户偏向社交型 , 有的用户偏向社会热点型 , 有的用户喜欢刷视频 。
所以 , 怎么面对这个问题 , 对我们来说是一个很有意思的挑战 。 传统方式是各业务场景独立建模 , 各做各的 , 这样带来的问题是什么呢?
诸如:各模型无法很好抓住用户的共性;有些小场景流量少 , 缺乏训练数据 , 无法得到充分训练;维护多场景多个模型系统资源开销大
解决办法就是一个模型服务多个场景 , 这样做的好处是打通了各场景数据 , 更好的解决各场景冷启动问题;多场景共享训练 , 抓住微博用户共性;抓住共性的同时 , 也学习不同场景的差异;以及降低系统资源开销;
既然一个模型服务多个场景有着诸多的优势 , 微博具体怎么做呢?解决的核心问题是怎么通过网络结构表示场景间的共性和个性?
首先 , 在模型的底层输入 , 无论是用户特征 , 还是内容特征 , 大家都是共享的 , 一致的 。 中间的一部分“专家子网络” , 这些网络参数是各个场景共享的;而边上子网络参数则是各个场景所独有的 。 通过这种方式 , 就可以兼顾场景的共性与个性 , 能够通过一个模型服务多个场景 , 这样同时也节省了资源 。
除了多场景模型外 , 我们还对推荐系统做了很多技术研究 , 这里介绍下我们利用知识蒸馏技术 来解决推荐链路一致性问题 。
在推荐系统内部 , 一般会分为召回、粗排、精排等环节 。 召回环节要从海量微博中 , 筛选出几千条用户可能感兴趣的内容 , 因为要处理的微博数量多 , 所以要求速度快 , 同时精准度要求就没那么高了;在粗排的时候 , 需要利用少量特征和简单模型 对召回内容初步排序;最后的精排 , 则是使用大量特征和复杂模型 对内容进行精准排序 。