Advertisement

知识图谱_知识图谱 | 知识图谱做用户画像

阅读量:

【导读】 :最近一直在思考怎么用知识图谱做推荐,但是目前能知道的内容都是基于路径的推荐和基于图特征的推荐,所以能不能换一个角度,探究一下用知识图谱怎么做用户画像,因为画像也是推荐系统重要的一部分。

现在的知识图谱+推荐怎么做的

传统的用户画像怎么做

现在的知识图谱+推荐怎么做的?

基于路径:可以理解成基于图谱的多路径召回,或者多路径推荐,然后根据路径的转移概率进行排序从而达到推荐的效果,基于路径比较适合简单的推荐系统,或者推荐系统的冷启动阶段;

基于图特征:计算出节点和关系在网络中的特征表示,然后拿特征表示进行召回和排序;但是我认为还是具有局限性,特别是在网络异常稀疏的情况下,所以这种情况下比较适合稠密的网络,不适用于冷启动阶段。

大多数情况下就推荐系统而言,排序比召回更重要,召回可以设计很多的策略召回很多的商品,随便一条策略都可以召回,但是排序才是衡量具体给用户推荐哪些商品,所以重点在如何做好排序,或者说知识图谱如何做好推荐系统的排序,能带来哪些创新和提升,这才能体现出知识图谱的价值。但是就上面的两种方式确实能提供排序效果,但是我认为还不够,我认为知识图谱还能做更多,那怎么将知识图谱更好的融入到推荐系统当中,我做了很多的思考,用知识图谱做用户画像就是其中一点。

传统的用户画像怎么做?

这是我专栏的另一篇文章,简单的介绍了一下从风控角度,用户画像该怎么做,推荐场景下大体也应该是差不多的,但是推荐场景下我们更加关注的是个性化的标签。除了包含一些基础属性信息之外,还需要一些偏好的程度值。比如:
2fe928424af0df477ac32044c1f6b044.png

这里没有列举的很详细,总体的思路如下,可以尽情的发挥想象力,尽量将标签定义到最细粒度,将原始数据发挥到他最大的价值,这里其实可以用到特征工程的思想,我们可以构造出很多特征。
2017f6019ee5ccd5599cac3b783627ff.png

至于得到的用户画像怎么用,一般我们会将用户画像用到召回和初排阶段,召回好理解,初排的话就是将用户画像作为一部分特征值,然后参与到模型的训练过程,用于模型的离线训练或者实时更新。

传统的用户画像可能存在的问题?

不全

  • 数据稀疏
  • 隐私保护

不准

  • 噪音标签
  • 粒度太粗

第一个方面就是用户画像某种程度上还是不完整的。 导致这个问题可能有两个原因,第一个原因就是任何画像的来源数据都是有一定偏差的,一般描述的都是用户画像的某一方面,很难有一个非常完整的画像(我们的数据总是稀疏的(缺失大量有用的信息))。还有一个非常重要的原因就是隐私,后面我们会有case study,大家就会发现在微博上其实还是有很多人不愿谈及自己的,比如说宗教信仰,政治观念等等,但是很多时候可能了解用户不愿谈及的这个方面的内容对于我们做产品,做服务又是非常重要的。基于这两个原因,我们对用户的理解就是一个碎片式的,很难召回完整的目标客户。

用户画像第二个关键的问题就是不正确性,也就是说我们对用户画像的理解很多时候是错误的,这导致就会出现错误的推荐。导致不正确性的原因有很多,第一个就是机器还无法理解这些标签,也就无法做出精准推荐。第二个原因就是在跨领域场景下,由于缺失用户的商品,也就是缺失推荐对象之间的历史交互信息,使得冷启动变成一个非常突出的问题,没有历史信息,一切基于这个的推荐就会失效。这个时候我们可能会采取一些基于语义的办法,但是基于语义的办法前提是要有精准的语义匹配,这就需要一个庞大精准的知识库来作为背景知识来支持。第三个原因就是没有针对推荐给出解释。这个是非常重要的,当且仅当你给出一个非常合理的解释的时候,用户才会很好的接受推荐。那如何给出解释呢?以前,解释在人脑里面,现在我们可以利用大规模知识库来产生解释,从而实现能够给出带解释的推荐给用户。

知识图谱怎么做用户画像?

基于社交图谱的标签扩展

针对以上的问题我们能做的有哪些?第一个问题针对标签稀疏的问题,我们可以利用知识图谱进行信息补全,最简单有效的方法就是基于社交图谱的标签扩展(标签传播),可以利用一些标签传播的算法比如PageRank、LPA、Louvain等算法去解决标签稀疏的问题,这里需要注意的是社交网络不是稀疏的,用户的标签是稀疏的(大部分用户标签缺失)。这种情况下标签传播会有不错的效果,如果社交网络也是稀疏的那么效果就不是很理想了。

这里还有一个问题就是,LPA和Louvain实际上算是社群发现算法,怎么能达到标签传播的思想呢,其实换一个思路就可以了,本质上是一样的,社群发现最终的效果也是人以群分物以类聚,那最终划分出来的社群就是具有一定的相似性,那么他们的标签我们认为也是具有相似性的,这样就可以将有标签的信息复制到没有标签信息的节点上,并不会影响我们最终想要的结果。

基于知识图谱的标签扩展

这里和上面不同的是,上面用到的是社交图谱网络去做标签的扩展传播,而这里用到的是知识图谱,这里的”知识“实际上是一个概念网络,就是由我们的标签构成的网络,这里我们可能就需要补充一些外部知识,比较简单通俗的理解就是标签联想,比如看到姚明你会想到什么,肯定是篮球,肯定是NBA,那么一个人说他喜欢姚明,那么我们是不是可以联想到他是不是也喜欢NBA,如果喜欢NBA是不是就喜欢篮球、喜欢运动、喜欢科比等等。这就是一个联想推理的过程,所以这里的标签扩展是一个标签概念的扩展和关联,一个姚明的标签我们可以扩展出NBA、篮球、运动、科比等等一系列的标签,这样对于用户的画像会显得更加饱满。

然后我们在利用这样的实体概念网络,去做我们的基于知识图谱的标签扩展,这里我可能解释的不是很清楚,一个例子就是A喜欢NBA,B也喜欢NBA,那通过NBA这个实体概念,将A和B关联到了一起,那么A身上其他的标签是不是也能传播到B,就是这样一种思路。

所以上面的内容实际上是两步:

基于外部知识图谱扩充我们的实体概念网络,首先让实体概念网络饱满起来

基于饱满的实体概念网络,利用概念的关联性做标签传播

基于知识图谱的标签泛化

标签泛化实际上和前面的内容,基于外部知识图谱扩充我们的实体概念网络的思想类似,而这里将实体概念网络换成了,标签概念网络,这里我们关注的主体是标签,我们需要将我们粒度太细的标签进行泛化。比如千与千寻、海贼王 --> 动漫;

这里不介绍太多,这里其实和NLP的技术关联度比较大,后续单独较少这方面的技术。

总结

知识图谱做用户画像,就是在已有用户画像的技术上利用知识图谱的技术比如标签传播、社群发现、复杂网络等,或引入外部的知识库,去扩充或者泛化我们的标签。这一块还是有很大的价值,特别是对标签比较稀疏的情况下,上述的方法可以起到非常不错的效果。

全部评论 (0)

还没有任何评论哟~