Dynamic Set kNN Self-Join概述

一.问题

源于生活的问题

许多应用程序中, 数据对象可以表示为集(set)。例如, 在视频点播和社交网络服务中,用户数据由一组分别已观看的电影和一组用户 (朋友) 组成, 它们可用于推荐和信息提取。因此, 集相似自联接问题得到了广泛的研究。现有的研究假定集是静态的,但在上述应用程序中, 集是动态更新的, 这需要不断更新联接结果。如果采用原始的静态集合更新方法去更新动态集合,代价无疑是巨大的,因此我们需要寻求一种更高效,更适用于动态集合更新的方法.

简而言之,根据集合元素来确定集合的相似性;在集合元素处于动态变化时我们需要高效的算法来重新计算集合之间相似性.

问题的形式定义
  • 给定一个用户集合: S = s 1 , s 2 , s 3 , … , s n S = {s_1,s_2,s_3,\dots,s_n} S=s1,s2,s3,,sn

  • 每个 s i s_i si拥有多个元素: s i = e 1 , e 2 , e 3 , … , e n s_i= {e_1,e_2,e_3,\dots,e_n} si=e1,e2,e3,,en

  • 给定一个相似度计算方法:通常考虑的雅Jaccard 相似性 和 Cosine相似性.

    其中

J a c ( s , s ′ ) = ∣ s ∩ s ′ ∣ ∣ s ∪ s ′ ∣ C o s ( s , s ′ ) = ∣ s ∩ s ′ ∣ ∣ s ∣ ⋅ ∣ s ′ ∣ Jac(s,s') = \frac{|s \cap s'|}{|s\cup s'|} \\ Cos(s,s') = \frac{|s \cap s'|}{\sqrt{|s| \cdot |s'|}} \\ Jac(s,s)=ssssCos(s,s)=ss ss

  • 再给定最近邻的数目k,求出每个 s i s_i
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值