看來,追女生這件事,比解NP難問題,還要復雜啊。林辰摸著下巴,陷入了深深的沉思。第二章 數(shù)據(jù)模型外的變量
?
林辰把“杯子策略”歸為失敗案例后,并沒有氣餒。在他看來,任何算法調(diào)試都需要經(jīng)歷幾次迭代,追女生這種“高復雜度社會行為”,出現(xiàn)誤差再正常不過。
?
他重新打開“蘇晚相關(guān)數(shù)據(jù)”文件夾,在“興趣模型”里新增了一個子項:對機械參數(shù)的接受度——低。
?
“看來得換個思路?!绷殖綄χ聊秽哉Z,手指在鍵盤上敲得飛快,“既然硬件展示行不通,就從軟件層面突破。”
?
所謂的“軟件層面”,指的是蘇晚的興趣愛好。林辰從行政部的入職登記表里(當然是趁同事不注意時“借閱”的)看到,蘇晚的業(yè)余愛好一欄填著“看電影、逛畫展、烘焙”。
?
三個關(guān)鍵詞,足夠建立初步模型了。
?
林辰先從“看電影”入手。他花了整整一個周末,用爬蟲軟件爬取了近半年所有上映電影的豆瓣評分、貓眼票房、微博熱評數(shù)據(jù),建立了一個“電影推薦算法模型”。模型里包含情感傾向分析、受眾畫像匹配、話題熱度預測等多個維度,最終篩選出一部愛情片——《夏日告白》。
?
數(shù)據(jù)顯示,這部電影的好評率89%,女性觀眾占比67%,其中25-30歲女性的推薦指數(shù)高達9.2分,完美匹配蘇晚的畫像。更重要的是,電影里有個場景是男主用數(shù)學公式寫情書,林辰覺得這簡直是為自己量身定做的“共鳴點”。
?
他立刻買了兩張周六晚上七點的票,座位選在中間排居中位置——根據(jù)視覺舒適度計算公式,這個位置的觀影視角最佳,既不會因為太近而眩暈,也不會因為太遠而看不清細節(jié)。
?
周五下班前,林辰攥著兩張電影票,深吸一口氣,走到了設(shè)計部門口。
?
蘇晚正背著包準備走,看到林辰,笑著打招呼:“林工程師,下班啦?”
?
“嗯,”林辰把票遞過去,手心的汗差點把票浸濕,“這是周六晚上《夏日告白》的電影票,根據(jù)數(shù)據(jù)分析,這部電影的情感傾向得分8.7,適合情侶觀影場景,其中……”
?
“林辰?!碧K晚打斷他,她看著林辰手里的票,又看了看他緊張得發(fā)紅的耳根,突然笑了,“你追女生是不是像做項目?得先做需求分析,再出解決方案,最后看KPI達成率?”
?
林辰愣了愣,認真地點頭:“理論上是的,精準定位需求才能提高成功率。這是我用三個模型跑出來的最優(yōu)解?!?/p>
?
“最優(yōu)解?”蘇晚挑了挑眉,故意逗他,“那你數(shù)據(jù)庫里有沒有一條信息?我不喜歡愛情片,喜歡恐怖片?!?/p>
?
“什么?”林辰的大腦瞬間宕機,像運行中的程序突然遭遇內(nèi)存溢出。他張了張嘴,半天沒說出話來——他的模型里根本沒有“恐怖片偏好”這個參數(shù),所有數(shù)據(jù)都指向“浪漫愛情片”是最優(yōu)選擇。
?
蘇晚看著他一臉茫然、像是被抽走了核心代碼的樣子,終于忍不住笑出聲:“逗你的?!彼噶酥鸽娪捌?,“不過這部電影我上周跟閨蜜看過了,確實挺好看的?!?/p>
?
林辰還沒從“數(shù)據(jù)錯誤”的打擊中回過神,手里的票被捏出了深深的折痕。
?
“林辰,”蘇晚收起笑,語氣認真了些,“追人不是解方程,沒有標準答案的?!彼D了頓,補充道,“有時候,憑感覺比看數(shù)據(jù)更重要。”
?
說完,她沖林辰揮了揮手:“周末愉快,拜拜?!?/p>
?
林辰站在原地,看著蘇晚的背影消失在走廊盡頭,手里的電影票像兩片失去水分的葉子。他低頭看了看票面上“夏日告白”四個字,第一次覺得,自己的算法好像漏了點什么。
?
那個周末,林辰?jīng)]出門。他把自己關(guān)在房間里,重新優(yōu)化“蘇晚興趣模型”。他刪掉了“愛情片偏好”這一項,換成了“未知,需重新采集”,又在旁邊標了個醒目的紅圈。
?
“憑感覺……”林辰對著這三個字琢磨了半天,眉頭皺成了川字。感覺這種東西,既沒有數(shù)值范圍,又沒有衡量標準,怎么量化?怎么建模?
?
最后,他決定采用最原始也最有效的方法——問卷調(diào)查。
?
周一早上,林辰拿著一份打印好的問卷,堵在了設(shè)計部門口。
?
問卷是他花了三個小時設(shè)計的,分六個維度,共37道題。從“最喜歡的菜系”到“是否相信星座”,從“下雨天喜歡穿運動鞋還是靴子”到“看電影時喜歡坐前排還是后排”,涵蓋了生活的方方面面,堪稱一份“蘇晚用戶畫像終極問卷”。
?
蘇晚剛到公司,就被林辰攔住了。
?
“蘇晚,”林辰把問卷遞過去,還附帶了一支筆,表情嚴肅得像在遞交項目計劃書,“這是用戶偏好調(diào)查問卷,麻煩你填一下。數(shù)據(jù)會嚴格保密,僅用于……提升服務質(zhì)量。”
?
蘇晚看著那張比項目需求表還厚的問卷,愣住了。她低頭掃了一眼題目,看到“如果被困在電梯里,你會先做什么”“你覺得理想的睡眠時間是幾點到幾點”這類問題時,終于忍不住笑了起來,肩膀都在發(fā)抖。
?
“林辰,”她抬起頭,眼里閃著笑意,“你這是要給我做人格分析???”
?
“算是……用戶畫像優(yōu)化?!绷殖揭槐菊?jīng)地回答。
?
蘇晚接過問卷和筆,在工位上坐下來,認真地填了起來。林辰站在旁邊,像等待評審結(jié)果的學生,緊張得手心冒汗。
?
他看到蘇晚在“最喜歡的顏色”一欄寫了“鵝黃色”,在“最喜歡的電影類型”后面畫了個括號,里面寫著“恐怖片(真的)”,在“是否愿意接受算法工程師的邀約”后面,畫了個大大的笑臉。
?
填完最后一題,蘇晚把問卷遞還給林辰,眨了眨眼:“數(shù)據(jù)采集完畢,林工程師請查收?!?/p>
?
林辰接過問卷,像得到了核心參數(shù)一樣激動,連聲道謝,轉(zhuǎn)身就跑回了技術(shù)部。
?
他把問卷上的數(shù)據(jù)輸入電腦,用SPSS做了詳細的分析。結(jié)果顯示:蘇晚喜歡吃辣,能接受微麻;怕黑,晚上睡覺需要開小夜燈;對貓毛過敏,所以養(yǎng)了盆多肉當寵物;周末不喜歡宅在家里,更喜歡去逛藝術(shù)展或看話劇;看電影時喜歡坐中間排靠右的位置,因為“方便中途去洗手間”。
?
看著這些新鮮出爐的數(shù)據(jù),林辰的眼睛亮了。他立刻根據(jù)這些信息,制定了新的“接近策略”。
?
周三中午,林辰去公司樓下的川菜館打包了一份麻辣香鍋。他特意備注了“少麻少辣,不要香菜”——數(shù)據(jù)分析顯示,初次嘗試應降低刺激度,且問卷里提到蘇晚不喜歡香菜。
?
他把香鍋放在蘇晚的工位上,還附帶了一張打印好的紙條:“根據(jù)你的飲食偏好數(shù)據(jù),該菜品匹配度78%。建議搭配冰飲食用,可有效緩解辣度刺激。”
?
蘇晚從會議室回來時,看到桌上的麻辣香鍋,愣了一下。她拿起那張紙條,看著上面嚴謹?shù)拇朕o和百分比,突然覺得這個總把“數(shù)據(jù)”掛在嘴邊的理工男,有點可愛。
?
她抬頭看向技術(shù)部的方向,正好撞見林辰偷偷張望的眼神。對方像被抓包的小偷一樣,猛地縮回了頭,耳根紅得快要滴血。
?
蘇晚忍不住笑了,拿起香鍋,走到技術(shù)部門口。
?
林辰正假裝敲代碼,手指卻在鍵盤上亂按。蘇晚走到他工位前,把空了的餐盒放在桌上:“林工程師,數(shù)據(jù)分析顯示,你的香鍋很好吃,謝啦?!?/p>
?
林辰的耳朵瞬間紅透了,手指在鍵盤上敲錯了三個字母。他抬起頭,想說點什么,蘇晚卻已經(jīng)笑著轉(zhuǎn)身走了。
?
看著她的背影,林辰的心跳又開始加速。他打開Excel,在“互動效果”一欄里,鄭重地寫下:
?
麻辣香鍋,效果+20,可重復使用。
?
窗外的陽光正好,透過百葉窗灑在表格上,把那個“+20”映得格外清晰。林辰看著這行字,突然覺得,或許“感覺”這種東西,也不是完全不能量化的。
?
至少,此刻他心里的“愉悅度數(shù)據(jù)”,正在飆升。第三章 算法之外的意外變量
?
麻辣香鍋的成功,給了林辰極大的信心。他開始按照新的“蘇晚用戶畫像”優(yōu)化策略,像調(diào)試代碼一樣,一點點修正自己的行為參數(shù)。
?
他根據(jù)蘇晚的作息數(shù)據(jù),把自己的午休時間從12點調(diào)到12點15分——這樣就能在食堂“偶遇”去打飯的蘇晚。第一次“偶遇”時,他端著餐盤,精準地計算好角度,在蘇晚對面的空位坐下,開口就是:“根據(jù)食堂本周菜單營養(yǎng)成分分析,今天的紅燒排骨蛋白質(zhì)含量達標,但脂肪含量偏高,建議搭配青菜食用,熱量攝入更均衡?!?/p>
?
蘇晚正夾著排骨的手頓在半空,看了看他餐盤里綠油油的青菜,又看了看他認真的臉,默默把排骨放回了碗里。
?
后來林辰發(fā)現(xiàn),蘇晚打飯時總愛最后去拿湯,于是他每天都提前打好兩碗冬瓜海帶湯,等在湯桶旁?!斑@個湯的嘌呤含量低,適合午餐后飲用,”他把湯遞給蘇晚,“溫度控制在65℃左右,不會燙嘴。”
?
蘇晚接過湯碗,指尖碰到溫熱的瓷壁,心里莫名有點暖。她開始習慣食堂里林辰的“營養(yǎng)分析”,甚至會主動問他:“今天的魚香肉絲,數(shù)據(jù)怎么樣?”
?
林辰的“偶遇”版圖還擴展到了電梯間。他分析了蘇晚的樓層刷卡記錄,算出她每天早上9點05分一定會出現(xiàn)在一樓電梯口。于是他每天提前十分鐘到公司,站在電梯廳假裝看公告,等蘇晚來了,就“恰好”和她同乘一部電梯。
?
電梯里的三十秒,成了林辰的“數(shù)據(jù)展示時間”?!案鶕?jù)早高峰電梯運行數(shù)據(jù),這部電梯到達12樓的平均時間是47秒,比旁邊那部快8秒?!薄敖裉斓腜M2.5指數(shù)78,屬于良,適合開窗通風?!薄霸O(shè)計部的打印機昨天卡紙三次,我?guī)湍氵h程調(diào)試過了,今天的故障概率下降60%?!?/p>
?
蘇晚靠在電梯壁上,聽著林辰報數(shù)據(jù),嘴角總是忍不住微微上揚。她發(fā)現(xiàn)這個理工男雖然說話像念代碼,但觀察得意外仔細——連她部門打印機卡紙這種小事都注意到了。
?
最讓林辰得意的,是他用Python寫的“藝術(shù)展信息推送小程序”。這個程序能實時爬取全城美術(shù)館、展覽館的最新展訊,再根據(jù)蘇晚問卷里填的“喜歡印象派、討厭抽象主義”“周末下午有空”等參數(shù),自動篩選出匹配度80%以上的展覽,每天晚上8點準時推送給她。
?
第一次收到推送時,蘇晚看著手機屏幕上那個帶著像素邊框的展覽海報,還有下面一行“匹配度92%,推薦指數(shù)五顆星”的字樣,忍不住笑出了聲。她回復了一個“謝謝”的表情包,林辰秒回:“程序還在測試階段,如有信息誤差,請及時反饋,我會優(yōu)化算法。”
?
蘇晚看著屏幕,突然覺得,被一個人用代碼的方式惦記著,好像也不是什么壞事。
?
一切都在按照林辰的算法穩(wěn)步推進,直到一個暴雨天,所有的參數(shù)都被打亂了。
?
那天下午,原本晴朗的天空突然被烏云籠罩,不到半小時,豆大的雨點就砸了下來,噼里啪啦地打在玻璃窗上,很快連成了雨簾。
?
臨近下班,雨勢不僅沒減,反而越來越大。蘇晚站在公司門口的屋檐下,看著外面白茫茫的雨幕,有點發(fā)愁——她早上看天氣預報說全天晴天,根本沒帶傘。
?
她掏出手機,剛打開打車軟件,一把黑色的傘突然出現(xiàn)在頭頂,遮住了斜飄進來的雨絲。
?
蘇晚驚訝地轉(zhuǎn)過頭,看到林辰舉著傘站在旁邊。他穿的還是早上那件灰色沖鋒衣,帽子沒戴,頭發(fā)被雨水打濕了幾縷,貼在額頭上,眼鏡片上甚至沾了個小雨點。
?
“林辰?”蘇晚有點意外,“你也沒帶傘嗎?”
?
“帶了。”林辰舉了舉手里的傘,傘骨上還掛著水珠,“根據(jù)實時天氣數(shù)據(jù),未來兩小時降雨量將達50mm,屬于暴雨級別?!彼褌阃K晚這邊傾斜了大半,自己的肩膀露在雨里,很快就濕了一片,“我查了你的住址,和我順路,送你回去?”