天天看點

機器學習會産生哪些使用者體驗問題?(機器學習入門第五篇)

本文是機器學習入門教程的第五篇,前四篇分别是:

許多機器學習算法都是黑匣子:輸入大量的資料,然後獲得一個以某種神秘方式工作的模型。這使得很難向使用者解釋機器學習的結果。在許多算法中,還存在着互動效應(各種特征互相之間存在着某些關系,不能僅僅通過将每個特征的效果簡單相加來解釋),這使得模型更加難以解釋了。你可以把這個看成是特征之間的複合效應,特征之間以多種奇怪而又複雜并且不為人類所了解的方式結合在一起,整體效應大于各個部分效應的總和。

我們所面臨的挑戰并不僅限于針對外部客戶的模型,同時也要獲得内部使用者的信任。即使内部團隊支援你,他們也不太可能采用他們自己無法了解或者不信任的結果。我曾看到過一些案例,團隊傾向于使用易于了解的規則引擎,而不使用可能會産生更好結果的機器學習模型,隻是因為規則引擎是可以解釋的:人們寫出規則,這樣,大家就能夠了解它們了。

在構模組化型之前,這個問題不能忽略。我們需要提前考慮使用者可能希望看到的模型資料群組件,考慮如何讓呈現出來的結果得到使用者的信任。這可能會讓原先構模組化型的方法發生改變,還有助于防止出現你有答案而無法向使用者解釋的情況。

為市場、産品和團隊建構三個獨立模型,使用這三個模型在單一的次元上評估公司。然後建構一個将所有這些特征(以及潛在的其他特征)結合在一起的綜合模型。這樣,投資者既可以看到總體結果,也可以看到他們最關心的某個具體次元。

建構聚合模型,從中找出一種提取最适合于每個次元特征的方法,并讓使用者感覺到它們的價值和重要性,或者顯示與每個次元一緻的資料點,以樹立使用者對結果的信心。

正确的方法在很大程度上取決于問題所屬的領域、可用的資料、模組化方法等,但在進入模型的原型設計之前,應該進行充分讨論和評估。

在确定如何顯示結果的時候,我們的目标是要讓結果清晰、可信,并且最重要的是,可行。這個沒有現成的指導手冊,我在這裡将介紹一些方法和注意事項,希望能為你提供一些思路。

回溯。這種方法是将曆史資料插入到模型中使其産生過去的預測,這樣可以根據已知值對預測進行驗證。例如,如果你建立了一個用n-1年的資料來預測第n年值的模型,那麼你可以将兩年前的資料插入到模型中,看看一年前的預測是否正确,因為一年前的資訊是可以擷取到的。這是測試模型的潛在方法。由于曆史資料存在是否完整的問題,在沒有某些簡化假設或模型調整的情況下,模型要獲得足夠的資料覆寫是有難度的(例如,如果模型使用了來自社交網絡的資料,那麼你不能回溯到一個社交網絡還不存在的時間點)。對于某些模型,例如強化學習模型,這也是不可行的。

解釋你的方法和輸入。隻需告訴使用者在模型中用到的資料類型,通過讓他們看到決策是基于相同類型的變量來建立信任,如果使用者不得不做出決定,他們就會考慮使用這些資料。在andreessen對初創公司評估案例中,對市場評估部分的簡要說明是這樣的:“一家初創公司的市場潛力要考慮到市場上同類公司的數量和總的銷售額、在全球範圍内這個市場在過去5年的增長情況、新産品釋出的數量、在該領域與宏觀經濟趨勢中的并購活動。” 雖然這不是一個完整的解釋,它确實讓使用者瞥見了這個黑匣子。如果你引入了一個新的評分,那麼這絕對是必要的,原因如前所述。

公開一些基礎資料。這種方法是使用者最容易了解和相信的,因為他們親眼看到了資料。但這設計起來并不是最簡單的,它存在幾個缺點:你需要公開那些可能不希望或無法公開的資料(例如,由于法律方面的限制,資料是專有的),在某些情況下,資料與結論可能并不一緻(模組化與機率有關),或者資料可能甚至不存在;該算法不需要對其評估的所有實體進行全面的資料覆寫。

簡化并僅顯示指定的結果,以便于決策。不出所料,亞馬遜對于某些産品的推薦做得很好。我搜尋了一個護膝套,看看下面我從谷歌搜尋結果中找到的頁面。

