搜索引擎是现代互联网的基础设施之一,而 ranking 则是搜索引擎的需要解决的核心问题。
最早尝试对搜索结果进行 ranking 的应该是 Yahoo 公司,但最终革命性突破的是 Google 公司的 Larry Page 与 Sergey Brin 发明的 PageRank 算法。
搜索引擎是现代互联网的基础设施之一,而 ranking 则是搜索引擎的需要解决的核心问题。
最早尝试对搜索结果进行 ranking 的应该是 Yahoo 公司,但最终革命性突破的是 Google 公司的 Larry Page 与 Sergey Brin 发明的 PageRank 算法。
因为各种复杂的原因,工作中遇到了某个模块当中的一个动态库(Linux Dynamic Shared Object,我们称其为 A.so)需要使用与整个模块不同版本的 gcc 进行编译。由于 A.so 使用了高版本 libstdc++.so 中提供的接口;因此,如果让 A.so 与整个模块运行在同一个环境(即,依赖同一个低版本的 libstdc++.so),那么,整个程序运行时将会由动态链接器提示「找不到符号」的错误。
一个「看似」可行的解决办法,是在编译 A.so 的时候,将对应的高版本的 libstdc++ 以静态的方式链接到 A.so 里面。这样,如果能把来自高版本 libstdc++.a 的符号隐藏起来(不暴露给动态链接器,避免符号冲突),那么就可以解决问题了。
然而,这个解决办法,实际上是不可行的。本文将分析为什么不可行。
准确是两个概念。准是 bias 小,确是 variance 小。准确是相对概念,因为 bias-variance tradeoff。
——Liam Huang
在机器学习领域,人们总是希望使自己的模型尽可能准确地描述数据背后的真实规律。通俗所言的「准确」,其实就是误差小。在领域中,排除人为失误,人们一般会遇到三种误差来源:随机误差、偏差和方差。偏差和方差又与「欠拟合」及「过拟合」紧紧联系在一起。由于随机误差是不可消除的,所以此篇我们讨论在偏差和方差之间的权衡(Bias-Variance Tradeoff)。