对于需要精细化运营召回的话题,可以在后台针对单个话题配置一条规则,可以配置召回内容包含或者不包含标题,tag,分区等,并且对多个子规则做且或的配置。
通过 对存量数据es query 对增量数据遍历判断 的方式,获取所有可能被召回的内容。
此处的流程编排系统用来结合风控,稿件信息,相关性,用户信息等进一步的评估稿件质量和与话题的相关性。
ai自动召回
自定义规则的自动收录需要根据召回的结果不停地调整规则,只适合于精细运营,如热门话题和UGC拉动的场景,但这些类型的话题其实只占话题总量很小的一部分。
而对于大量的长效性的话题,占总量百分之九十以上的如有用性话题(问答)和IP型话题(超话)等,不可能人为去配置其中每一个话题的规则,所以我们需要一个更加通用且高准确率的方式进行自动的召回用来冷启。
主要的流程如上图所示
1. 通过用户行为和我们的运营手段上报的数据得到离线的训练集,正样本为用户显式绑定到话题的动态,负样本为运营标注的异常数据和用户的举报数据。
2. 通过训练DSSM双塔模型得到“话题-动态相关性模型”,该模型会在离线和在线同时影响话题的收录。
3. 离线方面,主要解决话题的冷启问题,新的话题可以通过一定的策略召回动态,召回结果经过相关性模型的打分得到最终的收录结果,该结果会被持久化到kv中。
4. 在线方面,在内容理解服务中提供在线相关分的能力,为隐式收录等场景持续赋能。
在整个流程的实验和演化的过程中,离线话题对动态的召回经历了词包搜索和向量召回两个阶段,具体描述如下。
词包搜索
对话题名和话题的简述进行实体抽取。融合ner结果、词idf值、正则库匹配结果以及话题名称和简述的LCS来进行综合的打分,截取头部实体获取关键词,通过关键词包去 es 进行 boost 搜索,获取top n的动态作为最终的收录结果。
该方法在供给充足的话题里有很高的准确率,但如果话题非常冷门,就容易引入无关内容收录,且无法通过拍一个直接的分值作为门槛筛选掉语料不那么相似的话题和动态对,且在不同的动态类型(如图文、专栏、稿件等)有各自不同的体现。
向量召回
词包搜索无法保证语义相似,我们就改用了向量的方式,保证召回的动态在语义上和话题保持一致,同时通过统计的方式对召回的动态进行筛选,希望最终能够在语义和语料两方面对收录的内容进行筛选。
最终该方法解决了冷门话题召回低相关内容的问题,也极大的纠正了关键词抽取的准确率的问题,使得优质的长效性话题也能够自动收录到相关内容并触达到用户。直到截稿日,长效性话题量超过话题总量的九成,问答在搜索、超话在港澳台等垂直业务上发挥各自越来越重要的作用,为话题的渗透和回访提供了更多的可能。