機器學習在銷售報價單的產品推薦場景中的作用
大家平時在京東或淘寶上買一個東西后,手機app會自動向我們推薦一些其他我們可能會購買的商品,這些推薦就是背后的機器學習框架基于我們以前的購買習慣通過一定的算法計算出來的。
SAP的一款CRM云解決方案,Cloud for Customer(簡稱C4C),同樣支持使用機器學習根據銷售訂單歷史數據進行向上銷售和交叉銷售機會的產品推薦。
下面我們一起來看看人工智能在產品推薦這個場景里的具體實現吧。還是先去Administrator->Prediction Services,點擊Model Setup進行機器學習的模型設置。
我們可以在Machone Learning Scenarios(機器學習場景)的列表里看到Product Recommendation(產品推薦)這個場景。通過點擊按鈕“Add Model”創建一個新的機器學習模型,點擊“Train”進行訓練,確保訓練成功完成,狀態變為"Active", 說明該模型可用。
創建一個新的Product List,里面包含了需要銷售的產品:下面的例子有兩個產品,ID為為1042416和10001380。
如果是傳統的產品推薦場景,假設當我在銷售訂單的行項目里維護了上述兩個產品的ID后,還想推薦一些其他的產品,則需要通過人工的方式將這些推薦的商品維護到Product list的"Proposed Products"標簽頁里,如下圖紅色區域所示。
有了人工智能加上機器學習后,就可以省去這些人工配置的步驟和工作量。我給這個Product List加上了一個"203 - Product Recommendation"的場景,如下圖藍色區域所示,希望讓這個Product List里包含的產品被加入到銷售訂單時,通過人工智能的方式由SAP C4C系統自動推薦相關產品給我。
現在我們來做個測試,創建一個新的銷售報價單,將之前維護在Product List的某一個產品,比如1042416,維護在這個銷售報價單的行項目里,然后C4C系統自動給我推薦了兩個其他產品,ID為P140101和P140100。
去年5月的時候,Jerry曾經寫了一篇文章:使用Java程序消費SAP Leonardo的機器學習API,而最近另外做的一個項目,
需要在Web應用里做同樣的事情。
因為有了前一篇文章的鋪墊,避免了很多重復的工作量。本文還是選擇使用SAP Leonardo里的一個Product Image Classification API,即給定一張產品的圖片,該API能識別出此產品的類別。
再回顧下這個API的功能:該API的模型是由SAP基于大約5萬張Icecat圖片訓練而成,能區分29種不同的類別,這些類別具體羅列于官方文檔上,比如電腦顯示器,數碼相機,外部存儲設備,鍵盤,液晶電視,手機充電器,筆記本和其他外設等等。如果我們消費這個API時指定的圖片代表的產品不屬于這29種類別之一,API的表現如何?先賣個關子,文末解答。
關于如何在api.sap.com里找到這個API并且在API console里測試,請參考Jerry之前的文章:使用Java程序消費SAP Leonardo的機器學習API。
這里假定我們已經找到了該API,點擊進入明細頁面,將API Key復制下來,后續的UI5應用需要使用到。
然后進入SAP云平臺的Neo環境。Jerry這個練習,使用免費的SAP Cloud Platform Neo測試環境即可。
在Service列表里找到WebIDE——我們將使用WebIDE進行UI5應用的開發。
Jerry已經開發好了一個UI5應用上傳到我的Github上了:https://github.com/i042416/MachineLearning-UI5
大家可以直接在WebIDE里clone這個倉庫,或者把倉庫的內容以zip包的形式下載到本地,再使用WebIDE的本地Import功能導入。
我們要告訴UI5應用這個API的url,因此在Neo環境里創建一個Destination(作用和ABAP Netweaver事務碼SM59里創建的Destination相同):
屬性如上圖所示,因為是Neo測試環境,所以url為對應的sandbox環境:https://sandbox.api.sap.com/ml
記下這個Destination名稱sapui5ml-api, 因為稍后的UI5代碼里需要使用。
記得維護額外的屬性WebIDEnabled為true,這樣該Destination才能在UI5應用里被使用。點擊Check Connection確保看到綠燈。
打開WebIDE里UI5工程里的settings.json文件,將您之前從API console里拷貝的API Key粘貼到此處:
在項目根目錄下的neo-app.json文件里,把類型為destination的target對象的名稱維護成之前在SAP Cloud Platform Cockpit里創建的destination相同的名稱。
運行這個UI5應用,能看到如下界面:
做一些簡單的測試:
SAP Leonardo的機器學習API,識別出這張圖片有74.7%的可能性是一臺筆記本電腦,13.8%的可能性是鍵盤,11.3%的可能性是Tablets。
點擊按鈕View JSON,能看到調用SAP Leonardo API返回的技術明細。
鼠標的圖片也成功識別出來了:
本文開始曾經提到這個API能識別出29種不同的產品類別,現在換一種產品,如下圖:
這是Jerry小時候就很癡迷的《終結者》系列的T800,我在2017年回復SAP社區上一篇博客時也引用到了這款經典的模型,和阿諾德 - 施瓦辛格那句激勵無數中老年程序員的著名臺詞:I am old but I am NOT OBSOLETE
言歸正傳,如果希望SAP Leonardo的Product Image Classification API也能成功將T800識別出來,需要做些什么?
答案是重新訓練模型。具體如何做,Jerry也還在研究,等研究完畢再分享。感謝閱讀。
AI 機器學習
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。