杨枝抬起头,警惕地盯着那扇紧锁的房门,手里端着杯子,拿着也不是,放下也不是。
他怎么会在家?
她有意识地屏住呼吸,竖起了耳朵。
这个房子的隔音并不是很好,有几次程唯在卧室里讲电话,她站在外面的走廊,完全能听到。
可是安静极了,她甚至听到了客厅角落里那盆龟背竹的声音,缺水的叶片慢慢打着蔫,无力地倚上相邻的叶片,蹭出轻微的沙沙声。
所以慕留怎么会在家呢?
还醒着,给程唯回了个微信?他想什么呢?
昏黄的房间里,慕留平躺在床上,睁着一双幽邃的眼,纹丝不动地望着白色天花板。
他的确醒了有一会儿了。
两天前,几个朋友早就算好他昨天晚上一定清闲,央着他在家里做中餐。
慕留没同意,说家里不方便,Ryan提议可以去他家,说他家不仅方便,厨房还宽敞。
慕留本来又要拒绝,只想在家里好好待上一晚,可是转念一想,做做饭换换脑子也不错,就答应了。朋友们跟慕留碰在一起,经常是几个负责买,几个负责洗,慕留一个人从切到炒,五个菜从晚上八点半做到了十点。
吃完饭,大家又说说笑笑地玩了会儿游戏,他三点多才到家。
算一算,也就睡了六个小时,不过他从初中开始就一向少眠,六个小时不多不少,这会儿他精神如常,目光清明。
两分钟了,慕留揉了眼睛,理了头发,伸了懒腰,门外还是一点动静也没有。
刚才还在那自言自语呢,一句接一句,就跟她人趴在他耳朵边絮絮叨叨似的,要是没人管她,估计能一个人说一天,现在倒是不敢出声了。
他捡起手机,又看了一遍程唯给他发的信息:【我们杨枝特聪明,一点就透,应该花不了你太长时间】
他轻笑一声,把手机扣在了床上。
咚咚。
来敲门了。
慕留不紧不慢地起身,下床,转动门把手,往里一拉——
杨枝赫然站在门前。
她身上是最寻常的夏日装扮,短袖短裤,梳个马尾,浅棕色碎发落在饱满的额头上,一双明闪闪的眼睛不躲不避地望着他。
“打扰你了,”杨枝讲出组织好的开场白,“程唯说你可以给我讲题,我敲门是想问问你什么时候有空。”
慕留立在门边,嗓音和神情一样懒散,“等我洗漱完。”
杨枝点点头,出于礼貌,她又问:“我是不是吵到你睡觉了?对不起啊,我以为家里就我自己。”
慕留没出声。
他就这么瞧着她的脸,双唇抿成了一条缝。杨枝以为他有什么起床气要发作,心道这人怎么多了这么多奇怪的毛病,却见他动了动嘴,冒出来一句不相干的话:“你刚才在听法语广播?”
哦,杨枝在心里骂了一句,合着从广播那里就醒了。
“你听懂了?”
“听不懂法语,还能听不出来是广播吗?”
“……我在练听力。”
杨枝说完,直勾勾地看着慕留,眼里的疑惑越来越多。
他怎么有两双一模一样的拖鞋?他怎么还在这杵着?怎么还不去洗脸刷牙?
“等我五分钟。”
慕留转身进了卫生间。
卧室的门就这么半开着了。
屋里的百叶窗没拉上去,借着窗帘过滤后的暧昧日光,杨枝第一次见到了慕留的房间,她的禁地。
除了他还没来得及整理的被子以外,房间干净而有序。
布局和程唯的卧室很像,只是在本来摆着边柜的位置上放了办公桌椅和书架。桌子上放着显示器,桌前是一把纯黑色的人体工学椅。六层的书架里塞满了五层的书,多是英文的,衬得角落里那几本中文书格外显眼,杨枝却把它们跳了过去,一本也没看清。
最下面一层有个玻璃盒子,里面放着一颗篮球。
杨枝替他把门关上,坐回到了餐桌边。
慕留从卧室出来的时候,杨枝正握着笔,对着屏幕记笔记。
慕留走到她身后,倒了一杯水,喝了几口。
然后,她听见他的脚步声慢慢向她靠近,拉开她身旁的椅子,坐下了。
太近了。
这一个礼拜,他总是毫无预兆地站在她对面,坐在她对面,杨枝从不觉得近。
现在,他坐在她右手边,只要不扭头,她根本看不见他的脸。
可她却觉得太近了。
近到下垂的视线里出现了他的腿。
近到闻见了他身上的香味。
这个人连味道都是不明不白的,像某种加了柑橘皮的调香茶叶,又像掺了薄荷,香气这一秒浓,下一秒淡,闻得她意乱心烦。
杨枝不动声色地把自己的电脑向慕留那边推了推。
“R我用的不是很多。”
慕留说着,身体微微前倾,从头看起了代码。
杨枝在一边等,看着他几乎不间断地下拉屏幕,修长的手指在触控板上半弯半曲,指甲剪得很整齐。
没一会儿慕留就读完了,“这个挺好理解的。”
却起身走进了卧室。
杨枝以为他是去拿手机或者电脑,可是他两手空空地回来了,又坐到她身边,胳膊举到她面前,摊开手心——
里面躺着两个小小的白色圆环,外面裹着无色透明的塑料包装纸。
“吃不吃?”慕留问。
杨枝回绝道:“不用,谢谢。”
慕留的手依然在她眼前抬着,“程唯说你也吃这个。”
……这个二傻子,杨枝暗自埋怨起程唯,她不就是吃个糖,他怎么逮谁跟谁说。
“他什么时候说的?”
“那你到底吃不吃?”
杨枝不愿意和他僵持,拿过一颗,“谢谢。”
她对着它端详了三秒。
为什么这个地方的食物尺寸都这么大,面包店里的披萨巨大一角,超市的糖浆瓶子可以做成洗衣液的式样,楼下餐厅的三明治一个顶两个,现在连薄荷糖都要大上一圈。
除开尺寸,这颗糖的外观都和她常吃的宝路很相似,形状一致,圆圈上都有压纹,只是压的字母不一样。
她撕开包装,把糖含进了嘴里。
冷冽到发苦的薄荷味冲击着口腔,大脑却不自觉地被其中又冰又凉的清甜滋味吸引,舌尖顶在圆孔里,一遍又一遍地重复。
“怎么样?”慕留含着糖问她。
她点点头,挺喜欢的。
杨枝转过头看着他的侧脸,再次问道:“程唯什么时候跟你说的?”
慕留眨了下眼睛,那双调笑的眸子里隐约还窥得到十几岁的张扬和顽皮,表情却很无辜,“他说过吗?”
“……?”
他可真欠啊。
杨枝扭过脸不看他,用牙齿咬着糖泄恨,可惜糖果太硬,她磨着后槽牙才把圆圈咬断,发出“咔”的一声。
可慕留还要火上浇油,他装模作样地瞄了一眼电脑屏幕,说道:“看不懂就看不懂吧,用得着这么生气吗?”
“……?”
咔,杨枝又咬断了一截。
右耳边响起了男生低沉克制的笑声,目光往下一瞥,他的手再一次伸到了她面前,掌心纹路干净清晰。
杨枝犹豫了一瞬,不声不响地把包装纸丢在了他手心。
慕留把两张糖纸扔进垃圾桶,坐下来,“所以是哪看不懂?”
杨枝很想把他赶出家,为什么这个地方是他的家。
她用鼠标圈出来,“这几行。”
不知道是因为嘴里有糖,还是因为不想跟慕留说话,她的嘴张得不够开,声音有点含混。
“嗯,”慕留敛了笑意,认真地问她,“词向量维度100是什么意思?”
“词向量里有100个元素。”
“对,具体说是有一个向量空间,它有100个维度,我们把这个词映射到这个空间里,得到了100个坐标。同一个词在不同维度的表现可能差异很大,举个例子,”慕留对着屏幕想了两秒,“比如‘小牛’和‘小羊’。”
杨枝用余光瞟了他一眼,没出声。
“在一个和动物有关的维度上,‘小牛’和‘小羊’可能会表现得很相似,浮点数很接近,但是在别的维度,比如地理位置,或者是一个不可解释的维度上,‘小牛’和‘小羊’可能就会表现得差异很大,相关性很低。所以维度越高,捕捉到的词语关系就会越准。”
杨枝“嗯”了一声。
慕留说到这里,开始一边敲代码一边讲:“这里它设定的维度是50,其实是很低的维度。但是它想把词向量可视化,可视化的话维度50还是太高,一般是2或者3。”
他扭头看向杨枝,“所以要怎么办?”
杨枝看向屏幕,“降维。”
“对,”慕留把头转回去,“降维有几种办法,它这里用的是tsne算法,所以加了一个rtsne的包,后面这两个参数,dims就是维度,theta你可以理解成一个加快计算速度的参数,一般在0到1之间取,它取了0.1,这个值比较小,所以计算速度就比较慢,但是算得更精确。”
手指适时按下两个井号,把他说的一些重点写成注释。
她提问:“可以取到0和1吗?”
“可以,取到0的时候结果最精确,取到1的时候算得最快。还有哪里没听懂吗?”
杨枝含着糖摇摇头。
“那我继续了?”
杨枝含着糖点点头。
慕留把可视化的函数敲完,杨枝的糖也吃完了,只剩下最后一步,设置图表的格式。
“这个图应该挺密集的,想要什么颜色?”慕留问杨枝。
是很密集,满眼的鲜红色小点,她回想起来都头皮发麻。
“蓝色吧。”
慕留输入“darkblue”,又在键盘上敲了几下,把电脑推到杨枝面前,“你运行一下。”
杨枝心道,怎么越不想看,他还越让她看。
她做好心理准备接受视觉攻击,不情愿地运行了代码。
屏幕右下角出现了一张深蓝色点状图,效果远没有她之前看到的那么不适,因为颜色从中心到边缘渐变。
还挺好看的。
“我讲明白了吗?”
“明白了。”
杨枝瞧着慕留,不知道自己现在该干什么。
见她没动静,慕留笑了一声,“干什么,你还想给我再讲一遍?程唯的微信里可不包括这项。”
他像完成了一项工作似的,人往椅背上一靠,悠闲地看起了手机。
杨枝的耳边突然安静下来。
她好久好久没听过他讲这么多话。
音色低了一点,发音吐字也更标准了。不再像以前那样,一定要把人讲会了,更像他一开始给她讲题的时候。
杨枝重新写起了代码,慕留坐在一旁回消息,时不时地撩起眼皮看看电脑屏幕。
杨枝按下快捷键运行程序,“好了。”
慕留手上忙着打字,似乎好不好都与他无关,应得心不在焉的,“嗯。”
杨枝只想赶紧结束这个环节,努力地画着句号,“那谢谢你了。”
听见这句,慕留把手机扣在桌子上,抬起眼睛看她,“怎么谢?”