跳到主要內容
聯絡我們

兩百個人在同一個場子裡。誰該跟誰講話?

這一頁是問答。沒有標語,沒有三大特色。你問的每一個問題,下面都有答案——包括我們做不到的那幾個。

規則引擎 · 無模型呼叫 · 輸出是理由不是分數

靛色為檢視者這一端,天藍為被排序的另一端。加亮的線代表這一組有命中的維度。

為什麼不用 AI 就好?

因為主辦方要能回答一個問題:「為什麼推薦這個人給我?」

這個問題在活動現場一定會被問到。與會者會問、贊助商會問、被排在名單後面的人更會問。你需要一個能當著對方的面講出來、而且對方可以反駁的答案。

向量距離講不出來。「模型認為你們比較相近」不是理由,它是一個結論,而且是一個沒辦法檢視、沒辦法反駁、也沒辦法修的結論。當有人說「這個推薦不對」,你只能回答「那我們再訓練看看」。

所以這套的核心是反過來的:先定義什麼叫「配得上」,再照定義排。 定義是寫死的、看得到的、可以被主辦方改的。排出來的每一筆都帶著它命中了哪幾條定義。

這不是技術上做不到 AI。這是判斷了在這個場景裡,可解釋比聰明重要

代價要一起講:它只會發現你定義過的關聯。兩個人之間有一種你沒想到的合作可能,這套排不出來——那正是 AI 有機會而它沒有的地方。

那你們怎麼算?

四個維度,逐維度比對,命中就給該維度的全額分數,沒命中就是零。沒有中間值。

四個比對維度
維度比對的是什麼命中的定義
sector 領域雙方登記的產業/領域標籤有任一標籤重疊
stage 階段雙方登記的階段(例如募資階段、合作階段)落在對方宣告的目標範圍內
budget 規模收進來時就轉成級距了。系統裡不存原始金額。(收進來時已正規化為級距,不是原始數字)級距相符
geo 地域雙方登記的地區有任一地區重疊

為什麼是「全額或零」

因為半分講不出來。「這一維你們有 0.6 分的相似」——0.6 是什麼意思?誰能反駁它?

全額或零的好處是理由可以直接寫成一句話:「領域重疊:金融科技」。這句話對方看得懂,也可以說「不對,我們早就不做金融科技了」——然後你去改資料,下次就對了。

為什麼是單向

A 想見 B,不代表 B 想見 A。

一個找錢的新創想見所有投資人;一個投資人只想見符合他 thesis 的那幾家。同一組人,從兩邊看出去的排序完全不同,而且本來就應該不同

所以這套算的是「以某個人為檢視者時,其他人該怎麼排」。每個人打開自己的名單,看到的順序都是為他自己算的。沒有一個叫做「配對成功」的全域狀態,因為那個狀態在真實世界裡不存在。

加權與平手

各維度的權重加總得到排序位置。分數只在系統內部存在,不會出現在任何輸出裡(原因見下一題)。

平手時的處理是確定性的:先比領域標籤的重疊數量,還是平手就依姓名排。不是隨機、不是「看誰先報名」——同樣的輸入永遠得到同樣的順序,可以重放、可以複查。

工程性質

  • 純函式

    無 I/O、無隨機、無時鐘。給同一份資料,永遠回同一個結果

  • 毫秒級

    在一次 session 內算完,不需要預先跑批

  • 有測試

    單元測試與整合測試都有,排序邏輯的改動會被測試擋

  • 詞彙表是單一事實來源。表外的值不參與比對。

    自由填寫欄位若填了詞彙表外的值(例如地區欄填「火星」),該值不會被拿去誤配,而不是被硬塞進最近的分類

為什麼只給理由,不給分數?

因為分數會被當成價值判斷。

「我只有 62 分?」——這句話一定會出現。而且出現的時候,你解釋不完。62 分不是在說這個人比較差,它只是在說「以這位檢視者當下的四個維度看,命中了兩項」。但沒有人會這樣讀它。數字一旦出現在畫面上,它就變成了對人的評價。

更麻煩的是分數會被拿去比較。與會者會互相問「你幾分」,然後你就得解釋為什麼同一個人在不同人的名單裡分數不同(因為是單向的),而這個解釋會花掉你整場活動的時間。

所以輸出只有理由:

陳○○ | 某消費性電子品牌 | 產品負責人
  ✓ 領域重疊:智慧硬體
  ✓ 地域重疊:台北

林○○ | 某工業自動化系統商 | 業務總監
  ✓ 領域重疊:智慧硬體、工業物聯網
  ✓ 規模級距相符

黃○○ | 某供應鏈軟體團隊 | 共同創辦人
  ✓ 領域重疊:工業物聯網
示範內容。姓名與單位為虛構,僅示意輸出格式。

排序仍然存在——第一筆就是排最前面的那一筆。但你看到的是它為什麼在前面,而不是一個可以拿去比大小的數字。

這個差別在實務上很具體:有人跟你說「這個推薦不對」,你們可以一起看那三行理由,指出哪一條寫錯了,然後去改資料。分數做不到這件事——分數只能被接受或被質疑,不能被修正。

