zoukankan      html  css  js  c++  java
  • 三言两语大话

    DPP 

     

    为什么

    当用户在我们系统中点击行为比较少的时候,我们会补充一些热门特征来丰富用户画像。


    所谓的热门特征,是累加了所有用户点击过的新闻特征,然后取topk得到的。


    会发现,尤其对于一些细粒度的特征,头部会集中在同一语义下。为了平衡热门特征的语义多样性和热门程度,我采用了DPP 的方法。


    举个例子,那比如前两天赵丽颖和冯绍峰离婚热度比较高,那么热门关键词可能都是相关事件的关键词,但是当DPP进行打散以后,排名可能就变成赵丽颖,冯绍峰,iPhone12,离婚。。。


    什么是

    DPP 全称是行列式点过程,行列式的几何意义是方阵中各个列向量所构成的多面体体积的平方。


    为了将 DPP 应用到我们这个场景里,首先构造一个列向量 bi,是特征的语义 embedding * 特征的热度。这样构成的多面体,则当热度越大,体积越大,并且语义越不相关,即多样性越好,体积越大。最终通过求解这个方阵的最大行列式值,可以找到特征热度和多样性最大的子集,作为热门特征集合。


    怎么做

    直接求解优化的话比较困难,hulu 提出了一种贪婪算法,将复杂度从 O(M yyy)降到了 O(My)。其中 M 是选择的最终集合个数,y 是特征维度。


    它贪婪的思想是,DPP 取 log 后的函数是满足次模函数的,意思是随着输入集合中元素的增加,收益减小。就好比,小集合与大集合增加同样一个元素,小集合带来的收益大于大集合的收益。


    于是每次迭代选择收益最大的 item即可。



  • 相关阅读:
    284. Peeking Iterator 光是看看下一个值的遍历
    339. Nested List Weight Sum 339.嵌套列表权重总和
    341. Flatten Nested List Iterator展开多层数组
    springcloud之配置中心服务化和高可用
    springcloud之配置中心git
    springcloud之熔断监控Hystrix Dashboard和Turbine
    springcloud之熔断器Hystrix
    springcloud之服务提供与调用
    springcloud之注册中心Eureka
    springcloud之大话springcloud
  • 原文地址:https://www.cnblogs.com/toonice/p/14698921.html
Copyright © 2011-2022 走看看