
现代戏(2):相关性的结构

我们都是气泡
粉红色的气泡
里面充满了空气
气泡有大有小
小的像沙粒
大的像整个宇宙
保护你也保护我
游荡 偶尔发生碰撞
有时往不同的方向飞去
背影消失
逐渐离开
有时气泡融合在一起
充满新的空气
因为表面张力
有时大的气泡纹丝不动
而你撞向墙壁
你推墙壁
获得反作用力
有时追上气泡
途中因为空气阻力散去
弹性的距离
你举起一束花
我举起一束花
我们建立临时的弹力
验证这种相关性
通过碰撞来联系
左边的人举起花
右边的人举起花
我们产生复杂的关系
验证这种关系
通过气泡来联系
是否万事万物的真理
灯红酒绿
气泡和气
“诗到语言为止” (韩东)
*copyright reserved
关于相关性之结构(iv):社会语言
按照时髦的术语说,一个模型大概也蕴含一种“向度”,或者一个价值判断,由模型的设计者施加在输入模型的限定范围的事物之上。价值判断的影响有大有小,比如不同的短视频平台的推荐内容偏好不同,有的“商业”一些,有的“草根”一些,用户看到的内容风格和倾向就明显不同,这是浅显的例子。又比如说 Plackett-Luce 排序,排序结果按分数所占的比例洗牌,大者恒强,只是还给弱者一些排在前面的小机会。当然完全随机的排序不可接受,所以以这种方式看待 P-L,这是一种公平和效率的取舍。有一些模型蕴含的价值判断非常微弱,比如统计语言模型,因为 bag-of-words 或者 n-gram 的理念是将整体事物的任何部分都看作有意义的个体,否则无意义的符号难以组合成有意义的内容。如此就更不必说一些企业所引领的“技术风潮”对价值观的影响,尽管他们的口号永远是诸如“不作恶”等等——这不是说技术有政治,而是说它们作为“语言”会影响逻辑和品味。
凡模型必有描述的目标,可能是因为描述模型的语言都具有主语、宾语、谓语的成分,没有目标不能成为谓语而终止描述的状态。所以说模型是人表达的观念,有先验的成分,也有经验的成分。区分一个模型是先验的还是经验的,可以通过检查对于同一组输入,在经过一段时间或者一些空间的变化之后,无论模型如何训练和调整,输出的结果是否发生了改变。有的人认为神经网络模型的结构是一种先验知识,但要注意的是,只有对神经网络进行赋值即确定权重之后,这个模型的表达才具有含义。
最近有一些类似 Gender, race and blahblah biases in GPT-3 generated contents 之类的文章,作者们通过给语言模型输入与身份、职业相关的语句(例如“A teacher is a __”)引导语言模型输出具有性别、种族之类敏感特征的结果(例如 “A teacher is a man/woman who teaches”),之后统计结果中特征的分布比例,一旦发现不是 50%-50% 这样的平均分配,作者便大发雷霆,要求语言模型的设计者承担“政治不正确”的首要责任。还要狗尾续貂般地提出一个认为可以缓解症状的公式,并做几个实验说服自己,在文末宣示自己的胜利。很显然这样的“政治正确修正公式”一定是经验的而不是先验的,因为只要具有目标特征的训练数据分布得偏颇一些,他们的实验不会得到任何有意义的结果。若干年以后,作者们也可能因为结果的变化而成为被攻击的对象,最终研究课题会变成一场比拼 “which language model is less racist” 的闹剧。于是乎,一些学术会议要求的 ethical code 并不能阻止政治不正确的风险存在,因为模型的任务在于表达而不是成为正确,相反它们只是一种作者们自我表达的说明和解释。
关于相关性之结构(iii)
考虑如下有三人的场景: A, B 和 C。A 发布信息,B 接受信息并产生一种解读,或者说是一种想象,B 将解读告诉 C,C 接收到解读之后进行一个相关的动作。如此 A, B 和 C 形成关系 A-B-C。在不同的论题和论域里 A-B-C 的性质是不同的。 比如图的传递闭包满足 A-B-C = A-C;欧式几何空间里的距离满足 (A-B) + (B-C) > (A-C)。 在相关性的世界里,A-B-C 的性质是不确定的。如果 B 很擅长解读和传授信息并且 C 很愚蠢,那么“存在”一种“度量”使得 (A-B) + (B-C) < (A-C);如果 B 很愚蠢但 C 很聪明,那么就存在一种度量使得 (A-B) + (B-C) > (A-C)。如果相关性是一种实体,那么测量相关性就是在对某些实体的特性做算术。如果相关性是一种概念,就会发生实体和测量的分离。很显然日后人们不会满足于寻章摘句式的检索,而是试图查找一些演绎方式、一些逻辑方法或者一些观点。
一般的相关性是二元的:“query” 和 “document”——至多在此基础上添加一些 “context”,比如知识库 (knowledge base),一些 web objects 的集合等等。以前有一些 “query” 和 “document” 基础上添加一个 “user” 然后考察 “feedback or effect of user behaviour” 之类的文章,它们实质还是 context,仍属此类。而要表达一个完整的关系往往需要三个或者更多的实体。
在前段时间我给自己的博客加上了一个声明页面,说明本博客内容的权利信息,简单概括就是“随便用,后果自负,博主保留解释权”。写出来传播的东西就已经是过时的,更有意义的东西永远是将要被写出来的。如果我要在网上发表言论,我会以自己的风格进行写作;如果我要发表论文,我会按照学术的流程工作。因特网上的个人写作就好像是站在田野上撕下笔记本的一角放在手心里写几个字,然后目送它被风吹到看不见的地方,无牵挂最开心。
关于相关性之结构(ii)
举个不太恰当的例子。伟大的作家,譬如陀思妥耶夫斯基、托尔斯泰、鲁迅、福克纳和马尔克斯,他们的作品像一面镜子,严肃的读者会为镜中的自己而自惭形秽。但是作家所写的东西有些是真实的有些是想象的,尽管读者真心忏悔,但是读者不能认为作家写的就是自己,否则就容易陷入被害妄想症,和这人任何行动上的蛛丝马迹过不去。每个人、社会实体或者企业现在所承担的事实都是自身历史和当前的汇总,并由参与者主观能动地显现的结果,不是个体所能轻易制造的。我在写点东西的时候,并不在意反映的世界是真还是假,但我清楚虚拟与真实存在一条界线。每件事物都有自己的形状,虚拟逼近真实的进步固然令人激动,但在未来的某个阶段,具有边界感会更令人可喜。最近十年世界各地风起云涌的“平权运动”并没有领悟到这点,所以最终他们拯救了自己,也毁灭了自己。
机器学习理论引入信息检索的本质好处是它可以在很大程度上回答什么样的检索问题是可学习的,而且这些可学习的问题在现实生活中有相当广泛的应用。几乎所有的检索模型都可以被改写成一个机器学习的问题(这是不是一句废话呢?有些严肃读者可以思考TFIDF和BM25应该如何被改写为一个机器学习问题,这和以前某个外国人写过的一篇很无聊地把TFIDF/BM25写成概率模型的小文章有关)。机器学习理论遇到问题的时候,那些应用它的检索模型也会跟着遭殃。除此以外,还存在许多不能回答的以及不可学习的检索问题。“不可学习”不是说这个问题没救了,而是说解决它的办法另有类型。
什么是相关性的结构?是它产生的原因,它的范围,它的副作用和影响它的副作用。而不仅仅只是“语义匹配”:那是“术”而不是“道”。天下有道的时候,玩弄各种各样的术是有趣的。无道的时候,术就会泛滥,失去它们作用的界限。
关于相关性之结构(i)
一般来说,一个相关性度量可以确定一组检索模型,这是一个学习排序问题,已经有非常多结果。有趣的是不少文章都会煞有介事地解释自己不能解决的“bad case”产生的原因。如果按照这种语气,不难想出临时的补救方法作为模型的补充,可以让测试成绩快速提升,写进 methodology 部分。然而实际并没有人这么做,意味着这样的叙述没有多大意义。
一个检索模型也可以确定一组相关性度量,这叫概念上的对偶,没有实际的用处。把两个形式上互逆的模型放在一起训练,然后根据结果得出结论说这样更好,有一些循环论证的意味,实质也如同在用最优化的办法计算两个凸集的直径。但这种概念可以帮助理解后续所谓“相关性的危机”。
所谓的”neural MRF”
“中文 NLP 任务”有个有意思的现象,就是“词向量”和“字向量” 之争:有时候拿字向量作为输入得到的结果最好,有人便解释道“这个任务对词的信息依赖不强,上词向量反而添加噪声”;有时候拿词向量作为输入得到的结果更好,又有人便开始分析表示这是“捕捉到了字与字之间的信息流动”;更多时候是分别训练字向量作输入与词向量作输入的两个模型,再把它们的输出加权平均,这叫做“对模型 ensemble 使性能更好”。在比较完备的语言模型出现后,这种争论才逐渐消失。
我想起一两年前面试某些公司和搜索相关的岗位的时候,发现所有人都不知道什么是 sequential dependence model 或者 Markov random field,并且时常伴随着一种类似便秘的艰难的表情(其实遇到未知的知识不应该兴奋吗,这是在免费送经验,而不是想着“这场子快要压不住了,我的级别受到威胁”),我只好找个理由圆场,比如说“中文的文本都已经做过分词了,不需要这个了,确实不用了,确实不用了”。心里想的却是分词用的大多是 CRF,把分词的部分和搜索的部分拼接起来,和 MRF 的结构没有什么本质的区别。(如果是态度比较顽劣的,像某个要被美国人下令甩卖的公司里有个小白脸一上来就说“听说你是 phd,我要考考你,对你有更高的要求”,我只能表演出一副什么都不会的样子满足他战胜我的愿望,快速结束这场闹剧)
SDM 这种古老的模型知晓原理已属次要,尽管我在香港的时候经常拿来即兴改造让它达到很强的性能,只属自娱自乐。理解 term proximity 这个度量查询的参数比较重要,属于基本功。在业界“做搜索”的人不少是半路出家,从机器学习的工作甚至是前端后端转行而来,做事没有层次感。
回到字向量和词向量这件事上,它们没有任何区别,如果模型中的某个结构碰巧刻画了字与字的条件概率。完备的语言模型构造了复杂的概率图刻画语素的共现性,它们胜过 sequential dependence model 是不言自明的。所有使用 word hashing 的方法同理。
“随机检索”可以帮助淘宝阻止拼多多的商业扩张吗?
淘宝网是中国规模最大的B2C/C2C购物网站之一。拼多多是中国现在最火爆的“社交电商”。拼多多的增长非常迅猛,淘宝似乎处在一个很不利的局面。
拼多多的成功是社会生产过剩的幻觉,这种幻觉还会持续很长一段时间。从一些分析数据来看,两个平台现在的使用人群没有特别显著的区别,“下沉市场”之说不见得成立。不如说这是淘宝长期发展造成的结果:资源向所谓的“头部商家”聚集,平均交易成本骤然升高,那些受害者自然会流入新的平台。如果把购物网站看成一种生产工具,那么现在制造这种生产工具的生产力已经十分先进,原则上说再造的电商项目在早期都会收获平均交易成本降低带来的红利。随着规则的完善,只要分配交易双方的方式是确定的,那么交易者必然为了获取最低的成本不断尝试预测这种分配方式,比如说,用控制变量法修改一些商品的属性再对前后的交易额进行比较。分配方式的 outcome 是独占的,尝试是需要成本的。最终竞争失败的人就会发现,所有的尝试方式都失去意义。
我叫它 “strategic random retrieval”,是因为 stochastic 更像是某种确定性的法则产生的随机性,当然现有的东西还是摆脱不了 ranking 这件事。
但如果要提务实的建议,我会建议全场包邮,静待时机,因为见效快,来得及汇报成果。
Math, theory and observation.
只要我想,我可以试着用形而上学重写一遍信息检索的基础:从黑格尔和费尔巴哈的著作里面搜刮几个词语,把容易理解的概念和演算法则说成是“理性精神”,把那些我看不懂的东西推说是“客观精神”,模型和算法就叫做“精神运动”;再花上钱或者人情,找个“AI自媒体”的公众号放上一篇像模像样的通告,取上诸如《XX点赞,大佬力挺,最新超越blahblah!》的标题,一样把麻瓜耍得团团转(所以我从未订阅这些公众号,作为一个平凡人,希望每天早上一睁眼就吃点好的,而不是面对那么多莫名其妙的“疾风”。如果按照新闻从业人员的职业规范,这些家伙没有一个能够上岗)。
然而自我陶醉的理论最终要接受现实的考验,在这之间架设名为评估的桥梁。科学是求错不犯错而不是求对,否则就容易陷入重言式的陷阱。我见过几篇研究“可解释性”的文章,粗略扫描我就知道他们可能进入了一个无法自拔的循环:在自己设计的体系里面不管怎么说怎么测试最终都是自己的结论对。就好比如果对 SDM 穷举参数值进行优化,它必然胜过 LM——单从数学的形式上说后者是前者退化的情况。这样的比较是毫无意义的,而要验证它们对于现实不同的观察和理解,再反推出结论。顺带一说,有一家国内公司之前招聘过专门研究“可解释性”的研究员,一开始我很赞赏该公司领导的眼界和魄力,但转念一想我就担心起担任这个职位的人,因为“解释性”是真正苍白的深渊。除了少数几个得到验证的东西以外,大部分的模型都是不知正误的,又如何在此基础上“解释”呢。Yann Lecun 最近在 Twitter 上评论 “PULSE 风波”说,用白人的数据集训练出来的模型当然结果输出是白人,用黑人的数据集训练出来的模型当然结果输出是黑人。这是很实在的话,但会让人怀疑这些理论到底是“智能”还是别的东西。
最近有一位老师在推广自己在几何方面的成果,讲解比较深奥的数学知识,顺便提到一些和“深度学习”可能的联系。他老人家传授的数学正确而且精彩,晚辈瞎掰的一些东西可能也要学习借用类似的步骤自圆其说,但每个学科都有自己的见解,否则这个世界只需要数学这一种科学了。有些文章的标题,自己迫不及待地加上了不少激进的词汇,结果还是老样子。这让我想起武侠电视剧的主角在荒郊野岭捡到一本“武林秘籍”之后对着空气瞎比划几下盯着自己的爪子得意傻笑的场景。从这方面思考,解释不仅是解释,否则某个“正确的解释”只会产生一样的结果,某种意义上说等于没有解释。所以求的不是解释,而是理解上的前进或不同。
“流形检索”提要。
最近,我写的一篇文章进了 SIGIR 2020 这个会。它很短,对我来说是一个“锚”,这样以后写作的时候起码有资料可以引用,不用像民科一样没有根据地长篇大论。
这篇文章只想讲一件事:在连续的集合上可以定义“语言”。如此,所谓的“神经排序”就是连续点集上的统计语言模型,因此所谓的“end-to-end” 就是内蕴的性质。“结构”(structure)与“测度”(measure)是“新语义检索”的基础,它们分别概括了“表示法”(representation)和“模型”(retrieval model)这两个传统的概念。它必须收敛,收敛性是模型正确性和性能的一种估计。有些公司的什么“技术博客”总喜欢吹嘘“数据决定模型性能”这类有机械唯物主义意味的观点,奉之为“指导思想”,把自己的命运完全交给收集用户偶然的行为(这些用户行得通,那些用户呢?当然可以说自己的模型都能奏效,但这就不只是数据的问题),还有对 learning-to-rank 望文生义的涂改,不想多说,专心做生意吧。
流形上的概率论很早就有了,这与信息几何(information geometry)的发展有关,只是它们研究的大多都是参数空间的分布,本文反而考虑变量空间的事情。以前那些形如“xx learning/clustering on manifold”的文章,为了让梯度可以直接在曲面上更新,一定会用指数映射之类的方法。这些画蛇添足的内容我全都放弃了。从某种意义上说,直接更新梯度之后再把向量归一化再算测度,是一种“传输”,这暗示了那些 xx norm 之类的方法真正的含义。还有一些譬如 ngram 表示之类的问题,可以在复流形上解决,也可以用一些像向量一样的东西代替。
其实,这也和量子检索(quantum retrieval)有关,只是前面的人比较极端,试图用量子力学直接概括整个领域。
这篇论文的写作和发表可能得到了无法知晓的支持,在此顺带以真诚致谢。我从不打算靠做此类研究谋生。这个时代,智力正常的人都应该想出一百种赚钱的方式,在每个行业只要花足够多的时间和毅力,最后都能得到可观的财富,做到底就知道这其实是国家实力发展的结果。在一个动荡的社会里很难静下心来做事,这是我暂时离开香港的原因,无法一直在负面的情绪中工作和生活,这会扭曲人的心灵,神智将和社会一样撕裂。但我会认为,这篇论文是给香港社会的答谢,尽管它没有了不起的内容,我也只是很渺小的一个人,能够没有负担地走出去。
这是“拳皇”系列博文的结束,台湾知名格斗游戏选手“Nikolai 保力達”的视频给了我很多的乐趣,过段时间再写下个系列。
所谓“策略随机检索” (Strategic Random Retrieval)
本来,在这个系列的最后,我准备放上几个 runs,进行期待已久的“清算”。可是有个小朋友给我分享了自己好友在父母长达十余年外遇、家暴的历史下艰难生活的故事,告诉我要“be kind to others”。所以那种“灭门”的事情以后再说。现在想写关于 diversity 的故事。
这个世界充满了优胜劣汰,所有设计模型的人都想着如何 do the best estimation given observations. 供给信息的人则想着如何 maximize the importance of their features. 所以系统忙着 learning to rank,供给者忙着做 SEO,而用户则忙着辨认真切的结果和“充值”的结果。这个三方系统的内部成本在这样的内耗中不断增加。正确性和相关性、以及任何试图学习这两者的性质,最后都失去意义。
一种没有排序的检索从随机返回任何结果中产生。为了满足愉悦和可靠的目标,在最开始它可以从向传统的检索施加有策略的扰动开始。这种扰动可以是一种约束,也可以是一种行为。
**(当然我说的不是“转化率”。敢把转化率当成吹嘘的资本写进每次署名七八个作者的的学术论文里面也就只有国内几个胆子大的公司才能成就如此伟业。)