跳到主要內容

機器學習的五大實務問題:對企業的影響與相應的化解方式

Appier 首席機器學習科學家 林守德博士

正如 Jason Jennings 及 Laurence Haughton 在《以快吃慢–如何藉速度在商戰中克敵制勝》一書中指出──未來,不是大公司吃掉小公司,而是速度快的公司吃掉速度慢的公司。

從現在開始,唯有善用適當的資訊快速做出決策的企業,才能成為戰場上的贏家。

機器學習技術驅動了這場變革。無論企業是嘗試向顧客提出建議、改進生產製造流程或應對市場的變動,都能運用機器學習技術處理大量的資料,進而提高自身的競爭優勢。

然而,機器學習雖能創造大好機會,卻也同時帶來了相應的挑戰。機器學習系統需要大量的資料,以及執行複雜的運算能力。顧客期望改變、出乎意料的市場波動等等外部因素,都意味著機器學習模型的運作並不是百分之百的自動,往往仰賴許多外部的資源來作監控及維護。

此外,機器學習也有不少尚待解決的實務問題。以下將深入探討機器學習的五大實務問題,以及這些問題對企業應用會產生的影響。

1. 資料品質

機器學習系統仰賴資料進行訓練,而訓練資料在廣義上可分為「特徵」及「標籤」兩種類別。

「特徵」是輸入機器學習模型的資料,像是來自感測器、顧客問卷、網站 cookie 或歷史資訊等等。

然而這些特徵的品質可能良莠不齊。舉例而言,顧客在填寫問卷時可能會隨便填寫,或對題目略而不答;感測器可能因失靈而回傳錯誤資料;即使使用者的網頁行為明確,網站 cookie 回報的資訊也可能不完整。

此外,資料也可能包含雜訊,當無謂的資訊夾雜其中時,機器學習模型將會受到誤導而做出不正確的預測。

相較於「特徵」,「標籤」的正確性與穩定度更為重要。標籤是機器學習模型最後輸出的結果。所以需要在訓練的時間利用正確的結果教導機器學習模型。標籤的稀疏性也是個問題,這是當系統已掌握大量輸入的資料卻對輸出的結果沒有把握時出現的現象。在這樣的情況下,將難以針對該模型偵測其特徵與標籤之間的關聯性優化,甚至需要耗費額外的人力干預,將標籤與輸入資料關聯起來。

機器學習需仰賴輸入與輸出資料的關聯,才能具備足夠的泛化能力以預測未來行動並提供相關建議。因此,如果輸入資料過於雜亂、殘缺或有所偏差時,將可能難以理解某輸出/標籤的產出原因。近年來機器學習也開發出許多先進的方法如半指導式學習,轉移學習來處理這樣的問題。

2. 複雜性與品質的取捨

建立強大的機器學習模型需要大量的計算資源來處理特徵和標籤,編寫複雜的模型更需要AI科學家和軟體工程師投入大量心力,同時也需要強大的計算能力、較長的執行時間,才能夠得出可用的結果。

而企業必須在這樣的情況下權衡利弊。可以選擇較快的開發速度或響應速度,但是結果可能不夠精確;或是可以接受較慢的速度或使用比較多的資源,但是獲得相對精準的產出。不過,無論是以較高成本換得精確模型或選擇以速度取勝,整體而言仍需視應用的情況而定,企業未必會因取捨而吃虧。

舉例而言,由於零售購物網站對顧客進行推薦需要即時應對,則此時成果即使出現意料外的變化,也仍在可接受範圍。然而,金融交易系統則會需要較可靠的判定結果。由於不需要即時產出結果,系統能運用更多資料讓模型執行更精密的計算,以便產出更理想的結果。

隨著「機器學習即服務」(Machine Learning as a Service,簡稱「MLaaS」)進入市場後,模型複雜性和品質間的利弊權衡開始受到更多關注。芝加哥大學的研究人員深入分析機器學習即服務的成效後,發現「如果能為關鍵決策(如分類器和特徵選擇)產出足夠的洞察,則其所能達到的效益相當於另一個獨立的分類器。」

3. 資料的樣本偏差

許多企業會借助機器學習的演算法進行員工招聘。不過,Amazon卻發現用於輔助挑選適任應徵者的演算法其實並不公正。此外,普林斯頓的研究人員也指出,有些系統彷彿像人類般擁有好惡,傾向選擇帶有歐洲色彩的姓名。

這不僅是模型發生問題,更多來自用以訓練模型的資料本身帶有偏見。幸好,在察覺資料出現偏差後,科學家便能設法將其導正,或盡可能降低偏差對資料的影響。

第一項挑戰便是判定資料是否含有偏見,這表示須執行額外的前置作業。雖然不可能將資料的偏見全數消除,但仍可藉由導入人類知識將影響降至最低。近年來也有許多帶有公平性原則的機器學習模型被提出,希望能夠處理這樣的問題。

