產品設計實戰(zhàn)拆解)
最近在做一個內部數(shù)據(jù)產品重構名字就叫“DataQA數(shù)問增長”。這東西說白了就是把過去那種“你問我答”的報表式問數(shù)工具從根上換了個活法——不再滿足于幫你“猜答案”而是奔著“算增長”去。我剛開始拿到這個需求的時候其實心里也打了個問號智能問數(shù)這個賽道前幾年做得爛大街了無非是自然語言轉SQL、圖表生成、隨口報個數(shù)。真要往“增長”這個方向上靠到底能做出什么不一樣的東西這個標題是項目組內部頭腦風暴定下來的我越琢磨越覺得有點意思所以干脆把整個設計思路、踩過的坑、最后怎么落地的過程完整記錄下來。這篇東西不聊空泛的概念全是實操層面的拆解適合正在做數(shù)據(jù)產品、BI平臺、或者想給團隊引入智能問數(shù)能力的同學參考。1. “猜答案“和“算增長“這句話到底差在哪先把這層窗戶紙捅破。過去市面上絕大多數(shù)問數(shù)工具本質工作就是“查數(shù)”。用戶問“上周注冊轉化率是多少”系統(tǒng)解析意圖、匹配指標、返回一個數(shù)值。這個流程看著順理成章但用起來很別扭。為什么因為“查數(shù)”本身不產生業(yè)務價值數(shù)字只是事實的記錄它回答的是“發(fā)生了什么”。而業(yè)務方真正想問的往往是“我該怎么辦”。我們立項之前做了一輪內部調研把過去半年所有業(yè)務方在舊平臺上的真實提問撈出來看。發(fā)現(xiàn)一個特別扎心的規(guī)律超過半數(shù)的問題帶著“為什么”和“怎么提升”的情緒。比如“為什么昨天新增用戶跌了”“活動頁的付費轉化怎么這么低”“跟上周比到底是哪個渠道拖后腿”。但舊工具只能硬著頭皮把這些話轉成SQL最后給一個孤零零的數(shù)字用戶還得自己再拉一個Excel去做對比分析。這就是“猜答案”模式的原罪。它假設用戶心中已經(jīng)有一個明確的問題但真實世界里業(yè)務方往往只有一個模糊的困惑。他們想要的不是那個數(shù)字本身而是數(shù)字背后能指導下一步動作的洞察。所以做“數(shù)問增長”這個項目第一件事不是選模型、搭架構而是把產品定位從“報表問答”切換成“增長分析助手”。這帶來的變化是結構性的指標體系要重建、對話交互要重設計、底層計算引擎要支持多維拆解和歸因而不僅僅是簡單的聚合查詢。再說透一點。“算增長”這三個字我理解包含三層遞進的能力。第一層還是得會算數(shù)這是地基第二層是能算賬能把指標變化拆解成渠道、人群、行為階段這些可以歸因的因素第三層才是算增長基于歸因結果給出可執(zhí)行的優(yōu)化方向和預期收益模擬。能用一句人話總結就是讓工具從“告訴你體重80公斤”進化到“告訴你這80公斤主要是體脂高、應該調整有氧和飲食結構、預計三個月能減到75”。顯然后者才算對業(yè)務有價值。2. 對話式增長分析的四個關鍵動作明確了方向之后怎么把“算增長”落到產品設計里我們最終把核心交互抽象成四個動作問、算、析、策。這四個字幾乎貫穿了所有功能模塊下面逐一拆開講。2.1 問讓用戶自然表達“模糊的困惑”第一關就卡住了。自然語言理解NLU這塊用開源模型微調還是直接調大模型API我們試過兩條路。一開始用微調方案意圖識別準確率確實高但代價是每新增一種問法都要標注數(shù)據(jù)、重新訓練迭代周期按周算業(yè)務方根本等不起。后來換了方案把通用大模型作為語義解析層配合一套我們自己設計的上下文模板效果反而更穩(wěn)。實操上我們在對話入口預設了幾類高頻意圖模板趨勢查詢、對比分析、維度下鉆、異常歸因、策略建議。用戶不一定要按照模板說話但模板會成為模型理解的錨點。舉個實際例子“新增用戶怎么又跌了”這句話直接丟給原生接口大概率會被識別成簡單的數(shù)值查詢。但配合模板和上下文信息系統(tǒng)能知道用戶關注的是“新增用戶”指標的“周環(huán)比下降”并且有歸因訴求。這里的關鍵是不要指望模型全知全能產品設計要把用戶意圖的可能空間盡量壓縮到可控范圍內。另外為了降低用戶表達成本我們做了指標快捷輸入面板。用戶點一下“新增用戶”再點一下“對比上周”系統(tǒng)自動生成帶參數(shù)的問句用戶改改時間就能發(fā)出去。別小看這個交互實測下來使用門檻直接降了一半。很多人不敢跟對話機器人說完整句子寧可去點點點??旖葺斎氡举|上是在喂給系統(tǒng)更多結構化信息后續(xù)解析的準確率自然高很多。2.2 算從單點數(shù)字到多維計算編排“算”這個字在傳統(tǒng)問數(shù)系統(tǒng)里就是SQL生成與執(zhí)行。但在增長場景里我認為更合適的形態(tài)是把一次分析請求拆解成一個可編排的計算流。系統(tǒng)不僅要回答“轉化率是多少”還要回答“轉化率按渠道分是什么情況”“哪個渠道對下降的貢獻最大”“如果保持頭部渠道的投放力度整體轉化率的預期是多少”。技術實現(xiàn)上我們沒有走純文生SQL的老路因為復雜歸因查詢生成一條冗長的SQL可解釋性太差出了問題也沒法排查。底層采用了一套指標語義層加上分析算子庫。指標語義層定義了每個指標的名稱、口徑、依賴的原子指標和維度算子庫則封裝了趨勢分析、占比分析、貢獻度拆解、留存對比這些常用分析邏輯。用戶提問后系統(tǒng)先通過語義解析定位指標和維度再組合出對應的算子執(zhí)行計劃。我用一個類比來說明這個設計的優(yōu)雅之處。傳統(tǒng)方案像是一個翻譯把中文翻譯成數(shù)據(jù)庫方言我們的方案像是一個配菜師傅根據(jù)客人用戶的口味從備好的食材語義層里挑出幾樣按標準化菜譜算子炒一盤菜。標準化的好處是結果可預期而且每道菜都能復用。從落地效果看計算引擎執(zhí)行一次復雜歸因分析的耗時控制在2秒左右相比所有邏輯都走大模型生成的SQL方案穩(wěn)定性明顯提升。2.3 析把歸因說成人話算出來結果只是中間產物最難的是怎么把這些結果轉化成業(yè)務方能看懂的歸因結論。這個模塊我們內部叫“洞察生成器”。它的輸入是分析算子的結構化輸出比如各渠道的貢獻度、指標波動的分解因子輸出是幾條帶邏輯的結論文本比如“本周新增用戶環(huán)比下降12.3%主要受渠道A影響貢獻了下降幅度的67%”。為了讓結論不“AI味”太重我們做了三件事。第一結論必須引用具體數(shù)值和維度避免模糊表達第二結論按影響因子排序重要原因絕對要放在第一句第三每條結論后面都掛著一個可追溯的“查看明細”入口用戶不滿意可以點進去看原始數(shù)據(jù)表不能讓它變成黑箱。這個設計一開始就被我們定為原則分析結論可以智能生成但用戶始終有權利查看一手數(shù)據(jù)。做歸因的時候最怕的就是算法給出一個看似合理但業(yè)務上站不住腳的解釋。比如某個渠道的轉化率降了但該渠道本身流量就小只是波動比例大系統(tǒng)如果只看比例就把鍋扣給這個渠道業(yè)務方一眼就能識破并且失去信任。所以我們給貢獻度計算加了兩道保險一是同時計算影響絕對量和相對波動率綜合排序二是引入業(yè)務經(jīng)驗規(guī)則做修正比如核心付費渠道的權重會調高。這塊沒有太多捷徑需要產品經(jīng)理和數(shù)據(jù)分析師一起把業(yè)務知識沉淀成規(guī)則表。2.4 策從分析結論到行動建議“策”這個動作是整個產品最亮眼的地方也是真正配得上“算增長”三個字的功能。系統(tǒng)在給出歸因結論之后會繼續(xù)追問一步那接下來應該做什么初始版本我們用了一套規(guī)則模板。比如歸因發(fā)現(xiàn)某渠道的新增用戶下降貢獻最大規(guī)則庫會建議“復盤該渠道近期素材投放和廣告出價情況”。這套規(guī)則用起來不痛不癢因為沒有結合具體數(shù)據(jù)和目標給出有計算依據(jù)的建議。后來迭代到第二版我們引入了預測模擬能力。用戶可以說“假設下周該渠道轉化率恢復到上周水平整體新增用戶能回到多少”系統(tǒng)會基于歷史數(shù)據(jù)分布做一次仿真推演給出一個帶置信區(qū)間的預測結果。當然機器學習預測的準確性需要數(shù)據(jù)積累和持續(xù)調優(yōu)這塊我們不吹牛。但即便只是把“恢復到上周水平”和“維持本周水平”兩種情景下的預期收益算出來對比對業(yè)務方的決策幫助也已經(jīng)很大了。人腦不擅長做多變量推演而機器天生適合干這個。給用戶一個可量化的行動依據(jù)比十句抽象建議都管用。在“策”這個模塊落地過程中我的體會是不要試圖一步到位做通用決策引擎先把高頻、規(guī)則清晰的場景做成模板讓用戶感受到“這東西能幫我算清楚下一步怎么辦”等信任建立起來再逐步放開更復雜的模擬和推薦能力。3. 指標體系算增長的地基工程如果說前面的功能設計是產品和算法的事那指標體系建設就是實打實的數(shù)據(jù)治理工作。這個環(huán)節(jié)做得好不好直接決定了“算增長”的算力天花板。我見過太多團隊模型調得溜提示詞寫得花結果指標口徑一塌糊涂用戶問“活躍用戶”居然能出來三個不同的數(shù)。這種產品做得越智能死得越快。3.1 分級指標體系從原子指標到分析主題我們花了差不多一個月的時間梳理了全域業(yè)務的指標體系最終歸納成三層結構。底層是原子指標指直接從業(yè)務表里統(tǒng)計出來的基礎計數(shù)比如注冊用戶數(shù)、下單金額、點擊次數(shù)中層是派生指標通過四則運算或比率公式計算而來比如轉化率、客單價、人均時長頂層是分析主題把一組相關指標按業(yè)務場景打包比如“拉新分析主題”包含新增用戶數(shù)、注冊轉化率、新客首單率、渠道分布等。這個分層的價值在于語義解析和算子編排可以在對應層級上靈活工作。用戶問“拉新效果怎么樣”系統(tǒng)知道要去分析主題里找用戶問“注冊轉化率是多少”系統(tǒng)直接命中派生指標用戶問“昨天全國新增用戶數(shù)”系統(tǒng)落到原子指標上。層級清晰了意圖路由就不會亂。為了避免口徑歧義每個指標在語義層里都掛了唯一的定義文檔包括計算邏輯、更新頻率、數(shù)據(jù)來源表甚至負責人姓名。3.2 數(shù)據(jù)口徑統(tǒng)一的三板斧口徑統(tǒng)一這事沒有三板斧根本壓不住場子。第一板斧建立指標發(fā)布審批流程。所有指標必須先在語義層注冊經(jīng)過數(shù)據(jù)負責人審核才能被對話系統(tǒng)引用杜絕繞過流程直接拼數(shù)的情況。第二板斧指標體系與底層數(shù)倉模型強綁定指標定義里的每一層計算都必須對應到數(shù)倉里真實的物理表或邏輯視圖不允許出現(xiàn)“只存在于指標字典里但無處可查的數(shù)據(jù)”。第三板斧口徑變更必須全鏈路通知凡是引用到變更指標的洞察結論、看板卡片、訂閱報告都要標記提示“口徑已變更歷史結論可能偏差”。很多團隊會在這一環(huán)節(jié)覺得“太重了”覺得搞個智能問數(shù)工具而已干嘛要像做數(shù)據(jù)中臺一樣。但我認為智能問數(shù)的“智能”恰恰建立在高度結構化的數(shù)據(jù)管理之上。如果給大模型投喂的數(shù)據(jù)是錯亂的、口徑模糊的再強的推理能力也只會一本正經(jīng)地胡說八道。扎實的指標治理才是“算增長”能夠落地的先決條件。3.3 時效與權限容易被忽略的兩個暗坑數(shù)據(jù)時效性這事主流儀表盤工具一般不太敏感但對話式問數(shù)場景天然會引起用戶對“最新”的期待。我們設計了一套數(shù)據(jù)新鮮度標注機制每次返回結果時都帶上數(shù)據(jù)截止時間同時對不同質量等級的數(shù)據(jù)給予不同的信任標識。比如事件表一般T1就能產出但某些業(yè)務線報表要T2甚至更晚系統(tǒng)會在語義層標記清楚當用戶訪問尚未產出的數(shù)據(jù)時明確提示“當前數(shù)據(jù)截至昨日今日數(shù)據(jù)預計X點產出”避免用戶基于過時數(shù)據(jù)做判斷。權限這塊也是暗坑。智能問數(shù)工具如果權限控制不好就是一個天然的越權查詢通道。用戶只要會問就能把不該看的數(shù)據(jù)拉出來。我們的方案是在語義層和算子執(zhí)行層之間加了一層統(tǒng)一鑒權網(wǎng)關用戶在對話中提到的任何指標和維度都會先通過權限校驗才能進入計算流程。這里特別提醒一句權限規(guī)則必須跟組織架構聯(lián)動不能做成靜態(tài)配置否則人員一變動就是一場災難。4. 打磨分析深度讓“算增長”不流于表面功能框架搭起來之后最花時間的其實是分析深度的打磨。這個過程不像搭架構那樣有清晰的里程碑更像是“磨刀”一遍一遍讓結論更鋒利、更有業(yè)務穿透力。4.1 案例一場“新增用戶下降”的歸因實戰(zhàn)拿我們內部測試階段的一個真實場景來說。某天業(yè)務方用系統(tǒng)提問“本周新增用戶怎么比上周少了”系統(tǒng)返回結果“本周新增用戶日均23,500人環(huán)比上周下降12.4%。從渠道維度拆解渠道A貢獻了下降幅度的72%其主要新增量級下降18.5%從設備維度拆解iOS端降幅顯著高于安卓端從分日趨勢看本周一和周二的下降最為集中?!边@個結論的生成過程并不神秘。系統(tǒng)先識別指標“新增用戶”選定對比周期本周 vs 上周然后自動進行維度拆解。第一層拆渠道、第二層拆設備、第三層拆時間每層拆解都會計算貢獻度最后按影響程度排序取Top因子。如果到這里就結束其實已經(jīng)比絕大多數(shù)BI工具“扔一個環(huán)比數(shù)字給用戶”要強很多但距離“算增長”還差一步。接著業(yè)務方在對話里追問“如果渠道A下周恢復上周水平呢”系統(tǒng)調用了情景預測算子基于渠道A近八周的新增均值和本周實際值估算出一個恢復情景下的全站新增用戶預測并提示置信區(qū)間和前提假設。這時候業(yè)務方才真正得到?jīng)Q策支持——他可以拿著這個推演結果去問渠道負責人什么條件下能把渠道A拉回原來的水準投入產出比劃不劃算這叫把數(shù)字變成決策鏈條上的一環(huán)。4.2 對話記憶與上下文邏輯做對話式分析上下文管理是個技術活。用戶不會像寫需求文檔一樣每次都把一個指標的前因后果說清楚。他可能先問“最近注冊轉化率怎么樣”然后緊接著說“對比一下上周。”如果系統(tǒng)沒有上下文記憶“對比一下”這三個字就無從解析。我們的解決方案是維護一個會話級的分析狀態(tài)棧里面存著最近N輪對話中已經(jīng)識別出的指標、維度、時間范圍和分析意圖。新來的問題會先跟狀態(tài)棧里的信息做融合再交給意圖解析模塊。這里有一個很微妙的取舍上下文不能無限保留否則用戶一旦切換話題老上下文反而會成為干擾項。我們通過意圖漂移檢測來做判斷——如果新問題的核心指標或者動詞屬性跟前面的對話差異過大就自動清空狀態(tài)棧開啟新話題。這就像聊天時對方突然說個不相干的段子你就該知道前面的話題翻篇了。4.3 關于大模型幻覺的防御姿勢最后必須聊聊大模型幻覺問題。對話過程中用戶偶爾會問出語義層里不存在的指標比如“私域流量的用戶資產是多少”但我們的數(shù)倉里根本沒有“用戶資產”這個字段。早期版本里模型偶爾會一本正經(jīng)地用一個近似指標的結果來包裝回答這在數(shù)據(jù)產品里是不可接受的——業(yè)務方要是拿著錯誤口徑做了決策那是會出大事的。我們的防御策略分三步。第一步語義解析階段增加指標存在性校驗模型生成的指標必須能在指標語義層里找到匹配項否則直接拒絕解析第二步所有結論文本必須附帶數(shù)據(jù)血緣標記也就是每個數(shù)字都能追溯到具體的數(shù)據(jù)表和查詢代碼第三步建立用戶反饋通道每條回答后面有“結論是否合理”的確認按鈕用戶的反饋會沉淀成負樣本用來持續(xù)修正提示詞和解析邏輯。這塊沒有銀彈就是建立機制人機協(xié)同把幻覺率壓到可接受的范圍。5. 落地過程中的三個深坑與排查實錄寫到這里感覺必須把項目落地過程中真實踩過的坑和排查過程好好復盤一遍。這些經(jīng)驗比功能設計更值得記錄下來因為它們是花了幾周甚至一兩個月時間才摸出來的教訓。5.1 指標口徑打架語義層與現(xiàn)網(wǎng)SQL的“左右互搏”第一個坑發(fā)生在上線初期。我們信心滿滿地接入了語義層結果業(yè)務方反饋系統(tǒng)算出來的“轉化率”跟舊報表系統(tǒng)里的數(shù)對不上。排查過程很痛苦因為兩邊聽起來都是“同一個指標”但深入追查后發(fā)現(xiàn)問題出在定義細節(jié)上。舊報表的轉化率分子是“支付成功用戶數(shù)”分母是“提交訂單用戶數(shù)”而我們在語義層建模時分子寫成了“所有完成訂單流程含退款的用戶數(shù)”分母則是“點擊購買按鈕的用戶數(shù)”??趶讲盍耸f八千里。這個坑的根源在于我們做指標治理時沒有跟舊有報表體系的負責人充分對齊關起門來按“理想定義”建模。解決方式也很實在把現(xiàn)網(wǎng)所有舊報表里的指標口徑全部逆向梳理出來逐條跟語義層指標做映射和比對凡是存在偏差的必須在指標字典里加上“對舊口徑差異說明”。這件事整整花了兩周但做完之后系統(tǒng)輸出的數(shù)據(jù)第一次跟業(yè)務方的“心理預期”對上了信任感才開始建立。5.2 數(shù)據(jù)延遲導致“今天的數(shù)怎么不對”第二個坑是數(shù)據(jù)時效引起的信任危機。某個業(yè)務線的大屏上用T2的數(shù)據(jù)但我們系統(tǒng)接到用戶問“今日轉化率”時直接查了實時數(shù)倉里的中間表因為中間表的數(shù)據(jù)還沒跑完任務結果返回了一個嚴重偏低的數(shù)字。用戶一看第一反應就是這個工具不行數(shù)據(jù)不準。排查后發(fā)現(xiàn)底層數(shù)倉的表有不同時效級別有的實時更新有的T1批處理有的T2才穩(wěn)定。我們的語義層原來用“表-字段”命名空間做映射根本不知道表背后的時效屬性。緊急補丁方案是在語義層配置每個指標關聯(lián)的數(shù)據(jù)表時效等級并在執(zhí)行計劃里加入時效約束條件。如果用戶要求的是“今日數(shù)據(jù)”但底層表尚未產出系統(tǒng)明確提示“當前數(shù)據(jù)截止至昨日XX時”絕不強行返回殘缺結果。這個改動上線后類似的信任危機再沒出現(xiàn)過。5.3 用戶預期管理從“全能助手”到“場景專家”的定位糾偏第三個坑屬于產品和用戶預期層面。早期我們在宣傳的時候喊了一嗓子“有什么業(yè)務問題都可以問我”結果用戶真的什么都問包括“下季度應該重點投放哪些渠道”“新功能要不要上線”。系統(tǒng)當然給不出靠譜答案于是用戶覺得這東西很雞肋。后來我們反思了一下問題出在預告了產品不具備的能力。智能問數(shù)工具再聰明本質還是一個數(shù)據(jù)分析助手它的能力邊界是“基于已有的數(shù)據(jù)規(guī)律給出量化分析”而不是“基于市場情報做商業(yè)判斷”。我們把產品定位收斂到“增長場景的數(shù)據(jù)分析專家”主動在對話入口和提示語里引導用戶關注五大類高頻問題趨勢分析、異常歸因、渠道對比、漏斗診斷、目標預測。在某場專項分析場景里回答有深度的結論強過在開放域里回答一萬個泛泛而談的答案。這個定位糾偏之后用戶滿意度反而上來了。6. 實踐過程中的幾點體會項目走到今天回過頭來看最核心的收獲其實不是技術方案本身而是一整個思考方式的轉變。以前做數(shù)據(jù)產品腦子里想的是“我怎么把數(shù)據(jù)出得更快更準”現(xiàn)在做“數(shù)問增長”逼著自己把視角切到“業(yè)務方拿到這個分析結果下一步能做什么動作”。這個轉變一刻不停地在影響每一個設計決策。我個人在實際操作中有一個特別深的體會對數(shù)據(jù)產品的用戶體驗來說一行有業(yè)務判斷的結論文本強過十行精雕細琢的圖表配置。圖表只是視覺化呈現(xiàn)事實而結論文本是在告訴用戶“事實意味著什么”。這要求設計者本身就具備很強的業(yè)務分析能力不能只懂數(shù)據(jù)技術。如果你所在的團隊正打算做類似的智能問數(shù)產品我真心建議至少配一個懂業(yè)務的數(shù)據(jù)分析師在產品團隊里面他的價值在前中期比算法工程師還要大。另外一個值得分享的小經(jīng)驗是無論模型能力多強大都要在系統(tǒng)里留下一扇“人肉核實”的窗口。我們平臺里每一個自動生成的洞察結論都允許用戶一鍵跳轉到明細數(shù)據(jù)查詢甚至能手選維度重新計算。這看起來好像是給智能化打了折但實際上恰恰是這種“可控感”讓業(yè)務方更愿意信任分析結果。信任建立起來之后自動化的結論被直接采納的比例反而高了。如果你也在考慮把內部的問數(shù)工具往“增長”方向升級我最后的建議是不要一上來就復制別人的完整方案而是先從最痛的一個業(yè)務場景切入把一個分析主題做透打磨出幾個讓人眼前一亮的分析結論。有了這種標桿案例再去說服業(yè)務方擴大使用范圍會順暢得多。智能問數(shù)這個賽道不缺技術方案缺的是真正理解“算增長”這個目標的產品人。