当前位置: 首页 > 后端技术 > PHP

图的相似度计算的极值问题

时间:2023-03-29 16:12:33 PHP

数据集的相似度计算被广泛使用。现有的人工智能底层算法大多是基于概率(possibility)的近似计算,然后取最大似然近似。参见理解计算:从根数2到AlphaGo——第一季浅谈根数(https://ufqi.com/news/ulongpage.191.html)。此外,神经网络可以用来模拟任意曲线函数,神经网络可以计算任意函数的直观证明(http://neuralnetworksanddeeplearning.com/chap4.html)。甚至,在早期搜索引擎的计算中,如果计算两段或两篇文章之间的相似度,也有一种基于图的算法,将每篇文章看成一个图,然后使用下图的相似度算法来计算两者之间的相似性。从一堆图片中找出猫的照片是一个类似的算法,车牌识别是这个算法,人脸识别,语音识别等等都是类似的应用,神经网络,深度学习等等,都是一样的。除了人工智能AI,我们还看到了各种基于兴趣的产品推荐,网络广告的智能匹配等等,都有这些算法。我们开发了一种在线广告点击率预测模型,该模型使用KNN算法,其核心使用欧氏距离的计算(https://www.researchgate.net/publication/330742123_A_practical_study_on_imbalanced_data_re-sampling_for_conversion_rate_of_online_advertising)。Neo4j为Graph的相似度计算(Similarityalgorithm)提供了几种算法。https://neo4j.com/docs/graph-data-science/current/alpha-algorithms/5.4.1。节点相似度5.4.2。杰卡德相似度5.4.3。余弦相似度5.4.4。皮尔逊相似度5.4.5。欧氏距离5.4.6。重叠相似度5.4.7。ApproximateNearest这些算法都有详细的解释,示例代码等,这里给出几种不同算法的对比分析(参考:余弦距离、欧氏距离和杰卡德相似性度量对比分析,https://www.jianshu.com/p/c4bbad87f873)。其中,余弦距离和欧几里德距离被广泛使用。CosineSimilarity/cosinedistance计算公式EuclideanDistance/Euclideandistance计算公式在Neo4j的文档中,对cosinedistance和Euclideandistance的应用场景有类似的描述:我们可以使用Euclideandistance算法来计算两个事物之间的相似度。然后我们可以使用计算出的相似度作为推荐查询的一部分。例如,根据用户的偏好获得电影推荐,这些用户的评分与您看过的其他电影相似。我们可以使用余弦相似度算法来计算两个事物之间的相似度。然后,我们可能会使用计算出的相似度作为推荐查询的一部分。例如,根据对您看过的其他电影给出相似评级的用户的偏好来获得电影推荐。Neo4j是一个开源的NoSQL原生图形数据库。Neo4j是一种开源的NoSQL原生图形数据库,可为您的应用程序提供符合ACID的事务后端。图数据库中存储的数据单元是节点(Node)和关系(Relations)。通常,一个图由一组数据表示,如g1(a0,a1,a2,a3,….),g2(b0,b1,b2,b3,….),在极端情况下,如g1(a0),g2(b0)如何比较计算相似度?这是本文试图探讨的重点。我们还结合正在研发的UfqiWork(https://ufqi.com/work)的实际应用案例对提出的算法进行了验证,取得了预期的效果。在计算g1(10)和g(100)等极值时,几乎每个算法都会返回一个非常不同的值:-1。如果我们要进一步探究,g1(10)和g2(100)的相异值与g2(100)和g3(1000)的相异值相差多少呢?显然,当上述算法返回相异极值-1时,两者的相异度是一样的,但实际情况真的一样吗?如果不是,如何描述这种不同的差异?简单直接的方法是检查两个值之间的减法差或除法商。差值或商的大小决定了两个数据之间的差值和比例关系。例如10~100的差是90,商是10,100~1000的差是900,商是10。如果要定义或应用相似度,10~100之间的相似度用数值表示是多少?100和1000之间的相似度数值是多少?如果比较差则后者比前者相差大,如果比较商则前者与后者相等。从语义解释来看,显然商的使用更符合预期,两者的性能相差10倍。用绝对商10来描述相似度显然是不合适的。为了将其表示为相似性,我们还需要对其进行归一化。为了便于描述两个值的商,我们对商取log10对数,大大缩小了绝对值的范围,为曲线表达提供了更大的空间,绝对值的微小变化可以映射到相应的对数。当试图对对数log10(x)的坐标曲线进行归一化时,需要设置区间阈值。如果两个数相等,则商值为1。取对数log10(1)时,值为0。可以认为,经过上述计算过程,当两个数的值为0时,相似度两个数的是100%。那么差异有多大呢?如果我们做归一化或百分比,我们需要确定和划定一个“相异值”??的标准。无论是取商值还是取商值的对数,我们都需要一个明确具体的值来表示或定义完全不同的值。相似。这个值最终可能需要通过经验来获得,同时也与所调查的数据可能取值范围有关。例如,考察一个人的身高,相差一倍,感觉就像一千里之外;一千英里也可能只是一个双重表达。因此,用于定义“相异性”的阈值k应该根据经验和应用场景。因此,我们可以写出我们用来评估某些两个任意数字的相似度值。如果k完全不相似,则两个数的相似表达区间为[0,k],对于这个取值范围,比较容易归一化。最后,我们编写了以下函数表达式来查找两个任意值的相似性:F(n1,n2,k)=normalize{min[k,log10[max(n1,n2)/min(n1,n2)]]};其中n1、n2是两个待计算相似度的数值,k是经验常数的极值(表示完全不相似的值)。计算过程可以描述为:1)比较n1、n2的大小;2)求n1、n2的较大值除以较小值的商;3)商值取log10对数;4)比较对数值与常熟k的大小,若商值的对数大于k,则取k的值;5)将上一步的值归一化,得到[0,1]之间的期望值。由此可知,当两个数的商相同时,它们的相似度相同。所以10~100与100~1000具有相同的相似性。商的进一步处理是为了方便表达和计算。我们在UfqiWork(https://ufqi.com/work)中尝试了类似的算法,取得了一定的预期效果。图的极值问题只是相似性问题的一个特例。同时,这些所谓的极值也是相对的。在比较图G(a1,a2,a3….)和另一个大G(b1,b2,b3…)计算相似度时,又回到了文档中提到的数据集相似度问题的计算。向上。[](https://ufqi.com/work)UfqiWorkUfqiWorkUfqiWork是一个在线服务交易平台。优福工场提供在线分类服务信息,致力于服务交易买卖双方的在线撮合,为买卖双方提供“精准”服务和中介保障服务交易。标准服务的提供者是中介交易中的第三方。祝福工坊的服务交易平台是整个服务交易过程中的第四方。线上签约,线下交付。优福工场整合服务交易的信息流和资金流,在线承载买卖双方的供需信息匹配和交易撮合,并为交易双方承担在线支付和资金担保。服务交易的标的物在线下实施和交付。优福工场服务交易平台服务于提供中介交易的“行准”,通过行准服务于服务交易的买卖双方。交易标的物与其他电子商务交易的区别在于其非标准性,如住房、工作/职业、家政/维修、汽车、医疗、教育、金融、旅游、时尚等。相应地,标准为房产中介、猎头中介、产品导购、推荐、带货等。与现有分类市场的区别在于:站在买方一方,代表买方利益的中介服务;买方有定价权,中介服务报价。相应地,卖方也可以利用定价权聘请代表卖方地位和利益的中介服务。UfqiWork图标中“Yes”的红色高亮部分就像一个“house”(住房)和一个“stool”(工作),寓意UfqiWork致力于为用户提供住房、工作、家政等信息匹配和匹配交易服务。https://ufqi.com/blog/graph-similarity-algorithm-polar-neo4j/-R/b2SN