而在部分情況下,也可能需要限制模型中可以使用的特徵數量。例如,在模型產出結果時,忽略某些特徵(如種族或膚色)將有助於減少偏差資料的影響。

4. 變化多端的顧客期望與概念漂移

機器學習模型會在特定情境下運作,而顧客追求的也不一定一樣。以數位廣告為例,有些客戶在乎的是點擊率,有些客戶在乎的是購買數量,有些客戶在乎總營收,有些客戶甚至有更複雜的評估機制。如果機器學習模型無法與時俱進地跟上顧客需求,則可能被淘汰。

模型可能因不同原因而出現衰退的現象。當新資料引入模型時發生漂移,即稱為「資料漂移」。或者,當人們對資料的解讀以及需求有所改變時也會發生漂移,即為「概念漂移」。

而為了適應上述的漂移現象,模型必須善用不斷新增的資料持續自我更新和進步。這也意味著必須定期對於模型作一些偵測與測試,讓機器學習的模型有「自我修正」的能力。

持續收集特徵及標籤並即時應對變化,才能讓模型適時更新並維持最佳狀態。雖然模型能夠自動執行某些層面的再訓練,但有時候人為的介入還是有其必要性,例如常常我們需要考慮新的特徵,或是更換學習的目標函數。

5. 監測與維護

建模其實不難,甚至可以將整個流程自動化。然而,許多模型的維護及線上服務需要完善的計畫與相應的資源。

機器學習模型只是系統產生結果流程中的一部分,這個流程包含前端的資料蒐集與校正,以及模型結果產生後的後製與顯示,再加上對於模型結果的回饋也需要重新回到模型本身來調整。這整個系統中任何一個環節都可能出錯,尤其是當企業有數以千計甚至萬計的模型在線上服務的時候。

所以在MLaaS的使用情境下,當模型產出的結果出乎預期時,有時不是源於機器學習的模型預測錯誤,而是作業鏈中出現問題。舉例而言,推薦引擎需與線上網頁建立連結以向顧客展示商品;而當連結中斷或是有延遲的時候,客戶的點擊率就會被影響。這樣的結果並不是模型推薦錯誤造成的,而且往往要花上一段時間才能找出錯誤。所以,如何能夠快速的找出可能的問題所在,反而是MLaaS相關企業非常需要的能力。

機器學習可為企業帶來不少益處。預測未來結果以推斷並影響顧客行為,以及協助企業運作等等,都是機器學習能提供的實質效益。然而,機器學習同時也為企業帶來了不少挑戰。企業應對相關挑戰有所了解並發展因應的解決策略,準備周全之下才能安心地運用機器學習。

強力徵求

Machine Learning Scientist

Responsibilities

  1. Use machine learning and analytical techniques to build prediction models for advertising/enterprise solutions.
  2. Experience in analyzing and extracting valuable information from large amounts of business data.
  3. Design, develop and test advanced models for predictive consumer behavior.
  4. Co-operate with software engineering teams to drive real-time model implementations and new feature creations.
  5. Design efficient, scalable, automated processes for large scale data analyses, model development, model validation and model implementation.
  6. Research and evaluate pioneering machine learning and statistical models.

Backend Engineer

Responsibilities

  1. Developing and operating scalable, reliable and maintainable service-based softwares and related components.
  2. Cowork with team members to design system architecture, choose proper technologies and plan development.
  3. Design & develop server-side architecture & function logic of new services.
  4. Design and maintain database schemas for new services.
  5. Ensures the scalability of the system.
  6. Ensure the high performance of responsiveness to requests from the front-end.
  7. Integrate the front-end modules built by your coworkers into new services.
  8. Responsible for laying the foundation for the platform as well as proposing solutions to ease software development, monitoring of software, etc.
  9. Profiling and performance tuning of critical components.
  10. Deploy system to production and monitor service health.
  11. Participate in idea brainstorming and contribute ideas to technology, algorithms and products.
  12. Participate on-call rotation within the Backend team to ensure product reliability and scalability.

Frontend Engineer

Responsibilities

  1. Design & develop front-end architecture & interactive user interfaces.
  2. Integrate the back-end modules built by your coworkers into new services.
  3. Ensures the flexibility of front-end architecture.
  4. Ensure the high performance of responsiveness.
  5. Build reusable code and libraries for future use.
  6. Build unit tests and test automation.
  7. Perform code reviews to ensure existing code stays high-quality, fast, and flexible.
  8. Handle and resolve issues escalated from the production operational environment.
  9. Participate in idea brainstorming and contribute ideas to technology, algorithms and products.

其他職缺更多職缺資訊,請見 Appier網站

  • Data Backend
  • Technical Program Manager
  • Product Manager
  • QA Engineer
  • Mobile Development
  • DevOps Engineer
  • Technical Solution Engineer

留言

這個網誌中的熱門文章

COSCUP x KCD Taiwan 2022 CfP is now open, submit your proposal before May 23th, 2022.