分數確實在內部存在(它決定順序)。我們的選擇是不把它端出去。如果你的場景需要分數(例如要跟贊助方交代一個量化指標),這是設定層的決定,不是重寫系統——但我們會先勸你不要。

權重誰決定?

主辦方決定,但目前是在導入階段一起設定的,不是後台自助調整。

講清楚現況:維度與詞彙表是設定驅動的——維度定義、詞彙表、表單欄位對應各自有自己的設定檔,換一個場景就換一組設定,不動流程程式碼。但「主辦方自己在後台拉滑桿改權重」這個介面目前沒有實作。導入時我們一起把權重定下來,之後要調整由我們改設定。

這不是理想狀態,但我們不會把還沒做的東西畫在頁面上。

這裡刻意不寫具體數字。第一次導入時用你們的實際名單試,比看數字有用。(討論用,不是產品內建的預設值)

各場景的建議起始權重
場景sectorstagebudgetgeo為什麼這樣起手
展會買賣家媒合買什麼賣什麼最重要;階段幾乎不影響
投資對接階段與規模不對就見不成面,地域可遠距
加速器 mentor 配對領域對口為主;金額不是變數
產學媒合地緣關係在產學合作裡權重很高

這張表是導入討論的起點,不是產品出廠設定。每一場活動的目的不同,第一次一定要一起調。調權重的效果是可以馬上看的:改完重跑,同一批人的排序立刻不同,兩份名單並排就知道改對沒有。

冷啟動怎麼辦?

先說結論:資料少的時候,它會誠實地排不出強弱,而不是製造假的區別。

具體行為有三條:

一、缺資料不淘汰,只扣分。 報名表沒填完的人不會從名單裡消失,他只是在那個維度拿不到分。半份資料仍然參與排序——因為在真實活動裡,「報名表沒填完」跟「這個人不重要」完全是兩件事。

二、表外的值不參與比對。 自由填寫的欄位填了詞彙表沒有的值,那個值就是不比對,不會被硬塞進最相近的分類。寧可少一條理由,不要一條錯的理由。

三、整批資料都稀疏時,排序會趨近平手。 這時候接手的是確定性的平手規則(先比領域重疊數、再比姓名)。畫面上會出現一整批理由少不代表這個人不好,代表你們對他的資料還很少。、甚至沒有理由的人——那個畫面是正確的,它在告訴你「資料還不夠,先去補表單」,而不是告訴你這些人配不上。

目前的資料量還排不出明顯的順序。建議先確認報名表的必填欄位。

我們沒有做「資料不足時改用別的推薦策略」這種降級。那會讓兩種模式的輸出混在一起,而使用者分不出來哪一筆是哪一種算法排的——那比排不出來更糟。

會不會每次都推薦同一批人?

會。而且是必然會——因為這是純函式:同樣的輸入,永遠是同樣的輸出。

目前沒有實作曝光平衡或輪替機制。 這是實話,不是保留。系統裡沒有任何「這個人已經被推薦太多次了,往後排一點」的邏輯。

所以在現階段,讓名單變動的只有三件事:

讓名單變動的三件事
讓名單變的東西怎麼變
資料變了有人補完報名表、有人改了領域標籤 → 重新同步後排序就會不同
權重變了主辦方調整維度權重 → 整批重排
人變了新報名者進來 → 進入排序池

如果你的場景需要曝光平衡(例如一個要確保每位參展商都被看見的展會),那是要另外做的功能,不是設定可以打開的開關。我們寧可在這裡講清楚,也不想讓你在活動當天才發現。

補充一個相反的觀點:確定性本身在某些場景是優點。同一份名單今天看跟明天看是一樣的,與會者不會覺得「我昨天看到的那個人怎麼不見了」,主辦方也可以重放任何一次排序來查問題。是不是缺點,取決於你的活動。

這套現在能用嗎?

誠實的答案是:還不能,而且我們知道還差什麼。

目前狀態

目前狀態
項目狀態
排序引擎本體程式碼完整,純函式,有單元測試與整合測試
表單資料同步完整(映射由設定檔驅動,欄位有 ground truth 檔鎖住以偵測漂移)

已知限制(逐條列,不包裝)

一、沒有經過真實活動的實戰驗證。 我們不會說「已在大型活動驗證」——那是還沒發生的事。程式跑得起來、測試會過,跟兩百個人同時在會場上用,是兩件事。

二、主辦方自助調權重的介面沒有做。 見第 4 題。

三、沒有曝光平衡。 見第 6 題。

四、維度是四個,而且是為特定場景定義的。 換一個場景要重新定義維度與詞彙表。這件事不難,但它是一次導入工作,不是「填個設定就好」。

這一頁到這裡為止沒有出現過一句「業界領先」「智慧配對」「精準媒合」。這是刻意的。這套東西的價值就是它可以被完整地檢視——包括檢視它還沒做完的部分。

那下一步是什麼?

如果你手上有一份真實的報名名單(不用給我們真名,欄位結構就好),我們可以跟你一起做兩件事:

一、把你的場景翻譯成維度。 你這場活動裡,什麼叫「配得上」?這一題比程式碼難,而且只有你答得出來。

二、用你的欄位跑一次排序,把理由印出來看。 對不對,你看第一眼就知道。

看資料怎麼從表單進來