“他什么时候说的?”
“那你到底吃不吃?”
杨枝不愿意和他僵持,拿过一颗,“谢谢。”
她对着它端详了三秒。
为什么这个地方的食物尺寸都这么大,面包店里的披萨巨大一角,超市的糖浆瓶子可以做成洗衣液的式样,楼下餐厅的三明治一个顶两个,现在连薄荷糖都要大上一圈。
除开尺寸,这颗糖的外观都和她常吃的宝路很相似,形状一致,圆圈上都有压纹,只是压的字母不一样。
她撕开包装,把糖含进了嘴里。
冷冽到发苦的薄荷味冲击着口腔,大脑却不自觉地被其中又冰又凉的清甜滋味吸引,舌尖顶在圆孔里,一遍又一遍地重复。
“怎么样?”慕留含着糖问她。
她点点头,挺喜欢的。
杨枝转过头看着他的侧脸,再次问道:“程唯什么时候跟你说的?”
慕留眨了下眼睛,那双调笑的眸子里隐约还窥得到十几岁的张扬和顽皮,表情却很无辜,“他说过吗?”
“……?”
他可真欠啊。
杨枝扭过脸不看他,用牙齿咬着糖泄恨,可惜糖果太硬,她磨着后槽牙才把圆圈咬断,发出“咔”的一声。
可慕留还要火上浇油,他装模作样地瞄了一眼电脑屏幕,说道:“看不懂就看不懂吧,用得着这么生气吗?”
“……?”
咔,杨枝又咬断了一截。
右耳边响起了男生低沉克制的笑声,目光往下一瞥,他的手再一次伸到了她面前,掌心纹路干净清晰。
杨枝犹豫了一瞬,不声不响地把包装纸丢在了他手心。
慕留把两张糖纸扔进垃圾桶,坐下来,“所以是哪看不懂?”
杨枝很想把他赶出家,为什么这个地方是他的家。
她用鼠标圈出来,“这几行。”
不知道是因为嘴里有糖,还是因为不想跟慕留说话,她的嘴张得不够开,声音有点含混。
“嗯,”慕留敛了笑意,认真地问她,“词向量维度100是什么意思?”
“词向量里有100个元素。”
“对,具体说是有一个向量空间,它有100个维度,我们把这个词映射到这个空间里,得到了100个坐标。同一个词在不同维度的表现可能差异很大,举个例子,”慕留对着屏幕想了两秒,“比如‘小牛’和‘小羊’。”
杨枝用余光瞟了他一眼,没出声。
“在一个和动物有关的维度上,‘小牛’和‘小羊’可能会表现得很相似,浮点数很接近,但是在别的维度,比如地理位置,或者是一个不可解释的维度上,‘小牛’和‘小羊’可能就会表现得差异很大,相关性很低。所以维度越高,捕捉到的词语关系就会越准。”
杨枝“嗯”了一声。
慕留说到这里,开始一边敲代码一边讲:“这里它设定的维度是50,其实是很低的维度。但是它想把词向量可视化,可视化的话维度50还是太高,一般是2或者3。”
他扭头看向杨枝,“所以要怎么办?”
杨枝看向屏幕,“降维。”
“对,”慕留把头转回去,“降维有几种办法,它这里用的是tsne算法,所以加了一个rtsne的包,后面这两个参数,dims就是维度,theta你可以理解成一个加快计算速度的参数,一般在0到1之间取,它取了0.1,这个值比较小,所以计算速度就比较慢,但是算得更精确。”
手指适时按下两个井号,把他说的一些重点写成注释。
她提问:“可以取到0和1吗?”
“可以,取到0的时候结果最精确,取到1的时候算得最快。还有哪里没听懂吗?”
杨枝含着糖摇摇头。
“那我继续了?”
杨枝含着糖点点头。
慕留把可视化的函数敲完,杨枝的糖也吃完了,只剩下最后一步,设置图表的格式。
“这个图应该挺密集的,想要什么颜色?”慕留问杨枝。
是很密集,满眼的鲜红色小点,她回想起来都头皮发麻。
“蓝色吧。”
慕留输入“darkblue”,又在键盘上敲了几下,把电脑推到杨枝面前,“你运行一下。”
杨枝心道,怎么越不想看,他还越让她看。
她做好心理准备接受视觉攻击,不情愿地运行了代码。
屏幕右下角出现了一张深蓝色点状图,效果远没有她之前看到的那么不适,因为颜色从中心到边缘渐变。
还挺好看的。
“我讲明白了吗?”
“明白了。”
杨枝瞧着慕留,不知道自己现在该干什么。
见她没动静,慕留笑了一声,“干什么,你还想给我再讲一遍?程唯的微信里可不包括这项。”
他像完成了一项工作似的,人往椅背上一靠,悠闲地看起了手机。
杨枝的耳边突然安静下来。
她好久好久没听过他讲这么多话。
音色低了一点,发音吐字也更标准了。不再像以前那样,一定要把人讲会了,更像他一开始给她讲题的时候。
杨枝重新写起了代码,慕留坐在一旁回消息,时不时地撩起眼皮看看电脑屏幕。
杨枝按下快捷键运行程序,“好了。”
慕留手上忙着打字,似乎好不好都与他无关,应得心不在焉的,“嗯。”
杨枝只想赶紧结束这个环节,努力地画着句号,“那谢谢你了。”
听见这句,慕留把手机扣在桌子上,抬起眼睛看她,“怎么谢?”