天天看點

從零開始玩人工智能—推薦服務

    有一個非常經典的段子,就是“啤酒和尿布”。故事是說,沃爾瑪的一位門店經理發現,周末啤酒和尿布的銷量會“落霞與孤鹜齊飛,秋水共長天一色”,一起上漲。經過分析,是因為奶爸們周末看球喝啤酒的同時要給娃帶上尿布,然後就把這兩樣商品擺在一起促進銷售雲雲。甚至專門用這個案例作為一本書的标題:

從零開始玩人工智能—推薦服務
從零開始玩人工智能—推薦服務

    先且不論這個故事的真實性(知乎:資料挖掘中最經典的案例之一-啤酒與尿布是真實的案例嗎?),可見人們對于資料挖掘分析并用以提升業務是很癡迷的。以前可能要雇一群人分析大量的資料給出可能的結果,而現在,AI可以幫你搞定這個事情。

     你甚至不用寫一行代碼。

    Azure 裡面的AI及認知服務家族正在不斷擴充,在下面這個長長的人工智能API清單裡,有很多已經廣為人知的例如計算機視覺,語義分析,表情分析,智能搜尋等等,而有一個新出的服務,叫做建議(Recommendations)。

    建議這個東西,是所有人都需要的。不信你看看你手機:“晚上吃啥啊?”,“周末去哪啊?”。對于業務來說,通過資料挖掘為客戶提供合适的建議,不僅僅是可能擴大銷售,更厲害的是培養信任感,跨越銷售防備的城牆。

    是以,通過一些簡單的資料,利用人工智能,進行分析,也就是“網際網路+”時代的剛需了。在Azure裡面,可以直接添加這個有趣的服務,進行一番有趣的探索。服務部署後,有個簡單的後續步驟,最重要的第一步是生成服務對應的Key,不論是使用站點簡單實作建議的人工智能,還是自行使用API開發更為複雜的BI實作,都離不開這個Key來使用Azure雲平台的能力。

從零開始玩人工智能—推薦服務
從零開始玩人工智能—推薦服務

    複制這個Key之後,我們就可以打開用于嘗鮮的站點:https://recommendations-portal.azurewebsites.net 輸入Key即可登入。

從零開始玩人工智能—推薦服務

    登入之後我們幹啥呢?在建立一個新的Project之前,可以參考一下官方的文檔:https://docs.microsoft.com/zh-cn/azure/cognitive-services/recommendations/cognitive-services-recommendations-quick-start

    在建立Azure服務之後,就可以為建議服務準備資料了。資料分為兩部分,一部分是品類(catalog),一部分是事物(usage)。品類資料可以包括<item ID>,<item name>,<product category>等,事物資料可以包括<User ID>,<Item ID>,<Time Stamp>,<Event>等。具體的字段定義和資料類型,可以點選以上的連結通路相關API參考。

    一開始不了解這個服務使用的資料,可以使用微軟準備好的樣例資料。示例資料是一家書店的樣例。品類資料是各種書,而事務資料非常簡單,隻有user、item兩個字段,便于快速進行處理示範。

從零開始玩人工智能—推薦服務

   建立一個Project, 把這兩個資料上傳到建議服務項目中,設定諸如模型遞歸、模型次元、資料取舍等參數,就可以開始進行人工智能的自動分析了。

從零開始玩人工智能—推薦服務

    雲服務平台會給Build配置設定ID并建立Job任務。資料簡單而且數量不多,幾分鐘後就能獲得結果。

從零開始玩人工智能—推薦服務

    結果會以Score分數集合的形式得到展現。如何展現為人比較易讀的結果呢?

從零開始玩人工智能—推薦服務

    點選“Score”,就會展現一個簡單的購買模拟界面。可以把顯示出的書添加到中間的購物車,同時,根據之前其他一起購買的資訊,進行AI分析之後,在下面給出建議的書。

從零開始玩人工智能—推薦服務

     細心的你肯定發現了,建議的書除了書名,還顯示了一個分數,姑且我們稱之為推薦度吧。随你添加到購物車裡的書不同,推薦的各種書的建議分數(推薦度)也是不同的。例如我選了一本《自私的基因》,系統就根據之前的購買記錄猜測我喜歡科幻類的、科學類的書,例如《沙丘》、《宇宙盡頭的餐館》等。

從零開始玩人工智能—推薦服務

    而随着我添加的書數量增加,系統比對到書的推薦度也在增加。這是因為添加的書之間也有一些關聯度,這些關聯度增強了建議購買的書之間的關聯度。因為選擇了《冰與火之歌》和《美國衆神》,側重反烏托邦的《安德的遊戲》和《1984》也進入了建議書目。

從零開始玩人工智能—推薦服務

    建議服務在分析過資料後,還會對分析做出小結。當然,要進行人工智能的分析,“喂”給雲平台服務的資料有一定的要求。除了前面提到的資料格式類型的要求,還有一些資料量和資料大小的限制。例如事務資料量應該至少20倍于品類資料。每個項目每次上載的資料不可大于200MB,但可以上傳多個檔案,隻要不大于2GB。如果資料太大,估計是要做模型調整或者ETL清洗一下?

    而建議服務能夠提供的學習(Build)類型目前有幾種:Recommendations、Rank、FBT、SAR。(這裡文檔有點沖突,前文說支援Ranking和FBT,然後後文又說支援Recommendation和FBT,然後服務站點下來可選4個……估計發展快沒更新)。FBT是“經常一起購買(Frequently Bought Togather)”的縮寫, 不同的類型的比較可以參考:https://docs.microsoft.com/zh-cn/azure/cognitive-services/recommendations/cognitive-services-recommendations-buildtypes 我對照了一下,确實傳回的内容是不同的。

    需要說明的是,在建立建議服務時,微軟提示說送出的資料會被用于改進人工智能,是以正式使用的話,需要考慮資料脫敏的問題。

    看,我們确實沒有寫一個字的代碼,但是完成了分析資料實作“啤酒和尿布”這件事情。

     本文轉自HaoHu 51CTO部落格,原文連結:http://blog.51cto.com/haohu/2069852,如需轉載請自行聯系原作者

繼續閱讀