亞馬遜并沒有給我30個類似的産品讓我來選擇,它知道每個相關産品确切的購買機率,是以給了我很簡單的兩個選擇:最便宜的商品,以及最暢銷且評價最高的商品。我不知道他們挑選産品的标準,以及判斷與我選擇的産品是否比對的标準。在這一點上,亞馬遜讓我能夠輕松地做出決定,我無需關心上面那些細節問題。

機器學習會産生哪些使用者體驗問題?(機器學習入門第五篇)

示例:從商品搜尋跳轉過來的頁面

定義一個新名額。你應該考慮的一個問題是你是否建立了一個新的名額(一種新的“評分”)或者預測一個易于了解的名額:你可以構模組化型來預測現有的名額(例如公司的收入、房屋的價值等等);或者,你可以建立一個展現某個概念但尚不具備可被接受的名額的評分,以便按照這個概念(例如“針對某個行業的fico評分”)實作對實體的排名。這個決定很大程度上取決于是否存在一個單一的度量來表達商業目标,或者這是一個需要幾個因素權衡的混合體。例如,如果我們要評估商業房地産資産對零售業使用的吸引力,我們可能希望建立一個“零售健康評分”,其中包括幾個組成部分,比如每平方英尺的銷售額、每平方英尺總成本,以及區域品牌價值貢獻等等。在這種情況下,由于沒有包含這些名額的單一名額,是以你可能需要為每個組成部分單獨進行模組化,然後再通過某種類型的相對權重将它們組合在一起。選擇新的評分時,你應該重點考慮一下你可能需要花更多的時間和精力來教你的使用者。

精确度并不總是很重要。很多模型生成的結果是一個非常精确的數字。如果你向使用者展示如此精确的數字,那麼使用者就可能遇到比想象中更大的風險。預計價格為583,790美元的房屋并不一定比580,625美元的房屋更貴,誤差幅度可能遠大于3000美元。有時,向客戶展示過于精确的數字會适得其反。給使用者的結果最好不要是很精确的數字,可以考慮用範圍、等級或其他一些不是那麼精确的數字來表示。

重申一下,使用者體驗的選擇在很大程度上取決于主題、産品和使用者需求。上述任何選項都不會與你的産品無關。如果使用者無法了解,即使是最好的模式也毫無用處。

盡管穩固的系統架構主要是由工程團隊負責設計的,但業務需求也會影響到機器學習系統,進而将一個偉大的系統變得糟。作為一個項目經理,你直接跟工程團隊讨論的越多,就越有可能最終建構出滿足業務需要的系統。雖然下面這個清單并不完整,但應該會讓你産生一種相見恨晚的感覺。

對實時的要求。算法的結果可以提前計算出來嗎,還是需要實時計算?當你擷取到新的資料,或者使用者輸入了特定資訊或執行某些操作時,模型是否需要立即生成反映新資料的結果?實時系統的架構與可以處理脫機資料的系統架構相差很大。

資料和模型的依賴關系。你的系統可能包含多個模型,其中一個模型的輸出是另一個模型的輸入。當一個模型的輸出發生變化時,是否需要重新運作其他的模型呢?當添加或修改資料時,哪些模型需要重新運作(有時甚至需要重新訓練)?應該以多快的速度進行更新,可接受的sla是什麼呢?

資料收集的頻率。資料收集和累積的速率會影響流水線的設計和存儲方法的選擇。資料收集的頻率取決于資料實際變化的頻率、資料變化的重要性以及擷取資料的成本(如果資料需要購買的話,就要考慮支付成本,以及檢索、處理和存儲成本)。例如,如果你正在收集有關地震的資料,資料的變化可能不會很頻繁,但一旦資料發生改變,就需要立即擷取到;如果你正在收集有關餐廳開門營業和關門休市的資料,那麼這個資料可能就會比地震資料變化得更頻繁一些,即使你可能早幾天或者晚幾天發現資料的變化,那也不會對産品的整體效用産生重要的影響。

資料收集的方法。如何收集資料,批量還是流式傳輸?是推還是拉?對實時的要求使得資料收集進一步的複雜化。系統可能需要支援多種資料收集或上傳方法,例如,api、檔案上傳等等。它需要子產品化以支援所有必需的方法,并将資料從資料進行中分離出來(這是一個很好的軟體工程設計原則)。

文章原标題《machine learning is very much a ux problem》,作者:yael gavish,譯者:夏天,審校:主題曲哥哥。

繼續閱讀