We have pleasure to work with KCD Taiwan to have a joint conference this year. We are looking for talks in several open-source related areas, please submit your proposal before May 23th, 2022. After the review process from the coordinators, we will publish the full programme in early June. Please note that the length of each agenda is preset to 30 minutes, only the specific tracks are open to other agenda lengths for selection, which will be filled in on the second page of the registration form.  In the submission type on the first page of the registration form, please select the default value (30 mins) . 今年 COSCUP 我們很榮幸與 KCD Taiwan 合作舉辦聯合研討會,並且如往常,徵求各式各樣不同的 Open Source 相關稿件。請於 5 月 23 日前投稿,或可參考本頁下方各議程軌資訊。    請注意,每場議程長度預設為 30 分鐘 ,惟指定議程軌開放其他議程長度進行選擇,會在報名表單第二頁進行填寫,報名表單第一頁的 提交型態 中,請選擇預設值。 Submit your proposal Important Dates Submission deadline: May 23th, 2022, Anywhere on Earth!(截稿時間) Full programme published: Early July (預定公佈時間) COSCUP x KCD 2022: July 30th - July 31th, at National Taiw

2022!前夜派對!Open source and wine!Welcome Party!

喝! 年會 前夜 的交流 派對 ,來與大會講者、社群同好一起喝酒聊天! Join the Party, have fun with the speakers and your beloved FLOSS community members! 會場有什麼? / What will we have at the party? 當日精選的 MIT 掌門精釀啤酒 (也有無酒精飲料) Beer ! For people who don't like alcohol, the bar also provides soft drinks. 下酒點心 Snacks 200 坪空中花園派對,可以直接看到台北 101!美景與美酒,絕配! Awesome view, believe me! Just check the photos from Google Maps. 最重要的是:與熱愛開源的大會講者與社群同好交流的最佳活動! Lots of FLOSS folks! 注意事項 / Note 會場食物為小零食,數量有限,建議吃過正餐再來! Please have your dinner before the party, we only prepare party appetizers. 低消為 $200 元。 The minimum order is NTD$200. 不用報名,自由參加。 Please feel free to join Welcome Party, no matter what you come to COSCUP x KCD Taiwan 2022 or not. 贊助商請找 贊助組 領取酒券。 If you are the sponsor, please contact the Sponsorship Team for the free beer ticket. 如果你怕忘記參加活動,可以訂閱 COSCUP 活動電子報 ,不錯過最新活動訊息! Subscribe the COSCUP newspaper to receive important reminders and exciting activities. 時間地點 / When, Where 時

COSCUP x KCD Taiwan 2022 Call for Participation -- now open 議程軌與攤位即日起開放申請

COSCUP x KCD Taiwan 2022 的社群議程/攤位即日起開始接受申請,並將於 3 月 23 日截止申請,請有興趣在今年與我們共襄盛舉的社群把握機會! Application for COSCUP x KCD Taiwan 2022 community rooms / booths is started NOW! (English Below) 社群議程 COSCUP x KCD Taiwan 2022 社群議程提供場地與行政協助,您可以在此舉辦一整天關於特定開源議題的討論、座談、工作坊等。特色包括: 自訂議程時長:各社群可以自己決定每段議程的時間,無論 15 分鐘、30 分鐘、45 分鐘,甚至直接開設數個小時的工作坊都可以。 自訂休息時間:各社群可以決定是否有休息時間,或是連番上陣。 重要日期 03/09 (三) 社群招募表單 Open ! 03/18 (五) 社群議程招募說明會 03/23 (三) 社群議程截止申請 03/25 (五) 公布社群錄取名單與 keynote speaker 推薦表單 Open ! 04/01 (五) keynote speaker 推薦表單 Close ! 04/10 (日) 通過的社群議程提供徵稿資訊,由 COSCUP 統一發佈並徵稿 04/11 (一) 公告徵稿訊息 04/13 (三) 徵稿開始 04/20 (三) 徵稿開始 05/15 (日) 徵稿截止 05/22 (日) 徵稿截止 06/26 (日) 社群提供所配發時段內的完整議程表 07/01(五) 總議程表發佈 07/30~07-31 COSCUP x KCD Taiwan 2022! 申請規則 議程表內容 歷年來 COSCUP  演講時間皆供不應求,因此我們不希望講堂刻意留空。申請此案代表您承諾將填滿所配發的議程時間。每段社群議程之配發時間約 6 小時左右,確定的時段將依據申請狀況略有調整,容後公佈。排設議程時,每段議程時間長短、是否有休息時間等,由社群自行決定。 社群議程的協調人需在六月中以前完成議程表時間分配。 如果您沒有信心稿件能填滿全天議程,請與其他社群共同申請,或在申請書上註明希望 COSCUP 協助配對,我們會盡力而為但無法保證。 議題投稿 通過申請後,您需要在 04 月 10 日前提供徵稿時所需的資訊(例如希望有哪類稿件、有沒有特殊欄位等