構(gòu)化簡報:AI日報自動化生成全流程拆解)
1. 一份AI日報的誕生從信息洪流到結(jié)構(gòu)化簡報每天早上七點我的信息采集腳本會自動跑完一輪把過去24小時里散落在各個角落的AI動態(tài)抓回來去重、分類、打分最后生成一份可以直接發(fā)出去的日報。這套流程我打磨了將近一年中間推翻重來過三次現(xiàn)在算是跑得比較順了。今天這篇不聊別的就把這套AI最新資訊日報的生產(chǎn)邏輯完整拆開從信息源怎么選、去重怎么做、評分怎么定到最終排版和人工復核的邊界在哪里全部攤開講。你可能會問現(xiàn)在各種AI新聞聚合工具一抓一大把為什么還要自己搭一套原因很簡單通用工具給你的是所有信息而日報需要的是今天值得看的信息。這兩者之間的差距就是一套篩選和排序邏輯。我搭這套東西的初衷是給自己團隊做每日晨會前的信息同步材料后來發(fā)現(xiàn)身邊不少朋友也有類似需求就慢慢把流程標準化了。這篇文章適合三類人看一是想給自己或團隊做信息簡報的從業(yè)者二是對信息聚合流程感興趣的技術(shù)同學三是單純想知道一份靠譜的AI日報背后長什么樣的讀者。不管你是哪一類看完應該都能拿走點能直接用的東西。先說清楚一個前提日報的核心價值不在于全而在于準和快。全的信息網(wǎng)上到處都是但把噪音過濾掉、把真正重要的東西挑出來、并且用最短的時間讓人看懂這才是日報存在的意義。所以整套流程的設計目標就三個詞覆蓋夠廣、噪音夠低、閱讀夠快。后面所有的技術(shù)選型和參數(shù)調(diào)整都是圍繞這三個目標來的。2. 信息源的分層策略為什么我不追求全網(wǎng)抓取2.1 三層信息源結(jié)構(gòu)的設計邏輯剛開始做的時候我犯過一個典型錯誤覺得信息源越多越好恨不得把能抓的站點全接進來。結(jié)果就是每天抓回來幾百條光去重和篩選就耗掉大量時間而且信噪比極低。后來我改成三層結(jié)構(gòu)情況才好轉(zhuǎn)。第一層是核心源大概8到10個這些是必須每天掃的包括主流AI研究機構(gòu)的官方博客、幾個頭部模型廠商的更新日志、以及兩三個高質(zhì)量的行業(yè)分析通訊。這一層的特點是更新頻率穩(wěn)定、內(nèi)容質(zhì)量高、幾乎不會出現(xiàn)純噪音。第二層是擴展源大概20到30個覆蓋技術(shù)社區(qū)的熱門討論、開源項目的release動態(tài)、以及一些垂直領域的專業(yè)媒體。這一層需要過濾但經(jīng)常能挖到核心源沒覆蓋的細節(jié)。第三層是信號源主要是社交平臺上的討論熱度和關鍵詞趨勢這一層不直接產(chǎn)出內(nèi)容而是用來判斷今天什么話題在升溫輔助排序。為什么要這么分因為不同層級的源處理策略完全不同。核心源可以全量抓取、直接進入候選池擴展源需要先過一遍關鍵詞過濾信號源則只提取趨勢指標不抓正文。如果混在一起處理要么漏掉重要信息要么被噪音淹沒。2.2 每個源的具體接入方式和踩坑記錄接入方式上我優(yōu)先選RSS其次是官方API最后才是網(wǎng)頁解析。RSS的好處是結(jié)構(gòu)穩(wěn)定、解析成本低缺點是很多新站點不提供了。官方API最可靠但有頻率限制需要做請求隊列。網(wǎng)頁解析是最后的選擇因為頁面結(jié)構(gòu)一變就得改代碼維護成本高。這里踩過一個坑有幾個源我一開始用網(wǎng)頁解析跑了兩個月都好好的結(jié)果對方改版整個抓取直接掛掉而且因為沒做失敗告警我過了三天才發(fā)現(xiàn)日報里少了這一塊內(nèi)容。后來我加了兩條規(guī)則一是所有解析任務必須有失敗重試和告警二是核心源盡量走RSS或API實在沒有再考慮解析。另外抓取頻率也要控制我一般設成每30分鐘一輪太頻繁容易被限流太稀疏又會影響時效性。還有一個細節(jié)是時區(qū)處理。AI領域的動態(tài)是全球性的不同源的發(fā)布時間戳時區(qū)不一樣如果不統(tǒng)一處理排序就會亂。我的做法是全部轉(zhuǎn)成UTC存儲展示的時候再轉(zhuǎn)成本地時區(qū)。這個看起來是小事但實際跑起來時區(qū)問題導致的排序錯亂非常常見。3. 去重這件事比想象中難得多3.1 從URL去重到語義去重的三級方案去重是日報流程里最容易被低估的環(huán)節(jié)。最開始我只做了URL去重覺得同一個鏈接不重復出現(xiàn)就行了。但實際跑起來發(fā)現(xiàn)同一個事件往往有多個來源報道URL完全不同內(nèi)容卻高度重合。比如某個模型發(fā)布官方博客一條、科技媒體三條、社區(qū)討論五條如果不去重日報里就會出現(xiàn)九條講同一件事的內(nèi)容。我現(xiàn)在的去重分三級。第一級是URL精確去重這個最簡單維護一個已抓取URL的集合就行。第二級是標題相似度去重用編輯距離或者簡單的分詞后Jaccard相似度閾值設在0.75左右超過就認為是同一事件。第三級是語義去重這個最復雜需要對正文做向量化然后計算余弦相似度。我試過幾種方案最后選了一個輕量級的句子向量模型本地跑不依賴外部服務延遲可以接受。三級去重不是每級都全量跑而是逐級過濾。URL去重后剩下的才進標題去重標題去重后剩下的才進語義去重。這樣能把計算量壓下來。實測下來一級去重能去掉大約15%的重復二級再去掉20%左右三級再去掉10%左右。最終進入候選池的大概是原始抓取量的55%到60%。3.2 語義去重的閾值調(diào)優(yōu)和誤殺處理語義去重的閾值調(diào)優(yōu)是個細活。閾值太高重復內(nèi)容去不掉閾值太低會把相關但不同的事件誤殺。比如某模型發(fā)布新版本和某模型新版本性能評測這兩條語義相似度很高但它們是不同的內(nèi)容一個是發(fā)布消息一個是評測分析都不應該被去掉。我的做法是引入一個事件類型標簽。在去重之前先對每條內(nèi)容做一個粗分類比如發(fā)布評測融資論文工具更新等。只有同類型的內(nèi)容才進入語義去重比較跨類型的即使相似度高也保留。這樣能有效降低誤殺率。另外我還會保留被去重內(nèi)容的來源列表在最終展示時標注此事件有N個來源報道這樣既避免了重復又保留了信息完整度。還有一個經(jīng)驗是去重結(jié)果要定期人工抽查。我一般每周抽一天把去重前后的內(nèi)容對比看一下確認沒有誤殺重要內(nèi)容。這個習慣幫我發(fā)現(xiàn)過好幾次閾值設置的問題。4. 評分與排序讓真正重要的內(nèi)容浮上來4.1 多維度評分模型的構(gòu)建去重之后候選池里可能還有幾十條內(nèi)容這時候就需要排序把最重要的放在前面。我用的是一套多維度評分模型主要考慮四個維度來源權(quán)重、內(nèi)容熱度、時效性、以及話題匹配度。來源權(quán)重是基礎分核心源給高分擴展源給中等分信號源不直接參與內(nèi)容評分。內(nèi)容熱度包括社交平臺的討論量、轉(zhuǎn)發(fā)量等指標這個需要從信號源那邊拿數(shù)據(jù)。時效性是隨時間衰減的越新的內(nèi)容分越高我用的是一個半衰期24小時的衰減函數(shù)。話題匹配度則是看這條內(nèi)容是否命中了當前的重點關注關鍵詞比如最近大家在關注什么方向命中就加分。四個維度的權(quán)重不是固定的我會根據(jù)實際情況調(diào)整。比如重大發(fā)布密集的時候會提高來源權(quán)重的占比行業(yè)討論活躍的時候會提高熱度權(quán)重。這個調(diào)整目前還是手動做的我試過做成自動的但效果不穩(wěn)定后來還是保留了人工干預的入口。4.2 人工干預的邊界在哪里說到人工干預這里有個原則機器負責排序人負責定調(diào)。什么意思就是評分模型給出一個初始排序但最終日報的頭條放什么、哪些內(nèi)容需要加編者按、哪些內(nèi)容要合并成專題這些由人來決定。機器不擅長判斷這條內(nèi)容對讀者意味著什么這個判斷必須由人來做。我一般會在早上花15到20分鐘做這件事。先看機器排出來的前20條快速掃一遍然后做三件事一是調(diào)整頭條把當天最重要的放上去二是合并同類項把講同一件事的多條內(nèi)容合成一條三是補充背景有些內(nèi)容需要一句話說明為什么這條重要這個機器寫不出來。這個流程聽起來簡單但實際做起來最耗時的往往是判斷哪條最重要。我的經(jīng)驗是不要試圖追求絕對客觀日報本身就是有立場的關鍵是立場要一致、要透明。比如我這份日報的立場是關注技術(shù)進展和產(chǎn)品落地那么純資本層面的新聞就會往后排這個標準一旦定了就不要每天變。5. 日報的呈現(xiàn)格式讓人三分鐘能讀完5.1 結(jié)構(gòu)化模板的設計日報的呈現(xiàn)格式我改過很多版現(xiàn)在的版本大概是這樣的開頭是一句話摘要概括今天最重要的動態(tài)然后是分板塊的內(nèi)容一般分模型與產(chǎn)品技術(shù)與研究行業(yè)與生態(tài)三個板塊每個板塊下面按重要性排3到5條每條包含標題、一句話說明、以及來源鏈接最后是一個值得關注的簡短列表放一些還沒成氣候但值得留意的信號。為什么要分板塊因為讀者的關注點不一樣。做技術(shù)的可能更關心模型和研究做產(chǎn)品的可能更關心產(chǎn)品和生態(tài)。分板塊能讓不同的人快速定位到自己關心的部分。每個板塊內(nèi)部的排序邏輯是一樣的都是按評分從高到低。每條內(nèi)容的一句話說明是最考驗功力的地方。它不能只是標題的重復而要補充標題里沒有的信息比如這個更新解決了什么問題這個數(shù)據(jù)意味著什么。我一般要求自己寫的一句話說明能讓讀者不點開鏈接就知道這條內(nèi)容的核心價值。5.2 排版細節(jié)和閱讀體驗優(yōu)化排版上有幾個細節(jié)是我踩過坑之后定下來的。第一每條內(nèi)容之間要有明顯的分隔我用的是空行加短橫線這樣掃讀的時候不會串行。第二來源鏈接放在每條內(nèi)容的末尾用統(tǒng)一的格式方便復制。第三重要內(nèi)容用加粗標注關鍵詞但不要整句加粗那樣反而沒有重點。還有一個是長度控制。整份日報我控制在1500到2000字之間太短信息量不夠太長讀者讀不完。如果某天內(nèi)容特別多我會把次要內(nèi)容放到值得關注列表里只給標題和鏈接不展開說明。這樣既保證了信息完整度又控制了閱讀時間。實測下來一份排版良好的日報讀者三到五分鐘就能讀完并且能記住三到五個關鍵信息。這個效率是遠高于自己刷各種信息流的。6. 自動化與人工的配合哪些環(huán)節(jié)必須留人6.1 可以完全自動化的環(huán)節(jié)抓取、去重、初步評分、排版生成這些環(huán)節(jié)我已經(jīng)完全自動化了。每天早上七點腳本跑完八點前我打開電腦就能看到一份初稿。這些環(huán)節(jié)的共同特點是規(guī)則明確、判斷標準一致、不需要理解內(nèi)容含義。比如去重相似度超過閾值就是重復這個判斷不需要人來做。自動化帶來的好處不只是省時間更重要的是一致性。人工做這些事情今天狀態(tài)好可能做得細明天累了可能就馬虎了。機器不會只要規(guī)則不變輸出就是穩(wěn)定的。這也是為什么我堅持把能自動化的都自動化。6.2 必須人工介入的環(huán)節(jié)但有幾個環(huán)節(jié)我堅持留給人來做。一是頭條判斷哪條內(nèi)容放頭條這個需要理解當天整體信息環(huán)境機器做不了。二是一句話說明的撰寫這個需要理解內(nèi)容的價值機器寫的往往很生硬。三是異常處理比如某天某個核心源掛了或者抓回來的內(nèi)容明顯異常這些需要人來判斷怎么處理。還有一個容易被忽略的環(huán)節(jié)是反饋收集。我會定期問幾個固定讀者這份日報對他們有沒有用、哪里可以改進。這個反饋是調(diào)整評分權(quán)重和板塊設置的重要依據(jù)。機器不知道讀者想要什么只有人知道。7. 跑了一年之后我總結(jié)出的幾條經(jīng)驗7.1 關于信息源的維護信息源不是接進來就完事了需要定期維護。我每個月會做一次源的健康檢查看哪些源更新頻率下降了、哪些源內(nèi)容質(zhì)量變差了、有沒有新的優(yōu)質(zhì)源可以加進來。這個維護工作看起來瑣碎但不做的話日報質(zhì)量會慢慢下降。還有一個經(jīng)驗是不要迷信大源。有些小型的垂直博客更新頻率不高但每篇都是干貨這種源的價值遠高于一些更新頻繁但內(nèi)容注水的媒體。判斷一個源值不值得留我的標準是過去一個月里它貢獻了多少條最終進入日報的內(nèi)容。如果一條都沒有那就要考慮替換了。7.2 關于時效性和準確性的平衡AI領域的信息有個特點快但經(jīng)常反轉(zhuǎn)。早上看到的消息下午可能就被辟謠了。所以日報里我有個原則不確定的信息標注不確定。如果一條內(nèi)容只有單一來源而且來源權(quán)威性一般我會在說明里加一句此消息尚未得到官方確認。這樣既保證了時效性又避免了誤導讀者。另外對于重大事件我一般會等半天再發(fā)看看有沒有后續(xù)更新。這個等半天的策略幫我避免過好幾次烏龍。當然如果是確定性的官方發(fā)布那就直接發(fā)不用等。7.3 關于讀者反饋的處理讀者反饋里最有價值的是這條內(nèi)容對我沒用和這條內(nèi)容我早就知道了。前者說明篩選標準有問題后者說明時效性或覆蓋度有問題。這兩類反饋我都會認真處理調(diào)整對應的環(huán)節(jié)。但也要注意不要被個別反饋帶偏。日報是給一群人看的不可能讓每個人都滿意。我的做法是看趨勢如果多個人反映類似問題那就調(diào)整如果只是個別意見那就記錄一下觀察觀察再說。8. 如果你也想搭一套從哪里開始8.1 最小可行版本的搭建路徑如果你看完想自己搭一套我建議從最小可行版本開始。不要一上來就搞幾十個源、復雜的評分模型那樣很容易半途而廢。第一步選3到5個你最??吹男畔⒃从米詈唵蔚哪_本抓回來存到一個地方。第二步加一個最簡單的去重URL去重就行。第三步按時間排序生成一個簡單的列表。這三步做完你就有了一份最基礎的日報。然后根據(jù)實際使用中的痛點逐步加功能。覺得噪音多就加關鍵詞過濾覺得排序不合理就加評分模型覺得排版不好看就調(diào)模板。每一步都解決一個具體問題這樣搭出來的系統(tǒng)才是真正適合你的。8.2 幾個容易踩的坑和規(guī)避方法第一個坑是過度追求自動化。有些環(huán)節(jié)機器做不好就是做不好硬要自動化結(jié)果就是質(zhì)量下降。該人工的地方就人工效率和質(zhì)量要平衡。第二個坑是忽視失敗處理。抓取失敗、解析失敗、去重失敗這些都要有告警和重試機制。我前面說過我因為沒做告警漏了三天內(nèi)容才發(fā)現(xiàn)。這個教訓很深刻。第三個坑是不做版本管理。評分權(quán)重、去重閾值、模板格式這些參數(shù)改了之后要記錄不然過一段時間你自己都忘了為什么設成這個值。我用一個簡單的配置文件加注釋來管理每次調(diào)整都寫清楚原因和日期。第四個坑是只做不評。日報發(fā)出去就完了不收集反饋、不做效果評估。這樣你永遠不知道自己做得好不好。我建議至少每個月做一次簡單的回顧看看哪些內(nèi)容被讀得多、哪些被忽略據(jù)此調(diào)整。這套流程跑到現(xiàn)在我最大的體會是日報的價值不在于技術(shù)多復雜而在于對讀者需求的理解有多深。技術(shù)只是工具真正決定日報質(zhì)量的是你知不知道自己或你的讀者真正需要什么信息。這個判斷機器幫不了你只能靠自己在實踐中慢慢摸索。