風控模型演算法
Ⅰ 筆記:內容業務風控的業務模型
一、背景
● 內容平台,無論是自媒體、社交博客、視頻直播類,在流量充足後面臨更多的問題監管審查,頭條、微博、知乎等UGC平台均被約談乃至整頓過,嚴重的諸如內涵段子等責備關停。
● 繁榮的UGC下面深藏危機亂象叢生,受利益驅使,黑產自然不會放過內容平台這塊肥肉,平台成了間接作惡工具,自然給企業帶來源源不斷的麻煩、損失。
二、來自內容的風險主要有兩類
2.1監管風險
2.2用戶體驗損害
● UGC平台充斥大量廣告導流、欺詐廣告,導致用戶體驗變差、用戶流失、平台受損。
三、內容風控的四個發展階段
● 對於內容風控的進化階段
A、無人監管,面臨極大的監管風險
B、全部人工審核,人工成本高,難以應對數據大幅增長、響應速度慢
C、機器審核+人工審核,人工成本稍高,數據處理量大,響應較快、機審准確率低。
D、AI審核,響應快、准確率高
● 由於AI還在發展階段,大規模應用不成熟,所以現階段大多公司推行機器審核+人工審核的形式。本文也威少機審+人審的模型進行產品說明。
四、風控的原則
輕管控:在出現風險,需要阻斷用戶操作時,阻斷動作宜輕不宜重。能僅自己可見就不要阻止用戶發布內容。同時被阻斷後文案,下一步出口都需要照顧用戶感受。看似簡單,其實背後涉及到對用戶風控行為以及對用戶風控阻斷動作的分層管理。
重檢測:通過盡可能多的獲取用戶信息(包括靜態及動態數據),由規則引擎進行實時或離線計算,來動態分析每個用戶及採取行為的風險程度。這里需要盡量全的數據來源,以及非常強大的規則引擎,才可以實現良好的檢測效果。
快響應:是指在檢測出用戶存在的風險後,如何快速的進行阻擋。這里的重點是快,則意味著對業務的理解要細,提前在關鍵動作進行布局,才可以做到盡可能減少損失。
● 業務風控的業務模型主要分為六層,分別為數據輸入層,數據計算層,數據輸出層,運營管控層,業務接入層以及用戶觸達層。
● 上面三層,是偏向於數據,研發的;下面三層,是偏向於業務,運營,產品的。做風控其實就是做數據,羨信宴因此數據的接入、技術、處理是其中最核心的模塊;但現階段,由於演算法模型的限制,還需要有人為的因素進行規則模型的校正,以及特殊樣本的審理,因此會有運營層的存在;最上面的觸達層,是拿結果的一層,產品的部分工作也在於對此進行良好的設計。
一、數據輸入層
● 通過主動採集、業務方送審的原始數據
1.1內容主體:
● 內容審核業務起始層,梳理審核系統需要的全部數據局,以及可以通過業務端採集的數據,數據越詳細對後期數據計算越有利。
注意點:1、不同送審內容之間存在群組關聯,如帖子下可能包含:名稱文本、內容文本、圖片、視頻、投票文本。2、不同內容間存在映射關聯,如商品與評論的關系。3、不同內容間存在組合關聯,內容單獨出現無違規、組合起來違規的情況。
1.2內容環境:
● 審核方在審核平台為每一個業務(區分文字、圖片、視頻)生成唯一識別碼,用於區分各送審業務,業務方在業務唯一識別碼的基礎上隨機生成唯一的送審碼,用於區分送審內容。除送審內容外,審核方需要採集包括且不限於送審類型(用於區分圖文)、用戶類型、用戶ID、城坦信市、IP、設備號、時間戳、業務ID、內容ID、客戶端區分等。歷史批量數據送審應與日增數據分開低優先順序送審,確保日常數據正常處理。對送審的qps進行限制,避免造成伺服器壓力。
● 除送審數據外,其他獲取包括用戶信息、關聯內容信息、發布者違規歷史、前端操作事件(文字粘貼、截圖上傳),結合送審數據進行綜合判別。
1.3離線數據
● 用戶風險評級:根據用戶歷史行為,對獨立用戶進行風險系數評級。0-100之間的分數,分數越高表示用戶在相應業務場景下越為可信。分數將用戶劃分為多個等級,在使用中可以根據業務場景選擇不同等級的用戶或不同分數區間的用戶進行針對性策略放過或打擊,實現策略的精細化運營。通過有效搜索瀏覽路徑、可信內容發布歷史、內容違規歷史等維度進行違規(考慮細分維度,比如涉黃分值)計算,充分考慮時間衰減與權重比例、設置扣分門檻與限制。並需要防止對新用戶、沉睡用戶的誤傷。
● 賬號、設備、IP、地域近期行為等風險評級:根據賬號、設備、近期行為,對時間段內賬號行為進行風險評兄銀級,分屬越高代表分享程度越低。由於賬號被盜、黑產賬號(刷評論)、推廣賬號、養號等違規賬號類型,對內容本身較大具有威脅。風險評級基於多渠道、多場景數據,以及時間段內關鍵行為,並關聯分析手機、設備、IP、緊急聯系人等實體數據,鎖定欺詐風險並進行對賬號、設備、IP的風險識別。採用聚類分析、GBM、設備相似性識別,等構建設備識別模型,有效識別虛擬機和設備農場等高風險設備。基於機器操作、異常操作識別等技術,識別機器注冊、機器養號、撞庫攻擊、賬號盜用等風險行為。基於手機、設備、IP等實體數據關聯分析,鎖定欺詐風險並進行風險識別。
二、數據計算層
通過機器或者人工進行過濾的環節
2.1機器審核
● 規則引擎:提供規則集、決策表、交叉決策表(決策矩陣)、決策樹、評分卡、復雜評分卡、規則流等八種類型的業務規則設計工具
● 打擊規則:分類型對打擊策略進行分類與分級,類目明確清晰。前期應該考慮到業務使用范圍場景復雜度與誤傷場景,細分粒度。比如在按摩休娛下,涉及的性感的圖片可能有性暗示、性交易的企圖,但是在泳裝類目下,性感存在即是合理的。有比如,在管弦樂器業務下,圖片容易受到槍支策略的誤傷,需要在此業務下對槍支策略進行個性化調整。
● 離線任務:由於打擊存在頻繁更新,以及其他不可力抗的修改。未避免業務多次送審,離線任務主要記錄存儲業務已經送審數據,進行二次審核,再次返回結果。業務方需要支持接收多次結果,並以最新一次為准。
● 機器學習:深度學習圖片識別技術 + 數億級實時更新的圖像樣本庫極速智能解決平台四大問題
文字類型,過濾垃圾廣告、導流信息、惡意營銷、違法欺詐廣告等內容與變體內容。識別淫穢、辱罵等色情低俗內容,基於深度模型同步客戶審核標准,進行程度分級。基於海量文本特徵庫,識別涉政、恐、暴、毒、違禁品等存在監管風險的違規內容。檢測內容語義環境,攔截無意義垃圾內容。
圖片類型,採用OCR識別等技術,對圖像中文本提取識別。基於NLP自然語言處理技術與深度模型,識別色情內容並進行程度分級。基於深度學習技術與海量樣本機器學習,對色情、違法違規內容進行鑒別與評級。基於人臉識別技術與機器學習,對漫畫、惡搞、負面涉政人物的違規信息識別。文本語義環境檢測,高效攔截水貼刷屏無意義內容惡意灌水等行為。
其他視頻與語音均於ai技術,轉換成
2.2人工審核
● 人工審核平台用戶運營部門對內容進行日常的審核,並可實時處理違法違規內容。平台應滿足審核區、回收站、歷史審核、黑名單管理、信息清理、業務數據查詢等常用能力。可對內容按照內容形式(如圖片、評價)、按照機審處理規則(如色情)等維度分類,幫助運營部門快速審核。可提供相應的用戶、商戶等輔助信息數據,協助運營部門對內容進行快速決斷。
三、數據輸出
● 通過結果返回業務方本次送審內容本身最終審核(通過/駁回)結果與原因,以及因其他原因諸如行為異常等參考信息;隨著業務場景的不斷壯大、業務需求也會越來越細分,隨著策略層面打擊結果隨之越來越細分。諸如,增加新策略、老策略拆分、違規程度、危險分級等。前期做好調研,在介面設計上保留充足的拓展性十分重要。畢竟作為服務方,推業務方遷移成本比較高。
四、運營管控層
● 運營部門對審核對接、審核過程、審核結果的協助操作;對各環節數據監控等
4.1業務運營
● 接入管理:對已經接入的業務進行增刪改查等才做
● 回掃管理:由於審核的標准處於不斷更新的狀態,新的策略上線後對已經審核過的內容不能進行覆蓋。就需要進行自動或者手動的回掃行為
● 處罰處置:未防止違規內容的不斷滋生,相對應的處罰行為可以震懾不良用戶,對危險用戶從賬號層面直接處理。
● 風險大盤:策略在審核過程中依賴業務方的送審信息,除了內容主體外其他輔助信息對風險等級的判定也極為重要、送審頻率的異常波動也作為策略審核的重要依據,為確保送審時間保質保量穩定的送審,對數據層面進行校驗,監測數據完整、穩定程度,對異常送審及時發出警告。
● 名單與標簽管理,對以用戶、設備等維度的黑白名單、標簽進行管理
4.2人審運營
● 包含對人工審核的質量、工單流水、審核員管理、審核結果抽樣等職能
4.3策略管理
● 打標平台:對樣本內容進行打標,用以訓練模型精準度
● 策略管理:用來配置打擊策略的系統
● 特徵管理: 模型管理、即管理特徵與模型的系統
● 詞庫管理:對策略中黑詞、白詞、灰詞進行集中管理
4.4用戶運營
● 反作弊調查:對漏過、誤殺的案例進行回訪,收集用戶需求
● 案件中心:對漏過、誤殺的案例進行歸類,引導策略優化模型再訓練
五、接入層
● 主要面向接入業務方,讓業務方知曉接入進度、攔截與誤殺情況,引導業務優化前端交互
5.1業務管理
● 自助接入:業務方自助提交接入需求信息,形成審批工單狀態流轉
● 服務配置:對已有業務進行需求變更
● 統計報表:針對各自業務進行報表統計,反向推動業務方優化交互形式
● case查詢:由於業務方是對接case第一人,提供case查詢工具,讓業務明確case產生原因與結果
● 個性詞庫:各業務場景不一,除統一詞庫外,還應對各自場景下的特殊違規詞進行處理
● 申訴通道:對漏過誤殺case的申訴通道
六、觸達層,面向普通c/b用戶
6.1風控動作,即內容通過審核最終的結果反饋,需要與業務方共同完成。
● 從審核方以及業務方的角度,為了對違規評價提供最合理的處理方式(刪除、下線、正常顯示、隱藏、置地等),降低對用戶傷害;對評價違規類型分級,並根據其級別進行對應分級處理。包括評價對用戶等級、前端展示以及評價權益等。根據違規程度、用戶主觀惡意程度,對內容發布者進行分級處理。顯示分級:全網可見、僅自己可見、全網不可見。內容產品贈送的積分、星級等進行逐步減少與扣罰。其他嚴重處罰諸如禁言、禁訪、注銷賬號等。並發出提醒(審核結果與處罰、申訴、舉報結果的反饋),明確用戶發布狀態與懲罰因果。
6.2風控補救,即舉報、申訴。
● 由於風控不可能100%准確,對於誤傷、漏過的case,需要提供用戶直接申訴的渠道
6.3教育
● 事前宣傳,對用戶/商戶進行宣傳,告知攔擊基本規則,減少商戶及用戶的嘗試作弊行為,並提供更優的用戶體驗,引導用戶避免發布與規則沖突的內容。 事後引導,對進行攔截打擊的內容,引導用戶修改,確保內容既合規,又不影響用戶體驗
Ⅱ 數據分析之風控
上世紀90年代初,以美國運通(Amarican Express)為首的美國信用卡金融公司開始運用數據建模來提升風控能力,解決精準營銷等問題。Discover,Capital One緊隨其後
1995年,AMEX的風控模型開始試運行,1997年風控系統正式上線,此後幾年,AMEX保持高速增長且把不良貸款降到業內最低
2008年,discover將全球數據分析中心搬到上海。從這個中心流出的風控人才,填充了中國各大互金公司
業務類型:有抵押貸(房貸車貸)、信用貸(比如宜人貸)、消費分期貸(手機家電等)、小額現金貸(500/1000/1500)等
風控涉及業務:1)數據採集:包括徵信數據,運營商數據,爬蟲,網站埋點,歷史借款數據,黑名單,第三方數據等
2)反欺詐引擎:主要包括反欺詐規則與反欺詐模型。
3)規則引擎:即常說的策略。主要通過數據分析手段統計不同欄位和各個區間的壞賬率,然後篩選得到信用較好的人群進行放款
4)風控模型&評分卡:模型演算法之間並無顯著不同,而是根據其發生的不同時間點進蘆則蔽行劃分(貸前/貸中/貸後),即目標產生的方式不一樣。通常信貸領域都是以逾期天數來定義目標變數。A卡可以用客戶歷史逾期天數最大值,B卡可以用多期借款中逾期最大的一次。C卡因為用途不同有不同的建立方法
5)催收:是風控的最終手段。這個環節可以產生很多對模型有幫助的數據,比如催收記錄的文字描述,觸達率,欺詐標簽等等
1)爬蟲可以爬取手機APP的信息。我們可以將手機APP分成4類:工具,社交、娛樂、金融。計算每種APP的個數,這樣就有了4個特徵
2)從運營商數據可以知道客戶打了多少電話,發了多少簡訊,用了多少流量,是否有過欠費等信息
3)徵信報告很多時候都是一個簡單的徵信分數,一般都是得分越高,客戶質量越好
4)從基本信息中獲取用戶畫像,比如從身份證中得到年齡、性別、戶籍3個特徵
黑名單的升級版本就是規則引擎。然而它是靠經驗生成的。比如保險公司可能會拒絕連續退貨5次或者退貨比例達到80%的人購買退貨險。規則通常需要投入大量的精力維護,不斷更新修改,否則會造成大量的誤判。對疑似套現金額、筆數超過一定數目,建議拒絕准入,或做重點關注。XX天內申請借貸數大於某個值,建議拒絕
比如我們可以設定一個准入規則,如職業為公務員、醫生、律師等。
還可以設置直接放款原則,比如芝麻分大於750分
目標變數如何確定:以A卡為例,主要通過roll-rate與vintage。舉個例子,我們可以定義在8個月逾期超過60天的客戶為壞客戶,8個月未逾期的為好客戶。而八個月逾期在0-60天內為不確定客戶,從樣本中排除。
1)前期准備工作:不同的模型針對不同的業務場景,在建模項目開始前需要對業務的邏輯和需求有清晰的理解
2)模型設計:包括模型的選擇(評分卡還是集成模型),單個模型還是做模型細分。是否需要做拒絕推斷,怎麼定義觀察期、表現期、好壞用戶。確定數據來源
3)數據拉取及清洗:根據觀察期和表現期的定義從數據池中取數,並進行數據清洗和穩定性驗證。數據清洗包括異常、缺失、重復。穩定性驗證主要考察變數在時間序列上的穩定性,指標有PSI,IV,平均值/方差等
4)特徵工程:主要是特徵的預處理和篩選。評分卡主要是通過IV進行篩選。另外會基於對業務的理解進行特徵構造,包括特徵交叉(兩個或以上特徵相乘盯培/相除/笛卡爾積),特徵轉換等
5)模型建立和評估:評分卡可以用邏輯回歸,只需要做二分類預測可以選擇xgb.模型建好後需要進行模型評估,計算auc,ks。並對模型做交叉驗證來評估泛化能力
6)模型上線部署:在風控後台配置模型規則,對於一些復雜的模型比如xgb,一般是將模型文件轉換為pmml格式,並封裝。在後台上傳文件與配置參數
7)模型監控:前期主要是監控模型整體與變數的穩定性。衡量標准主要是PSI(population stability index)。其實psi 就是按分數分區間後,各個分數區間實際陪州與期望佔比的差異。如果小於10%,無需更新模型。小於25%,就需要重點關注模型了。如果大於25%就需要更新模型。計算模型psi一般用等頻,可以分10箱
1.A卡B卡C卡含義與區別
A卡(application score card):即申請評分卡,在客戶申請處理期,預測客戶開戶後一定時期內違約拖欠的風險概率,有效的排除了信用不良客戶和非目標客戶的申請。同時對客戶進行風險定價----確定額度與利率。用到的數據主要是用戶以往的信用歷史,多頭借貸,消費記錄等信息。
B卡(behavior score card):行為評分卡,在賬戶管理期,根據賬戶歷史上所表現出的各種行為特徵來預測該賬戶未來的信貸表現。一是防控貸中風險,二是對用戶的額度做一個調整。用到的數據主要是用戶在本平台的登錄、瀏覽、消費行為等數據。還有借還款,逾期等借貸表現數據。
C卡(collection score card):催收評分卡,對逾期賬戶預測催收策略反應的概率,從而採取相應的催收措施
三張卡的區別:
數據要求不同:A卡一般可做貸款0-1年的信用分析。B卡則是在申請人有了一定行為後,有了較大數據進行的分析。C卡則對數據要求更大,需加入催收後客戶反應等屬性數據
特徵不同:A卡用到的大部分是申請者的背景信息,比如客戶填寫的基本信息,以及第三方信息。而且這個模型一般也會比較謹慎。B卡利用了很多基於交易的特徵。
2.風控領域為何選擇邏輯回歸模型,有哪些局限性
1)首先是因為邏輯回歸客群變化的敏感度不如其他高復雜度模型,因此穩健性好
2)模型直觀,系數含義好闡述,易理解
缺點是容易欠擬合,准確度不是很高。另外對數據要求比較高,缺失、異常、特徵共線性都比較敏感
3.為何用IV而不是WOE篩選特徵
因為IV考慮了分組中樣本比例的影響。即使這個分組的WOE很高,但是分組的樣本佔比很小的話,最終這個特徵的預測能力可能還是很小
4.ROC與KS指標(ks在0.2-0.75,auc在0.5-0.9較好)
ROC曲線把TP,FP當作橫縱坐標,而KS曲線把TP,FP都當成是縱坐標,橫坐標是閥值。KS能找出模型中差異最大的一個分組,大於0.2即可認為有比較好的預測准確性。而ROC能反應整體區分效果
5.分箱方法與badrate單調
目前在行業里,大家用貪心演算法進行分箱的比較多,比如best_ks,卡方分箱等。badrate單調性只在連續型數值變數與有序型離散變數(如學歷/尺碼)分箱的過程中才會考慮。至於為何要考慮badrate單調性,主要是出於業務理解,比如歷史逾期越多那麼badrate越大。
6.為何不同的風控模型,一般都不會選用相同的特徵
被拒絕的人,是因為某些特徵表現差。如果用相同的特徵做重復篩選,那麼隨著時間推移,以後建模的樣本裡面就沒有這些人了。這樣特徵上的樣本分布就變了。
7.風控中用的無監督演算法有哪些
聚類演算法,基於圖的離群檢測,LOF(局部異常因子),孤立森林等
8.卡方分箱
卡方分箱是基於合並的數據離散化方法.基本思想是相鄰的區間具有類似的類分布,則將之合並.而卡方值是衡量兩個區間相似性的標准,卡方值越低越相似.當然也不可能無限合並下去,我們給它設定一個閥值.根據自由度與置信度得到.比如類別數是N,那麼自由度就是N-1.而置信度表示發生的概率。一般可以取90%。
9.best-ks分箱
與卡方分箱相反,best-ks分箱是一個逐步拆分的過程。將特徵值從小到大排序,KS最大的那個值即為切點,然後把數據分為兩部分。重復這個過程,直到箱體數達到我們的預設的閥值即可。
10.拒絕推斷(reject inference)
申請評分卡是利用通過審核的授信客戶的歷史數據來建立模型,但是此模型會忽略原先被拒絕的這部分客群對評分卡模型的影響。需要通過拒絕推論來對模型進行修正,以便使模型更加的精確與穩定。另外,公司的規則變化也可能讓過去被拒絕的客戶現在能通過。適用於中低通過率的場景。
常用方法:硬性截斷法---先用初始模型對拒絕用戶進行打分,設置一個閥值。高於此分數標記為好用戶,反之為壞用戶。然後把標記後的拒絕用戶加入樣本中重新訓練模型。分配法---此方法適用於評分卡。將樣本根據評分高低進行分組,並計算各組的違約率。然後對拒絕用戶進行打分並按照之前的方法分組,以各組的違約率為抽樣比例,隨機抽取該分組下的違約用戶,指定為壞用戶,剩下的標記為好用戶。然後將標記好的拒絕用戶加入樣本重新訓練
11.建模過程中如何保證模型的穩定性
1)在數據預處理階段可以驗證變數在時間序列上的穩定性,方法有:計算月IV的差異,觀察變數覆蓋率的變化,兩個時間點的PSI差異等。例如我們選取1-10月的數據集,借鑒K折驗證的思想,得到10組驗證結果。觀察隨著月份的推移,模型的變化是否有比較大的趨勢變化
2)在變數篩選階段剔除與業務理解相悖的變數。如果是評分卡,可以剔除區分度太強的變數,模型受這個變數影響太大,穩定性會下降
3)做交叉驗證,一種是時間序列上的交叉驗證,一種是K折交叉驗證
4)選擇穩定性好的模型。比如xgb 隨機森林等
12.怎麼處理高維稀疏特徵與弱特徵
對於高維稀疏特徵,邏輯回歸比gbdt效果好。後者的懲罰項主要是樹深度與葉子數目,這對稀疏數據來說懲罰並不嚴厲,容易過擬合。使用邏輯回歸評分卡,則可以把特徵離散化為0與非0,然後再進行woe編碼。
如果用評分卡建模,弱特徵一般會被舍棄掉。評分卡的入模特徵數不宜過多,一般在15個以下。而xgb對數據的要求不高,而且精度好。一些弱特徵進行交叉組合也許有意想不到的效果。
13.模型上線後發現穩定性不佳,或者線上的區分效果不好,怎麼調整
模型穩定性不佳首先檢查當初建模時有沒有考慮特徵的穩定性。在模型前期發現穩定性不佳的變數,考慮棄用或用其他變數代替。另外分析線上線下用戶和建模時用戶的分布差異,考慮在建模時增加拒絕推斷的步驟,讓建模樣本的分布更加接近實際的整體申請用戶
線上的效果不好可以從變數角度分析。剔除掉效果不好的變數,挖掘新的變數入模。如果一個模型已上線較長的時間,用戶的屬性也慢慢發生偏移,那麼重新取數做下模型
14.怎麼做風控模型冷啟動
產品剛上線時,沒有積累的用戶數據,或者用戶沒有表現出好壞,此時可以考慮: 1)不做模型,只做規則。憑借業務經驗,做一些硬性規則,比如設定用戶的准入門檻,考量用戶的信用歷史與多頭風險,可以接入第三方的反欺詐服務和數據產品的規則。也可以結合人工審核來對用戶的申請資料做風險評估 2)藉助相近模型的數據來建模。
15.樣本不平衡問題
除了調整類權重以外,主要採用采樣方法來解決。常見的有樸素隨機過采樣,SMOTE,ADASYN(自適應綜合過采樣)
16.運營商數據處理
根據通話日期,可以將通話記錄分為近7天,近半月,近一月,近三月,近6月等時間窗口。也可以按具體日期劃分為工作日、節假日等。根據通話時間,可以將一天劃為凌晨、上午、下午、晚上。至於電話號碼,一種思路是按照歸屬地劃分為 省市,另一種思路是對號碼打標簽,根據電話邦、網路手機衛士、搜狗號碼通的標記,區分出快遞外賣、騷擾電話、金融機構、中介等。甚至根據業務積累區分號碼是否是黑名單用戶、申請用戶或申請被拒用戶。用戶與不同號碼標簽的通話情況,可以側面反應用戶的通話習慣和生活特點
17.逐步回歸
當自變數之間的關系比較復雜,對於變數的取捨不易把握時,我們可以使用逐步回歸的方法進行變數篩選。逐步回歸的基本思想是將變數逐個引入模型,每引入一個變數進行F檢驗,並對已經選入的變數進行t檢驗,當原來引入的變數在後面的變數引入之後不再顯著時,則將原來的變數刪除。以確保每次引入引入新的變數之前回歸方程中只包含顯著性變數
18.在邏輯回歸中,為什麼常常要做特徵組合(特徵交叉)
邏輯回歸屬於廣義線性模型,特徵組合可以引入非線性特徵,提升模型的表達能力
部分引用文章: https://www.jianshu.com/u/0ce0500106d https://new.qq.com/omn/20180115/20180115A0RUEZ.html https://www.ixueshu.com/document/.html https://www.e-learn.cn/content/qita/775233 https://cloud.tencent.com/developer/article/144 8182 https://www.shangyexin.com/article/details/id-171268/ https://blog.csdn.net/sunyaowu315/article/details/87162765 https://www.yuque.com/rookie-ywx0p/sm8coc/ll43oc https://zhuanlan.hu.com/p/56474197 https://www.infoq.cn/article/jXwvkaB9t7mPWHxj9ymu https://cloud.tencent.com/developer/article/1489429 https://cloud.tencent.com/developer/article/1059236 https://github.com/taenggu0309/Scorecard--Function