為了使本技術領域的人員更好地理解本說明書一個或多個實施例中的技術方案,下面將結合本說明書一個或多個實施例中的圖式,對本說明書一個或多個實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本說明書一部分實施例,而不是全部的實施例。基於本說明書中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本說明書保護的範圍。
在本說明書中,執行上述資訊推薦方法的執行主體可以是伺服器,也可以是終端設備,而為了方便進行描述,下面將僅以伺服器為執行主體,對本說明書提供的資訊推薦的方法進行說明。
圖1為本說明書提供的資訊推薦的過程示意圖,具體包括以下步驟:
S100:獲取靜態資訊以及動態資訊,所述靜態資訊包括用戶的固定資訊和/或各服務資訊對應的固定資訊,所述動態資訊包括各歷史服務資訊被各用戶執行操作的操作記錄和/或所述用戶目前時刻所處環境的環境屬性資訊中的至少一種。
在本說明書中,伺服器可以結合多種維度的資訊,來確定出用戶所需的服務資訊,並推薦給用戶進行查看。這裡提到的多種維度的資訊大致可以分為兩類,一類可以歸結為是靜態資訊,另一類可以歸結為是動態資訊。
其中,這裡提到的靜態資訊可以是能夠有效表明用戶或是服務資訊固有特性,且不經常發生變化的資訊。例如,對於用戶的年齡、學歷、性別、住址等這些資訊來說,其發生變化的時間間隔通常較長,並且,這些資訊能夠有效的表徵出該用戶的一些固有特性。再例如,對於服務資訊來說,發佈該服務資訊的服務商所處的地區、該服務資訊的有效時間(一般來說,服務資訊一經發佈,其有效時間將不會發生變化)、發佈該服務資訊的服務商對應的店鋪數,該服務商的商家規模等資訊的變化週期通常較長,所以,服務資訊對應的這些固定資訊可以歸結為靜態資訊。
在本說明書中,用戶的固定資訊能夠在一定程度上有效的反映出用戶的實際需求、喜好、可能關注的資訊有哪些等情況。例如,對於不同年齡層的用戶來說,其關注的資訊往往差別較大,年齡較小的用戶往往更加關注一些時尚的話題,而年齡相對較大的用戶往往更加關注一些健康方面的話題。再例如,一個用戶的學歷程度,往往能夠在一定程度上反映出該用戶的收入狀況,對於學歷較低的用戶來說,其收入狀況往往較差,相對應的,學歷較高的用戶往往收入較高。而收入較低的用戶可能會更加關注一些商品促銷的資訊,而收入較高的用戶可能會更加關注一些高端商品的資訊。
透過上述示例可以看出,用戶的固定資訊,往往能夠在一定程度上反映出該用戶的實際需求、關注有些類資訊等情況,因此可以將用戶的固定資訊作為靜態資訊,用於確定向用戶推薦何種服務資訊。在本說明書中,用戶的固定資訊除了上述舉出的幾種示例外,還也可以包括諸如用戶執行過的業務的業務類別、信用度、會員積分等資訊,在此就不一一舉例說明了。
同理,在實際應用中,用戶青睞於何種服務資訊,往往也與服務資訊本身的一些固有特性有關。例如,對於一些知名服務商推薦的服務資訊,用戶往往更加的關注;再例如,不同服務商向用戶推薦的優惠券,其展示形式往往不同,有些服務商展示優惠券的模板較為新穎、絢麗,其展示的優惠券受歡迎的程度較高,相應的,領取優惠券的用戶人數也較多。而有些服務商展示優惠券的模板較為普通,無法有效的吸引用戶的目光,因此受歡迎程度較低,領取優惠券的用戶也相對較少。
因此,本說明書中,可以將各服務資訊對應的固定資訊作為靜態資訊,來確定哪種服務資訊更為受用戶歡迎,從而推薦給用戶。其中,這裡提到的各服務資訊對應的固定資訊除了上述幾種示例外,還可以是其他形式的資訊,例如,各服務資訊所對應的服務類別(如對於各餐廳來說,有些餐廳向用戶提供的是吃西餐的優惠券,而有些則是提供吃中餐的優惠券。因此,優惠券提供的是西餐優惠還是中餐優惠,則可以稱之為優惠券的服務類別。再例如,商場推出的購買服飾的優惠券和購買電子產品的優惠券所針對的優惠商品屬於不同的類別,因此,可以將優惠券提供的是服飾優惠還是電子產品優惠,稱之為優惠券的服務類別)、發佈各服務資訊的服務商的關注度等,在此就不進行詳細舉例說明了。
上述提到的動態資訊可以是指變化週期相對較短,且能夠對用戶的實際需求造成一定影響的資訊。例如,用戶在查看目前時刻各商家所推出的優惠券時,通常只會對離自身目前位置較近的商家所推出的優惠券較為感興趣。再例如,用戶身處境外查看一些境外景區的優惠券時,往往會結合目前的季節(與用戶的學歷、年齡等資訊相比,季節的變化週期相對較短),選擇適合在目前季節出行遊玩的景區的優惠券。
因此,在本說明書中,可以將用戶目前時刻所處環境的環境屬性資訊作為動態資訊,並以此為依據,確定出符合用戶實際需求的服務資訊並推薦給用戶。其中,這裡提到的用戶目前時刻所處環境的環境屬性資訊可以包括:目前時刻的天氣資訊、用戶目前時刻所處位置與各服務商之間的距離。
當然,除了上述舉例說明的幾種資訊外,這裡提到的環境屬性資訊也可以是其他形式的資訊,如,目前的月份、季節,節日資訊等,在此就不詳細舉例說明了。
對於各歷史服務資訊被各用戶執行操作的操作記錄來說,該操作記錄在過去一段時間內變化的週期通常較短,並且,透過該操作記錄,能夠側面的瞭解到用戶對各服務資訊的感興趣程度。例如,假設用戶透過手機,領取了10家餐廳提供的就餐優惠券,但是,實際使用的只有4家餐廳提供的就餐優惠券,而領取的其餘就餐優惠券則不進行使用。所以,從這一層面上,能夠有效的得出用戶可能對這4家餐廳的就餐環境、菜式、人均消費更容易接受,感興趣的程度較高,而對於其餘的6家餐廳來說,感興趣的程度則相對較低。
基於此,在本說明書中,可以將表徵用戶操作歷史服務資訊的操作狀況的操作記錄,用於確定何種服務資訊更為受用戶的歡迎,進入推薦給用戶。其中,這裡提到的操作記錄可以包括:各歷史服務資訊被給用戶執行瀏覽的次數、各歷史服務資訊被用戶執行使用操作的次數、各歷史服務資訊被用戶執行選取操作的次數等。例如,服務商發佈的優惠券被用戶點擊的次數、被用戶領取的次數、被用戶使用的次數等。而這裡提到的各歷史服務資訊被用戶執行瀏覽的次數,可以是指每個歷史服務資訊在過去一段時間內被各用戶瀏覽的總次數,也可以是指每個歷史服務資訊在過去的每個單位時間(如、一小時、一天等)中被瀏覽的次數。
同理,各歷史服務資訊被用戶執行使用操作(或選取操作)的次數也可以是指每個歷史服務資訊在過去一段時間內被各用戶執行使用操作(或選取操作)的總次數,或是在過去的每個單位時間中被執行使用操作(或選取操作)的次數。
需要說明的是,在本說明書中,對於用戶的固定資訊,伺服器可以根據用戶所註冊的用戶帳號,確定出用戶的固定資訊。同理,對於各服務資訊對應的固定資訊,伺服器也可以透過各服務商的帳號資訊進行確定。
而對於用戶目前時刻所處環境的環境屬性資訊來說,伺服器可以確定出目前時刻滿足預設觸發條件時,獲取該環境屬性資訊。例如,當伺服器監測到用戶透過該用戶的用戶帳號進行登錄時,則可以確定目前時刻滿足預設觸發條件,進而觸發獲取該用戶目前時刻所處環境的環境屬性資訊;再例如,當伺服器監測到目前時刻到達預設時刻時,則確定目前時刻滿足預設觸發條件,進而獲取該用戶目前時刻所處環境的環境屬性資訊。
對於上述提到的操作記錄來說,伺服器可以時刻記錄用戶操作服務資訊的操作狀況,並保存在相應的操作日誌中,以在後續過程中,透過保存的操作日誌中的操作記錄,確定向用戶推薦的服務資訊。例如,用戶透過終端查看到伺服器發送的優惠券時,伺服器可以對用戶對該優惠券所實施的操作進行記錄,記錄內容包括:用戶是否點擊瀏覽了該優惠券的詳細優惠資訊、是否領取了該優惠券、是否使用了該優惠券等。
伺服器在確定各服務資訊對應的固定資訊之前,可以透過預設的篩選方式,選取出一些備選服務資訊,而後,在進一步的確定出這些備選服務資訊對應的固定資訊,並在後續過程中,將確定出的固定資訊輸入到預先訓練的Wide&Deep模型中。其中,這裡提到的篩選備選服務資訊的方式可以有很多,例如,伺服器可以確定出用戶目前時刻所處的位置,進而將距離該位置設定距離內的各服務商所提供的優惠券作為備選服務資訊;再例如,伺服器可以確定出目前各服務商提供的優惠券的已領取數量,進而將已領取數量高出設定數量的優惠券作為備選服務資訊。
S102:將所述靜態資訊輸入到預先訓練的Wide&Deep模型中的Wide線性模型中,將所述動態資訊輸入到預先訓練的Wide&Deep模型中的Deep深度學習模型中,以得到所述Wide&Deep模型的輸出結果。
在本說明書中,伺服器可以透過預先訓練的Wide&Deep模型,來確定需要將哪些服務資訊推薦給用戶。其中,該Wide&Deep模型的一大特點是同時兼具記憶能力和泛化能力。所謂的記憶能力是指能夠透過歷史資料,推測出與歷史資料關聯性較強的資料。例如,伺服器透過用戶過去領取的優惠券的種類,向用戶推薦同種類的優惠券。而泛化能力是指可以透過歷史資料以及資料相關性的遷移,預測出之前幾乎從未出現過的新的資料。例如,伺服器透過用戶過去領取的優惠券的種類,分析出用戶可能對另一些種類的優惠券感興趣,進而推薦給用戶。其中,這裡提到的另一些種類可能是之前從未出現過的種類。
透過該Wide&Deep模型,可以在確保向用戶推薦符合用戶喜好的服務資訊的情況下,可以進一步增強服務資訊的多樣性,以給用戶提供更多的選擇,從而給用戶帶來了良好的用戶體驗。
伺服器確定出上述說明的靜態資訊和動態資訊後,可以將該靜態資訊輸入到該Wide&Deep模型中的Wide線性模型中,同時,將該動態資訊輸入到該Wide&Deep模型中的Deep深度學習模型中,以得到該Wide&Deep模型的輸出結果,如圖2所示。
圖2為本說明書提供的透過Wide&Deep模型對伺服器獲取到的靜態資訊和動態資訊進行處理,得到輸出結果的示意圖。
伺服器可以將獲取到的靜態資訊和動態資訊分別輸入到Wide&Deep模型中的Wide線性模型和Deep深度學習模型,而後,可以將這兩個模型輸出的結果進行加權求和,並將經過加權求和後得到的結果輸入到預設的損失函數中,最終得到該Wide&Deep模型的輸出結果。其中,這裡提到的損失函數沒有具體的限制。
其中,將上述靜態資訊輸入到Wide線性模型中,是為了能夠透過該靜態資訊以及利用該Wide模型所具備的記憶能力,綜合分析出用戶通常對哪些(或哪類)服務資訊較為感興趣。而將上述動態資訊輸入到Deep深度學習模型中,是為了能夠該動態資訊,以及利用該Deep深度學習模型所具備的泛化能力,綜合分析出用戶可能還會對哪些(哪類)服務資訊感興趣。換句話說,本說明書中認為,上述提到的幾種動態資訊具備能夠使Deep深度學習模型進行泛化分析的泛化條件。
上述Wide&Deep模型的輸出結果可以推薦評分的形式出現。具體的,伺服器將上述靜態資訊和動態資訊輸入到該Wide&Deep模型後,該Wide&Deep模型透過對這些資訊進行處理,可以得到針對各個服務資訊的推薦評分,以透過得到的推薦評分,確定出需要將哪些服務資訊推薦給該用戶。其中,這裡提到的各個服務資訊可以是所有服務商目前時刻提供的服務資訊,也可以是上述提到的備選服務資訊。
需要說明的是,在使用上述Wide&Deep模型之前,需要對該Wide&Deep模型進行訓練。其中,伺服器可以獲取歷史資料,並將獲取到的歷史資料拆分成訓練樣本和驗證樣本。可以透過該訓練樣本,對該Wide&Deep模型進行訓練,而後再透過該驗證樣本,對訓練後的Wide&Deep模型進行驗證。
上述提到的歷史資料可以是指:發佈在過去歷史中的若干歷史服務資訊對應的固定資訊、若干用戶的個人資訊、該若干用戶在過去歷史所處環境的環境屬性資訊以及該若干歷史服務資訊被各用戶執行操作的歷史操作記錄、該若干用戶實際選擇的服務資訊等。其中,這裡提到的若干用戶可以是伺服器隨意選取的,沒有具體的限制。
相應的,伺服器可以將發佈在過去歷史中的若干歷史服務資訊對應的固定資訊、若干用戶的個人資訊、該若干用戶在過去歷史所處環境的環境屬性資訊以及該若干歷史服務資訊被各用戶執行操作的歷史操作記錄這些資訊作為訓練樣本,而將該若干用戶實際選擇的服務資訊作為驗證樣本,以對該Wide&Deep模型進行訓練。
從時間維度上來說,伺服器選取出的這些驗證樣本可以是指發佈時間位於設定時間之後的歷史資料,而上述訓練樣本在可以是指發佈時間位於該設定時間之前的歷史資料。例如,假設伺服器可以將各服務商在A年3月中提供的各優惠券對應的固定資訊、N個用戶操作A年3月中各優惠券的操作記錄、N個用戶在A年3月中所處環境的環境屬性資訊以及這N個用戶的固定資訊作為訓練樣本。同時,伺服器可以將A年3月後的這N個用戶實際使用的各優惠券作為驗證樣本,以對該Wide&Deep模型進行訓練。這裡提到的A年3月即為該設定時間。這樣一來即實現了透過歷史資料預測未來資料的目的,從而提高了伺服器向用戶推薦的服務資訊的可用性。
在本說明書中,可以透過一定的評價方式,對該Wide&Deep模型的資訊推薦能力進行評價,並透過該評價方式,確定出該Wide&Deep模型到達預設的訓練目標時,將該Wide&Deep模型進行上線。其中,這裡提到的評價方式可以有多種,如,可以透過上述提到的訓練樣本和驗證樣本,來測試該Wide&Deep模型推薦服務資訊的準確率,當該Wide&Deep模型推薦服務資訊的準確率達到設定準確率時,則確定該Wide&Deep模型達到了預設的訓練目標。當然,也可以透過諸如常用的AUC模型評價指標等評價方式,來對該Wide&Deep模型進行評價,在此就不一一舉例說明了。
S104:根據所述輸出結果,確定推薦給所述用戶的服務資訊,並推薦給所述用戶。
伺服器得到上述輸出結果後,可以透過該輸出結果,確定出需要將哪些服務資訊推薦給該用戶,進而將確定出的這些服務資訊推薦給用戶進行瀏覽、操作。
具體的,伺服器透過該Wide&Deep模型確定出各服務資訊的推薦評分後,可以將不小於設定推薦評分的服務資訊推薦給用戶。當然,也可以透過其他的方式,確定出將哪些服務資訊推薦給用戶。例如,伺服器確定出各服務資訊的推薦評分後,可以按照各推薦評分,將各服務資訊進行排序,進而將排序在設定位置之前的服務資訊推薦給用戶。
從上述方法中可以看出,由於可以將諸如用戶的固定資訊、各服務資訊對應的固定資訊等靜態資訊,和用戶目前時刻所處環境的環境屬性資訊、各歷史服務資訊被各用戶執行操作的操作記錄等動態資訊相結合,以確定推薦給用戶的服務資訊,因此,相對於透過單一維度的資訊來確定向用戶推薦服務資訊的方式來說,能夠更加準確的向用戶推薦用戶實際所需的服務資訊,從而給用戶帶來了極大得到方便。
需要說明的是,在本說明書中,伺服器可以每過一段時間,即將該段時間的資訊(即上述提到能夠作為訓練樣本和驗證樣本的歷史資料)作為訓練樣本和驗證樣本,對該Wide&Deep模型進行訓練,並將訓練得到的Wide&Deep模型及時進行線上更新,以透過這種自動學習的方式保證Wide&Deep模型推薦服務資訊的準確性。例如,伺服器每過5天,即可將這5天中前4天的資訊作為訓練樣本,第5天的資訊作為驗證樣本,對該Wide&Deep模型進行訓練,以使訓練得到的Wide&Deep模型能夠盡可能的滿足用戶近期獲取服務資訊的需求。
以上為本說明書的一個或多個實施例提供的資訊推薦的方法,基於同樣的思路,本說明書還提供了相應的資訊推薦的裝置,如圖3所示。
圖3為本說明書提供的一種資訊推薦的裝置示意圖,具體包括:
資訊獲取模組301,獲取靜態資訊以及動態資訊,所述靜態資訊包括用戶的固定資訊和/或各服務資訊對應的固定資訊,所述動態資訊包括各歷史服務資訊被各用戶執行操作的操作記錄和/或所述用戶目前時刻所處環境的環境屬性資訊中的至少一種;
輸入模組302,將所述靜態資訊輸入到預先訓練的Wide&Deep模型中的Wide線性模型中,將所述動態資訊輸入到預先訓練的Wide&Deep模型中的Deep深度學習模型中,以得到所述Wide&Deep模型的輸出結果;
資訊推薦模組303,根據所述輸出結果,確定推薦給所述用戶的服務資訊,並推薦給所述用戶。
所述用戶的固定資訊包括:所述用戶的年齡、學歷、性別、住址、所述用戶執行業務的業務類別中的至少一種;
所述各服務資訊對應的固定資訊包括:發佈所述各服務資訊的各服務商所處的地區、所述各服務資訊的有效時間、所述各服務商對應的店鋪數、所述各服務商對應的商家規模中的至少一種;
所述用戶在目前時刻所處環境的環境屬性資訊包括:所述目前時刻的天氣資訊、所述用戶在目前時刻所處的位置與所述各服務商之間的距離中的至少一種;
所述操作記錄包括:各歷史服務資訊被各用戶執行瀏覽的次數、各歷史服務資訊被用戶執行使用操作的次數、各歷史服務資訊被用戶執行選取操作的次數中的至少一種。
所述Wide&Deep模型的輸出結果包括:所述Wide&Deep模型針對所述各服務資訊得出的推薦評分;
所述資訊推薦模組303,將不小於設定推薦評分的服務資訊推薦給所述用戶。
所述裝置還包括:
訓練模組304,將歷史資料拆分成訓練樣本和驗證樣本;透過所述訓練樣本對所述Wide&Deep模型進行訓練,並透過所述驗證樣本對訓練後的Wide&Deep模型進行驗證。
所述訓練模組304,將位於設定時間之前的歷史資料作為訓練樣本,將位於所述設定時間之後的歷史資料作為驗證樣本。
所述服務資訊包括:優惠券。
基於上述說明的資訊推薦的方法,本說明書還對應提供了一種用於資訊推薦的設備,如圖4所示。該設備包括一個或多個記憶體以及處理器,所述記憶體儲存程式,並且被配置成由所述一個或多個處理器執行以下步驟:
獲取靜態資訊以及動態資訊,所述靜態資訊包括用戶的固定資訊和/或各服務資訊對應的固定資訊,所述動態資訊包括各歷史服務資訊被各用戶執行操作的操作記錄和/或所述用戶目前時刻所處環境的環境屬性資訊中的至少一種;
將所述靜態資訊輸入到預先訓練的Wide&Deep模型中的Wide線性模型中,將所述動態資訊輸入到預先訓練的Wide&Deep模型中的Deep深度學習模型中,以得到所述Wide&Deep模型的輸出結果;
根據所述輸出結果,確定推薦給所述用戶的服務資訊,並推薦給所述用戶。
在本說明書的一個或多個實施例中,可以獲取靜態資訊和動態資訊,其中,該靜態資訊包括用戶的固定資訊和/或各服務資訊對應的固定資訊,動態資訊包括各歷史服務資訊被各用戶執行操作的操作記錄和/或該用戶目前時刻所處環境的環境屬性資訊中的至少一種。而後,可以將獲取到的靜態資訊輸入到預先訓練的Wide&Deep模型中的Wide線性模型中,將獲取到的動態資訊輸入到該Wide&Deep模型中的Deep深度學習模型中,以得到Wide&Deep模型的輸入結果,進而根據該輸出結果,確定出推薦給該用戶的服務資訊,並推薦給該用戶。
從上述方法中可以看出,由於可以將諸如用戶的固定資訊、各服務資訊對應的固定資訊等靜態資訊,和用戶目前時刻所處環境的環境屬性資訊、各歷史服務資訊被各用戶執行操作的操作記錄等動態資訊相結合,以確定推薦給用戶的服務資訊,因此,相對於透過單一維度的資訊來確定向用戶推薦服務資訊的方式來說,能夠更加準確的向用戶推薦用戶實際所需的服務資訊,從而給用戶帶來了極大得到方便。
在20世紀90年代,對於一個技術的改進可以很明顯地區分是硬體上的改進(例如,對二極體、電晶體、開關等電路結構的改進)還是軟體上的改進(對於方法流程的改進)。然而,隨著技術的發展,當今的很多方法流程的改進已經可以視為硬體電路結構的直接改進。設計人員幾乎都透過將改進的方法流程程式化到硬體電路中來得到相應的硬體電路結構。因此,不能說一個方法流程的改進就不能用硬體實體模組來實現。例如,可程式化邏輯器件(Programmable Logic Device, PLD)(例如現場可程式化閘陣列(Field Programmable Gate Array, FPGA))就是這樣一種積體電路,其邏輯功能由用戶對器件程式化來確定。由設計人員自行程式化來把一個數位系統“整合”在一片PLD上,而不需要請晶片製造廠商來設計和製作專用的積體電路晶片。而且,如今,取代手工地製作積體電路晶片,這種程式化也多半改用“邏輯編譯器(logic compiler)”軟體來實現,它與程式開發撰寫時所用的軟體編譯器相類似,而要編譯之前的原始碼也得用特定的程式化語言來撰寫,此稱之為硬體描述語言(Hardware Description Language, HDL),而HDL也並非僅有一種,而是有許多種,如ABEL (Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL (Cornell University Programming Language)、HDCal、JHDL (Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)與Verilog。本領域技術人員也應該清楚,只需要將方法流程用上述幾種硬體描述語言稍作邏輯程式化並程式化到積體電路中,就可以很容易得到實現該邏輯方法流程的硬體電路。
控制器可以按任何適當的方式實現,例如,控制器可以採取例如微處理器或處理器以及儲存可由該(微)處理器執行的電腦可讀程式碼(例如軟體或韌體)的電腦可讀媒體、邏輯閘、開關、專用積體電路(Application Specific Integrated Circuit, ASIC)、可程式化邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限於以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,記憶體控制器還可以被實現為記憶體的控制邏輯的一部分。本領域技術人員也知道,除了以純電腦可讀程式碼方式實現控制器以外,完全可以透過將方法步驟進行邏輯程式化來使得控制器以邏輯閘、開關、專用積體電路、可程式化邏輯控制器和嵌入微控制器等的形式來實現相同功能。因此這種控制器可以被認為是一種硬體部件,而對其內包括的用於實現各種功能的裝置也可以視為硬體部件內的結構。或者甚至,可以將用於實現各種功能的裝置視為既可以是實現方法的軟體模組又可以是硬體部件內的結構。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦。具體的,電腦例如可以為個人電腦、膝上型電腦、蜂窩電話、相機電話、智慧電話、個人數位助理、媒體播放器、導航設備、電子郵件設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任何設備的組合。
為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本說明書時可以把各單元的功能在同一個或多個軟體和/或硬體中實現。
本領域內的技術人員應明白,本說明書的實施例可提供為方法、系統、或電腦程式產品。因此,本說明書可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本說明書可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
本說明書是參照根據本說明書一個或多個實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方塊圖來描述的。應理解可由電腦程式指令實現流程圖和/或方塊圖中的每一流程和/或方塊、以及流程圖和/或方塊圖中的流程和/或方塊的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可程式化資料處理設備的處理器以產生一個機器,使得透過電腦或其他可程式化資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的裝置。
這些電腦程式指令也可儲存在能引導電腦或其他可程式化資料處理設備以特定方式工作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可程式化資料處理設備上,使得在電腦或其他可程式化設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可程式化設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非揮發性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒體的示例。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式化唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁碟儲存或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒體不包括暫存電腦可讀媒體(transitory media),如調變的資料信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本說明書可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的例程、程式、對象、組件、資料結構等等。也可以在分布式計算環境中實踐本說明書的一個或多個實施例,在這些分散式計算環境中,由透過通信網路而被連接的遠端處理設備來執行任務。在分散式計算環境中,程式模組可以位於包括儲存設備在內的本地和遠端電腦儲存媒體中。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於系統實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
上述對本說明書特定實施例進行了描述。其它實施例在所附申請專利範圍的範圍內。在一些情況下,在申請專利範圍中記載的動作或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在圖式中描繪的過程不一定要求示出的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多任務處理和並行處理也是可以的或者可能是有利的。
以上所述僅為本說明書的一個或多個實施例而已,並不用於限制本說明書。對於本領域技術人員來說,本說明書的一個或多個實施例可以有各種更改和變化。凡在本說明書的一個或多個實施例的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本說明書的申請專利範圍的範疇之內。 In order to make those skilled in the art better understand the technical solutions in one or more embodiments of this specification, the following will combine the drawings in one or more embodiments of this specification to describe the technical solutions in one or more embodiments of this specification. The technical solutions are described clearly and completely. Obviously, the described embodiments are only a part of the embodiments of the present specification, rather than all the embodiments. Based on the embodiments in this specification, all other embodiments obtained by persons of ordinary skill in the art without creative efforts shall fall within the protection scope of this specification. In this specification, the execution body of the above-mentioned information recommendation method may be a server or a terminal device. For the convenience of description, the following will only take the server as the execution body to describe the information recommendation method provided in this specification. . FIG. 1 is a schematic diagram of a process of information recommendation provided in this specification, which specifically includes the following steps: S100: Acquire static information and dynamic information, where the static information includes fixed information of the user and/or fixed information corresponding to each service information, and the dynamic information The information includes at least one of operation records of the historical service information performed by each user and/or environmental attribute information of the environment where the user is currently located. In this specification, the server can combine information of various dimensions to determine the service information required by the user, and recommend it to the user for viewing. The information of various dimensions mentioned here can be roughly divided into two categories, one can be attributed to static information, and the other can be attributed to dynamic information. Among them, the static information mentioned here can be information that can effectively indicate the inherent characteristics of user or service information and does not change frequently. For example, for such information as the user's age, education, gender, address, etc., the time interval between changes is usually long, and these information can effectively represent some inherent characteristics of the user. For another example, for service information, the region where the service provider that publishes the service information is located, the effective time of the service information (generally, once the service information is released, its effective time will not change), and the service information is published. The change cycle of information such as the number of stores corresponding to the information service provider, the size of the service provider's merchants, etc. is usually long, so the fixed information corresponding to the service information can be attributed to static information. In this manual, the user's fixed information can effectively reflect the user's actual needs, preferences, and information that may be concerned to a certain extent. For example, for users of different ages, the information they pay attention to is often quite different. Younger users tend to pay more attention to some fashion topics, while relatively older users tend to pay more attention to some health topics. For another example, a user's education level can often reflect the user's income status to a certain extent. For users with lower education levels, their income status is often poor. Correspondingly, users with higher education levels tend to have higher income. high. Users with lower incomes may pay more attention to information about some product promotions, while users with higher incomes may pay more attention to information about some high-end products. From the above example, it can be seen that the user's fixed information can often reflect the user's actual needs to a certain extent, pay attention to some types of information, etc. Therefore, the user's fixed information can be used as static information to determine the recommendation to the user. What kind of service information. In this specification, in addition to the above-mentioned examples, the fixed information of the user may also include information such as the business category, credit rating, and member points of the business performed by the user, which will not be illustrated here. Similarly, in practical applications, what kind of service information users prefer is often related to some inherent characteristics of the service information itself. For example, users tend to pay more attention to the service information recommended by some well-known service providers; for another example, the coupons recommended by different service providers to users are often displayed in different forms. The coupons displayed are more popular, and accordingly, the number of users who receive coupons is also relatively large. However, some service providers display coupon templates that are relatively common and cannot effectively attract the attention of users, so their popularity is low, and there are relatively few users who receive coupons. Therefore, in this specification, the fixed information corresponding to each service information can be regarded as static information to determine which service information is more popular with users, so as to recommend them to users. Among them, the fixed information corresponding to each service information mentioned here can also be other forms of information in addition to the above examples, for example, the service category corresponding to each service information (for example, for each restaurant, some restaurants provide users with information) Provides coupons for western food, while some provide coupons for Chinese food. Therefore, whether the coupons provide discounts for western food or Chinese food can be called the service category of coupons. For another example, the shopping mall launched The coupons for clothing purchases and the coupons for purchasing electronic products belong to different categories. Therefore, the coupons can provide clothing discounts or electronic product discounts, which is called the service category of coupons), publish various discounts. The attention of the service provider of the service information, etc., will not be described in detail here. The dynamic information mentioned above may refer to information that has a relatively short change period and can have a certain impact on the actual needs of users. For example, when a user checks the coupons offered by various merchants at the current moment, he is usually only interested in coupons offered by businesses that are closer to the user's current location. For another example, when a user is abroad to view coupons for some overseas scenic spots, he will often combine the current season (compared with the user's educational background, age and other information, the seasonal change cycle is relatively short), and choose a suitable choice for travel and play in the current season. scenic coupons. Therefore, in this specification, the environmental attribute information of the environment where the user is currently located can be used as dynamic information, and based on this, service information that meets the actual needs of the user can be determined and recommended to the user. Wherein, the environmental attribute information of the environment where the user is located at the current moment mentioned here may include: weather information at the current moment, and the distance between the current location of the user and each service provider. Of course, in addition to the several kinds of information described above, the environmental attribute information mentioned here can also be other forms of information, such as the current month, season, festival information, etc., which will not be exemplified in detail here. For the operation records of the historical service information performed by each user, the change period of the operation record in the past period of time is usually short, and through the operation record, it is possible to understand the user's perception of each service information from the side. level of interest. For example, suppose a user has received dining coupons provided by 10 restaurants through a mobile phone, but only the dining coupons provided by 4 restaurants are actually used, and the rest of the dining coupons received are not used. Therefore, from this level, it can be effectively concluded that users may be more receptive to the dining environment, dishes, and per capita consumption of these 4 restaurants, and have a higher degree of interest, while for the remaining 6 restaurants, The level of interest is relatively low. Based on this, in this specification, the operation record representing the operation status of the user's operation history service information can be used to determine which service information is more popular with the user, and be recommended to the user. The operation records mentioned here may include: the number of times each historical service information is browsed to the user, the number of times each historical service information is used by the user, the number of times each historical service information is selected by the user, and the like. For example, the number of times the coupons issued by the service provider are clicked by the user, the number of times the coupon is received by the user, the number of times the coupon is used by the user, etc. The number of times that each historical service information is browsed by users mentioned here may refer to the total number of times that each historical service information is browsed by each user in the past period of time, or it may refer to each historical service information in the past. The number of views in a unit time (eg, one hour, one day, etc.). Similarly, the number of times each historical service information is used (or selected) by users may also refer to the total number of times each historical service information is used (or selected) by each user in the past period of time, or The number of times the use operation (or selection operation) was performed in each unit time in the past. It should be noted that, in this specification, regarding the user's fixed information, the server may determine the user's fixed information according to the user account registered by the user. Similarly, for the fixed information corresponding to each service information, the server may also use the account information of each service provider to determine. As for the environmental attribute information of the environment where the user is currently located, the server can obtain the environmental attribute information when it is determined that the current moment satisfies the preset trigger condition. For example, when the server detects that the user logs in through the user account of the user, it can determine that the preset trigger condition is met at the current moment, and then trigger the acquisition of the environmental attribute information of the environment in which the user is currently located; for another example, when the server When it is monitored that the current time reaches the preset time, it is determined that the current time meets the preset trigger condition, and then the environmental attribute information of the environment where the user is located at the current time is obtained. For the above-mentioned operation records, the server can record the operation status of the user's operation service information at all times, and save it in the corresponding operation log, so that in the subsequent process, through the operation records in the saved operation log, determine the direction of the operation. User-recommended service information. For example, when the user views the coupon sent by the server through the terminal, the server can record the operation performed by the user on the coupon, and the record content includes: whether the user clicks to browse the detailed preferential information of the coupon, whether to receive the coupon the coupon, whether the coupon has been used, etc. Before determining the fixed information corresponding to each service information, the server can select some alternative service information through a preset screening method, and then further determine the fixed information corresponding to these alternative service information, and in the subsequent process , input the determined fixed information into the pre-trained Wide&Deep model. Among them, there can be many ways to filter the alternative service information mentioned here. For example, the server can determine the current location of the user, and then use the coupons provided by various service providers within a set distance from the location as the Alternative service information; for another example, the server may determine the number of coupons that have been received currently provided by each service provider, and then use coupons with a number of coupons that have been received that are higher than the set number as the alternative service information. S102: Input the static information into the Wide linear model in the pre-trained Wide&Deep model, input the dynamic information into the Deep deep learning model in the pre-trained Wide&Deep model, to obtain the output result of the Wide&Deep model . In this specification, the server can determine which service information needs to be recommended to the user through the pre-trained Wide&Deep model. Among them, a major feature of the Wide&Deep model is that it has both memory ability and generalization ability at the same time. The so-called memory ability refers to the ability to infer data that is strongly related to historical data through historical data. For example, the server recommends the same type of coupons to the user according to the types of the coupons that the user has received in the past. The generalization ability refers to the ability to predict new data that has almost never appeared before through the migration of historical data and data correlation. For example, the server analyzes the types of coupons that the user has received in the past, analyzes that the user may be interested in other types of coupons, and then recommends them to the user. Among them, other species mentioned here may be species that have never appeared before. Through the Wide&Deep model, the diversity of service information can be further enhanced to provide users with more choices while ensuring that service information that meets user preferences is recommended to users, thereby bringing users a good user experience. After the server determines the static information and dynamic information described above, it can input the static information into the Wide linear model in the Wide&Deep model, and at the same time, input the dynamic information into the Deep deep learning model in the Wide&Deep model, To get the output of the Wide&Deep model, as shown in Figure 2. FIG. 2 is a schematic diagram of processing the static information and dynamic information obtained by the server through the Wide&Deep model provided in this specification to obtain an output result. The server can input the obtained static information and dynamic information into the Wide linear model and the Deep deep learning model in the Wide&Deep model respectively, and then the results output by the two models can be weighted and summed, and the weighted summation can be performed. The obtained result is then input into the preset loss function, and finally the output result of the Wide&Deep model is obtained. Among them, the loss functions mentioned here have no specific restrictions. The purpose of inputting the above static information into the Wide linear model is to comprehensively analyze which (or which type) of service information the user is usually interested in through the static information and the memory capability of the Wide model. The purpose of inputting the above dynamic information into the Deep deep learning model is to comprehensively analyze which (what kind of) service information the user may feel about the dynamic information and the generalization ability of the Deep deep learning model. interest. In other words, it is considered in this specification that the above-mentioned types of dynamic information have generalization conditions that enable the Deep learning model to perform generalization analysis. The output of the above Wide&Deep model can appear in the form of recommendation scores. Specifically, after the server inputs the above-mentioned static information and dynamic information into the Wide&Deep model, the Wide&Deep model can obtain a recommendation score for each service information by processing the information, so as to determine the need to Which service information is recommended to this user. Wherein, each service information mentioned here may be the service information currently provided by all service providers, or may be the above-mentioned alternative service information. It should be noted that, before using the above Wide&Deep model, the Wide&Deep model needs to be trained. Among them, the server can obtain historical data, and split the obtained historical data into training samples and verification samples. The Wide&Deep model can be trained through the training sample, and then the trained Wide&Deep model can be verified through the verification sample. The above-mentioned historical data may refer to: fixed information corresponding to several historical service information published in the past history, personal information of several users, environmental attribute information of the environment where the several users were located in the past history, and several historical service information The historical operation records of the operations performed by each user, the service information actually selected by the several users, etc. Among them, several users mentioned here can be randomly selected by the server, and there is no specific limitation. Correspondingly, the server can transfer the fixed information corresponding to several historical service information published in the past history, the personal information of several users, the environmental attribute information of the environment where the several users were located in the past history, and the several historical service information by each user. The historical operation record of the execution operation records these information as training samples, and the service information actually selected by the plurality of users is used as verification samples to train the Wide&Deep model. In terms of time dimension, the verification samples selected by the server may refer to the historical data whose publishing time is after the set time, and the above-mentioned training samples may refer to the historical data whose publishing time is before the set time. For example, suppose that the server can store the fixed information corresponding to each coupon provided by each service provider in March of year A, the operation records of N users operating each coupon in March of year A, and the operation records of N users in March of year A. The environmental attribute information of the environment in which N and the fixed information of the N users are used as training samples. At the same time, the server can use the coupons actually used by the N users after March of year A as verification samples to train the Wide&Deep model. The March of year A mentioned here is the set time. In this way, the purpose of predicting future data through historical data is achieved, thereby improving the availability of service information recommended by the server to the user. In this specification, the information recommendation ability of the Wide&Deep model can be evaluated through a certain evaluation method, and through the evaluation method, when it is determined that the Wide&Deep model reaches the preset training target, the Wide&Deep model is launched. Among them, there are various evaluation methods mentioned here. For example, the accuracy of the recommended service information of the Wide&Deep model can be tested through the training samples and verification samples mentioned above. When the accuracy of the recommended service information of the Wide&Deep model reaches the set value When the accuracy rate is reached, it is determined that the Wide&Deep model has reached the preset training target. Of course, the Wide&Deep model can also be evaluated through evaluation methods such as the commonly used AUC model evaluation index, which will not be illustrated here. S104: Determine the service information recommended to the user according to the output result, and recommend it to the user. After the server obtains the above output result, it can determine which service information needs to be recommended to the user through the output result, and then recommend the determined service information to the user for browsing and operation. Specifically, after determining the recommendation score of each service information through the Wide&Deep model, the server can recommend the service information not less than the set recommendation score to the user. Of course, other methods may also be used to determine which service information is recommended to the user. For example, after determining the recommendation score of each service information, the server may sort each service information according to each recommendation score, and then recommend the service information ranked before the set position to the user. It can be seen from the above method that static information such as the user's fixed information, fixed information corresponding to each service information, the environmental attribute information of the environment where the user is currently located, and the historical service information operated by each user can be combined. Operation records and other dynamic information are combined to determine the service information recommended to the user. Therefore, compared with the method of recommending service information to the user through a single dimension of information, it can more accurately recommend the user's actual needs to the user. Service information, which brings great convenience to users. It should be noted that, in this specification, the server can use the information of this period of time (that is, the above-mentioned historical data that can be used as training samples and verification samples) as training samples and verification samples every time. The model is trained, and the trained Wide&Deep model is updated online in time to ensure the accuracy of the Wide&Deep model recommendation service information through this automatic learning method. For example, every 5 days, the server can use the information of the first 4 days of the 5 days as a training sample, and the information of the 5th day as a verification sample to train the Wide&Deep model, so that the trained Wide&Deep model can fully It is possible to meet the needs of users to obtain service information in the near future. The information recommendation method provided above in one or more embodiments of this specification is based on the same idea, and this specification also provides a corresponding information recommendation apparatus, as shown in FIG. 3 . 3 is a schematic diagram of a device for information recommendation provided by this specification, which specifically includes: an information acquisition module 301, which acquires static information and dynamic information, where the static information includes fixed information of a user and/or fixed information corresponding to each service information, The dynamic information includes at least one of the operation records of the historical service information performed by each user and/or the environmental attribute information of the environment where the user is currently located; the input module 302 inputs the static information into the In the Wide linear model in the Wide&Deep model of training, the dynamic information is input into the Deep deep learning model in the Wide&Deep model of pre-training, to obtain the output result of the Wide&Deep model; Information recommendation module 303, according to the The result is output, the service information recommended to the user is determined, and the service information is recommended to the user. The fixed information of the user includes: at least one of the user's age, education, gender, address, and the business category of the business performed by the user; the fixed information corresponding to each service information includes: publishing the each service information At least one of the region where each service provider is located, the effective time of each service information, the number of stores corresponding to each service provider, and the scale of merchants corresponding to each service provider; the location of the user at the current moment The environmental attribute information of the environment includes: at least one of the weather information at the current moment and the distance between the user's current position and each service provider; the operation record includes: each historical service information At least one of the number of times of browsing performed by each user, the number of times that each historical service information has been used by the user, and the number of times that each historical service information has been selected by the user. The output results of the Wide&Deep model include: recommendation scores obtained by the Wide&Deep model for the respective service information; the information recommendation module 303 recommends service information not less than the set recommendation score to the user. The device further includes: a training module 304, which splits historical data into training samples and verification samples; trains the Wide&Deep model through the training samples, and verifies the trained Wide&Deep model through the verification samples . The training module 304 takes the historical data before the set time as the training sample, and the historical data after the set time as the verification sample. The service information includes: coupons. Based on the information recommendation method described above, this specification also provides a device for information recommendation, as shown in FIG. 4 . The device includes one or more memories and processors, the memories storing programs, and configured to perform the following steps by the one or more processors: obtaining static information and dynamic information, the static information including the user The fixed information and/or the fixed information corresponding to each service information, the dynamic information includes at least one of the operation records of each historical service information performed by each user and/or the environmental attribute information of the environment in which the user is currently located. The static information is input in the Wide linear model in the Wide&Deep model of pre-training, the dynamic information is input in the Deep deep learning model in the Wide&Deep model of pre-training, to obtain the output result of the Wide&Deep model; According to the output result, the service information recommended to the user is determined and recommended to the user. In one or more embodiments of this specification, static information and dynamic information can be acquired, wherein the static information includes fixed information of the user and/or fixed information corresponding to each service information, and the dynamic information includes the historical service information At least one of the operation record of the operation performed by the user and/or the environmental attribute information of the environment in which the user is currently located. Then, the obtained static information can be input into the Wide linear model in the pre-trained Wide&Deep model, and the obtained dynamic information can be input into the Deep deep learning model in the Wide&Deep model, so as to obtain the input result of the Wide&Deep model, Further, according to the output result, the service information recommended to the user is determined and recommended to the user. It can be seen from the above method that static information such as the user's fixed information, fixed information corresponding to each service information, the environmental attribute information of the environment where the user is currently located, and the historical service information operated by each user can be combined. Operation records and other dynamic information are combined to determine the service information recommended to the user. Therefore, compared with the method of recommending service information to the user through a single dimension of information, it can more accurately recommend the user's actual needs to the user. Service information, which brings great convenience to users. In the 1990s, an improvement in a technology could be clearly distinguished as a hardware improvement (for example, improvements to circuit structures such as diodes, transistors, switches, etc.) or software improvements (for methods and procedures) Improve). However, with the development of technology, the improvement of many methods and processes today can be regarded as a direct improvement of the hardware circuit structure. Designers almost get the corresponding hardware circuit structure by programming the improved method flow into the hardware circuit. Therefore, it cannot be said that the improvement of a method process cannot be achieved by hardware entity modules. For example, a Programmable Logic Device (PLD) (eg, Field Programmable Gate Array (FPGA)) is an integrated circuit whose logic function is determined by the user programming the device. It is programmed by the designer to "integrate" a digital system on a PLD without the need for a chip manufacturer to design and fabricate a dedicated integrated circuit chip. Moreover, instead of hand-making integrated circuit chips, this programming is now mostly accomplished using "logic compiler" software, which is similar to the software compilers used for programming, but requires The source code before compilation must also be written in a specific programming language, which is called Hardware Description Language (HDL), and there is not only one HDL, but many kinds, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, RHDL (Ruby Hardware Description Language), etc., The most commonly used are VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog. It should also be clear to those skilled in the art that a hardware circuit that implements the logic method process can be easily obtained by simply programming the method process into an integrated circuit using the above-mentioned several hardware description languages. The controller may be implemented in any suitable manner, for example, the controller may take the form of, for example, a microprocessor or processor and a computer readable code (eg software or firmware) storing computer readable program code (eg software or firmware) executable by the (micro)processor Forms of media, logic gates, switches, Application Specific Integrated Circuits (ASICs), programmable logic controllers and embedded microcontrollers, examples of controllers include but are not limited to the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20 and Silicon Labs C8051F320, the memory controller can also be implemented as part of the memory control logic. Those skilled in the art also know that, in addition to implementing the controller in the form of pure computer-readable code, the controller can be controlled by logic gates, switches, dedicated integrated circuits, and programmable logic by logically programming the method steps. The same function can be realized in the form of a device and an embedded microcontroller. Therefore, the controller can be regarded as a hardware component, and the devices for realizing various functions included in the controller can also be regarded as a structure in the hardware component. Or even, the means for implementing various functions can be regarded as both a software module for implementing the method and a structure within a hardware component. The systems, devices, modules or units described in the above embodiments may be specifically implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer. Specifically, the computer can be, for example, a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or A combination of any of these devices. For the convenience of description, when describing the above device, the functions are divided into various units and described respectively. Of course, when implementing this specification, the functions of each unit may be implemented in one or more software and/or hardware. As will be appreciated by one skilled in the art, the embodiments of this specification may be provided as a method, system, or computer program product. Accordingly, this description may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this specification may take the form of a computer program product implemented on one or more computer-usable storage media (including, but not limited to, disk memory, CD-ROM, optical memory, etc.) having computer-usable code embodied therein . The specification is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to one or more embodiments of the specification. It will be understood that each process and/or block in the flowchart illustrations and/or block diagrams, and combinations of processes and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to the processor of a general purpose computer, special purpose computer, embedded processor or other programmable data processing device to produce a machine for execution of the instructions by the processor of the computer or other programmable data processing device Means are created for implementing the functions specified in the flow or flows of the flowcharts and/or the blocks or blocks of the block diagrams. These computer program instructions may also be stored in computer readable memory capable of directing a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction means , the instruction means implement the functions specified in the flow or flow of the flowchart and/or the block or blocks of the block diagram. These computer program instructions can also be loaded onto a computer or other programmable data processing device, such that a series of operational steps are performed on the computer or other programmable device to produce a computer-implemented process that can be executed on the computer or other programmable device. The instructions executed on the above provide steps for implementing the functions specified in the flow diagram flow or flow diagrams and/or the block diagram flow diagram block or blocks. In a typical configuration, a computing device includes one or more processors (CPUs), an input/output interface, a network interface, and memory. Memory may include non-persistent memory, random access memory (RAM), and/or non-volatile memory in the form of computer-readable media, such as read-only memory (ROM) or flash memory. RAM). Memory is an example of a computer-readable medium. Computer-readable media includes both permanent and non-permanent, removable and non-removable media, and can be implemented by any method or technology for storage of information. Information can be computer readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM) , Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Flash Memory or Other Memory Technologies, CD-ROM Read-Only Memory (CD-ROM), Digital Versatile A compact disc (DVD) or other optical storage, magnetic cassette tape, magnetic tape disk storage or other magnetic storage device or any other non-transmission medium may be used to store information that can be accessed by a computing device. As defined herein, computer-readable media does not include transitory computer-readable media, such as modulated data signals and carrier waves. It should also be noted that the terms "comprising", "comprising" or any other variation thereof are intended to encompass a non-exclusive inclusion such that a process, method, article or device comprising a series of elements includes not only those elements, but also Other elements not expressly listed, or which are inherent to such a process, method, article of manufacture, or apparatus are also included. Without further limitation, an element qualified by the phrase "comprising a..." does not preclude the presence of additional identical elements in the process, method, article of manufacture, or device that includes the element. This specification may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. One or more embodiments of this specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may reside in local and remote computer storage media, including storage devices. Each embodiment in this specification is described in a progressive manner, and the same and similar parts between the various embodiments may be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, as for the system embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and for related parts, please refer to the partial descriptions of the method embodiments. The foregoing describes specific embodiments of the present specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims can be performed in a different order than in the embodiments and still achieve desirable results. Additionally, the processes depicted in the figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous. The above descriptions are merely one or more embodiments of the present specification, and are not intended to limit the present specification. Various modifications and variations of the one or more embodiments of this specification are possible for those skilled in the art. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of one or more embodiments of this specification should be included within the scope of the patentable scope of this specification.