簡介: 讀懂你的心算法
做者:閒魚技術——有攸markdown
卡耐基在《人性的弱點》一書中說:「世界上惟一能影響他人的方法,就是談論他所要的,並且還要告訴他,如何才能獲得他所要的」。因而可知,良好的溝通交流能夠很大程度上拉近雙方的關係,進而影響對方。閒魚消息是買家瞭解二手物品信息不可或缺的一環,咱們有理由推斷良好的聊天可以對成交產生正向影響。推斷須要數據來佐證,經過對以往聊天成交數據的關聯分析,咱們獲得了以下結論:網絡
咱們推測我的賣家轉化率偏低的一個緣由是不會好好聊天,經過抽樣case發現部分賣家回覆內容高冷、生硬、情緒化,進而致使雙方尷尬,聊天戛然而止。因此咱們探索的方向就是如何引導賣家與買家好好聊天,經過算法意圖識別,以聊天小助手的形式給賣家提供友好的建議性話術,讓溝通交流再也不僵硬。框架
1.爲何是議價異步
買賣聊天主要對話場景有開場問詢、價格問題、郵費問題、商品信息等,其中會話中聊到價格的佔比30%~40%,並且會話中談及價格時,每每也是交易較後的階段,若是買賣雙方在價格問題上溝通順利,預計能夠有效促成交易。因此咱們考慮先從議價場景切入,最小閉環上線,觀察數據佐證猜測後,再逐步上線其餘對話場景策略。oop
2.方案設計優化
爲了避免影響消息主鏈路,識別流程必須走異步mq消費流程,同時爲了減小算法識別的壓力,對消息進行了消息類型、發送者、關鍵字過濾、會話疲勞度控制等規則的初篩。此外,咱們還聯動了商品的價格力數據,價格力數據能夠提供商品的同類同款賣出價以及推薦價,經過算法綜合擇優,能夠給出商品建議價,再根據買家出價狀況,走不一樣的產品邏輯組合成不一樣場景下的贊成/拒絕文案選項。這樣不管買家出價是否合理,賣家是否接受,給賣家提供友善的議價話術選擇,讓買賣雙方還有繼續聊下去的機會,就還有成交的但願。若是買家出價不合理,也會給買家下發議價不合理的卡片,給出同類商品的參考價,拉平買家的價格預期。阿里雲
3.產品效果spa
賣家側:設計
買家側:
1.寶貝還在嗎?
相信這幾乎是每一個閒魚賣家都司空見慣的聊天開場白,但不少賣家見多了反而不肯意回覆這類沒有養分的問題,心裏os:"不在還掛着幹啥???"。咱們本着讓買賣雙方的聊天有一個愉快的開始的目的,考慮從2個方面優化這個場景的問題:
2.基於類目的加權隨機開場白
不一樣類目的商品聊天中買家關注的問題點不一樣,咱們基於離線數據分析,回撈了一批不一樣類目買家最關心的問題列表,把這些問題首先按類目分類,其次按關注點(二手屬性)分類,再加上觸發規則條件、權重分,造成一套開場白問題庫,可由產品運營自助添加修改。
流程圖:
如上圖所示,當會話建立時,先根據類目讀取問題庫獲得對應的問題列表,再根據這個商品自己的一些屬性標,如是否包郵,是否全新,按規則篩選出符合條件的問題列表,再根據權重分對知足條件的問題進行加權隨機,最終獲得某個二手屬性的問題項。爲了保證問題內容的多樣性,每一個二手屬性的問題項也會有不一樣文案但相同語義的表達,最後再次隨機一個具體問題表達,便可下發建議卡片。
3.意圖識別流程框架
前面已經實現了議價意圖的算法識別,此次又要新增一種打招呼的識別,是否要從新開發整個流程呢?顯然不須要,前期議價爲了快速迭代上線看效果,沒有抽象設計成一種通用的意圖識別流程,此次新增第二種意圖識別,有必要還債從新設計了,任何優秀系統的設計都是不斷迭代重構產生,毫不會是一蹴而就的,項目初期在需求不明確的狀況下若是考慮的過多,每每會致使過分設計,後面若是需求變更,又要返工。故從新抽象設計一套通用的意圖識別流程框架。
流程設計:
類圖:
如上圖所示,每種意圖須要實現IntentProcessor接口,實現本身的過濾和處理邏輯,不一樣意圖有不一樣的初篩邏輯和擴展參數,filterAndCompleteContext這個方法是用來過濾和補充意圖識別擴展參數到流程上下文中的,若是知足初篩條件,就添加該意圖類型到可能的意圖列表中,由算法識別最終結果,若是一條消息存在多種意圖,由算法根據優先級規則選出最相關的意圖。獲得意圖識別結果後,調用對應的IntentProcessor的process方法,完成具體的業務邏輯處理,如在議價場景是根據價格規則,組裝不一樣文案下發建議卡片。
4.產品效果
開場白:
打招呼:
1.爲何老是問我同一個問題?
咱們觀察數據發現,聊天中商品問詢場景覆蓋率35%~40%,由於閒魚商品交易獨特的二手屬性,賣家可能會面臨同一個商品同一個問題會被多個買家屢次問到,從而重複回答的狀況,賣家有苦說不出,只能心裏os"爲何老是問我同一個問題?"。爲了優化賣家體驗,提升賣家回覆效率,咱們決定識別聊天中的問答對,而後在問答對消息後面插入引導tip,賣家側能夠選擇將問答對補充到商品詳情中,若是問答對中含有商品結構化二手屬性信息(好比成色、有無拆修、品牌等),也會識別並引導賣家補充商品的結構化屬性。
2.通用消息擴展屬性變動
咱們上面說的意圖識別流程框架立刻就用了起來,這時候只須要新增一種意圖識別處理器(IntentProcessor),實現該場景的過濾和處理邏輯,就能夠輕鬆實現整個功能。但新的問題來了,上面的議價、打招呼場景中咱們給賣家側的引導都是一種建議類卡片,這種卡片是一條新消息,與其餘的消息一塊兒混排,並且與觸發源消息關聯性不強,即便有延遲致使卡片插入到偏後的位置,影響也不是很大。可是問答這種場景,下發的是一條引導tip,這個tip是與答案所屬的消息強關聯的,引導tip必須緊跟答案消息後面,若是對不上,就會很是影響體驗。
閒魚的消息列表是按照發送時間排序的,若是按以往新消息的形式插入,沒法嚴格保證下發時機緊跟在某條消息後面,若是人爲的修改消息的發送時間,會破壞消息發送時間這個字段的語義。咱們從另外一個角度思考,這條tip必定是緊跟在某條消息後面,如影隨形,不離不棄,那麼爲何不合二爲一呢?把這條tip當作是這條消息的一個擴展屬性,因此咱們決定引入一種通用變動消息擴展屬性的能力,經過事件下發給客戶端,再由客戶端根據約定的協議解析並展現,以下圖所示
由業務發起對某條消息的擴展屬性變動,可選設置存儲服務端消息庫,更新會話視圖,好比問答場景的tip,是有時效性的,只須要透傳給客戶端,服務端徹底不須要存儲。該方案也爲之後消息的個性化變動及展現提供了可能。
3.產品效果
至此,咱們的聊天小助手沉澱出了一套通用的意圖識別流程框架,實現了議價、打招呼、問答三種意圖識別,引導廣大我的賣家跟買家好好聊天,幫助賣家快捷補充更詳細的商品信息。聊天小助手上線後,功能使用率較高,實驗桶相比對照桶,回覆率相對提高4%,在議價場景中,下發卡片的實驗桶相比對照桶成交轉化率相對提高4%,從數據來看,確實也證實了咱們以前的推斷,引導買賣聊天,對促成交易有正向做用,爲接下來該項目的繼續演進提供了可能。
我相信友好親切的溝通交流能夠溫暖人心,拉近關係,現實世界是如此,經過網絡溝通也一樣是如此。將來咱們會持續迭代優化聊天小助手,橫向挖掘更多的意圖識別場景,好比包郵、發貨地等,同時在聊天中涉及最多的商品信息識別場景深耕,幫助賣家更好的完善補充商品信息。總之,將來聊天小助手會有更豐富實用的技能樹,讓她更聰明,更懂你。
本文爲阿里雲原創內容,未經容許不得轉載。