從零開始接入騰訊雲智能推薦


歡迎大家前往騰訊雲技術社區,獲取更多騰訊海量技術實踐干貨哦~

作者:安斌 

導語: 由於信息過載,推薦系統基本成為互聯網產品的標配, 如何快速的讓自己的產品具有推薦的能力呢?稀缺專業人員投入、用戶數據積累、用戶冷啟動問題等等都是自建推薦系統必須跨越的障礙。本文介紹如何接入騰訊雲智能推薦, 快速獲得上百人專業算法團隊、二十億+用戶畫像、幾乎覆蓋全部網民的推薦系統能力。

本文介紹如何使用豆瓣圖書的openAPI抓取圖書信息,上報圖書信息、用戶瀏覽點擊行為到騰訊雲智能推薦系統,通過API獲取推薦結果。主要的步驟包括:

  1. 物料准備;

  2. 物料上報;

  3. 場景id申請;

  4. 獲取推薦結果;

  5. 用戶行為上報;

1. 物料准備

首先介紹下什么物料, 物料就是我們需要推薦的物品。推薦系統通過物料的屬性、用戶和場景的屬性以及用戶的歷史行為,生產推薦結果。

為了方便的獲取物料屬性,這里我們使用douban圖書API獲取圖書的基本信息。Api參考:https://developers.douban.com/wiki/?title=book_v2

其中,重要的信息包括:

  • isbn13: 可以作為圖書物料的唯一標識;

  • title/author/pubisher: 與圖書相關的重要信息;

  • rating: 用戶評分;

  • tags: 圖書的標簽;

  • price: 價格

接下來, 我們購買主機和CDB,使用python腳本遍歷豆瓣圖書api,我們將感興趣的屬性記錄到db中, 獲得原始的物料庫,如下表所示:

2. 物料上報:

步驟1我們已經獲取到了物料庫, 接下來通過騰訊雲智能推薦item上報API上報物料,API詳情參考API文檔。

物料上報協議中, 重要的字段包括:

  • item_id:物料唯一標識, 推薦結果將返回物料id, 暫時不支持中文; 圖書推薦使用圖書的唯一標號isbn13作為item_id;

  • pool_id: 自定義物料池, 物料池將物料分類,在獲取推薦結果時,可以指定在哪個物料池獲取推薦結果, 適配不同的產品場景。同一個物品可以屬於多個物料池; 本示例中, 所有物品都可以出現在任意場景下, 所以, 物料沒有指定物料池, 需要分物料池時, 可以添加物料池分類, 重新上傳物料信息。

  • tags: 物料的標簽, 是物品推薦使用的關鍵屬性,可以使用物品的標簽描述、分級類目名、品牌等等信息, 越詳細的信息, 對推薦結果越有幫助。 同時, 每個物品的描述應該具有可區分性,在給用戶推薦時,如果每個物品都具有相同的tag, 那么, 推薦系統將無法通過這個tag,區分出當前用戶對每個物品的喜好, 也就沒法產生有效的推薦,所以tag的描述盡量准確、具有區分性。本示例中,標簽使用douban提供的tags;

物料上報協議如下所示:

{

       'data_type': 1,

       'tags': u'\u9c81\u8fc5,\u4e2d\u56fd\u6587\u5b66....',

       'bid': 'b_teg_openrecom_xxxx,

       'describe': u '\u9c81\u8fc5\u5168\u96c6(2)',

       'free': 0,

       'item_id': u '9787020015252',

       'MD5': '8764084918781ab51493eaf43e6d0166',

       'url': u 'https://book.douban.com/subject/1002055/',

       'publish': 1,

       'platform': 1,

       'score': 9.5,

       'request_id': '1488358987',

       'vender': u '\u4eba\u6c11\u6587\u5b66\u51fa\u7248\u793e',

       'price': 31.75

}

 

3. 場景id申請:

智能推薦的所有行為都是圍繞場景展開的, 首先上傳適合當前場景的物料,接下來, 拉取當前場景下對用戶的推薦結果;再上報用戶在當前場景的流量、點擊、轉換等行為數據, 修正推薦結果。 場景可以理解為產品的一個推薦位, 比如很多產品有猜你喜歡的欄目。

可以在騰訊雲官網智能推薦控制台創建場景, 獲得場景id。 本文規划兩個場景: 首頁推薦和詳情頁推薦,申請兩個場景id。

4. 獲取推薦結果:

物料庫上報以后, 就可以通過用戶id從物料庫中生成推薦結果了。這里使用請求服務接口。注意, 請求服務的地址與物料上報、行為上報地址不同。重要的字段包括:

  • scene_id: 場景id, 步驟3申請的bid;

  • pool_id: 物料池編碼, 指定在特定的物料池中選擇推薦結果; 如果不指定, 默認在全部物料中選擇;

  • cid: 當前頁面物料id, 用於詳情頁獲取推薦的場景,cid使用當前物料id。 在本示例中,在詳情頁場景使用。

推薦結果請求如下所示:

{

       'scene_id': 538659,

       'request_num': 50,

       'uid': '3496892xx',

       'request_id': '1487861252',

       'service_type': 3,

       'bid': 'b_teg_openrecom_xxxx',

       'uid_type': '0',

       'MD5': '05bae728925ee937e760b06669089c27'

}

 

5. 用戶行為上報:

用戶行為上報接口, 上報某個時間點、某個場景下、某個用戶發生了特定行為。 利用用戶行為可以進一步優化推薦結果。 用戶行為包括: 曝光、點擊、轉化、點贊等等; 行為上報時,需要保證事件發生的時間順序,嚴格按照先有曝光,點擊,再有轉化, 否則系統會認為用戶點擊、轉化行為行為無效。重要的字段:

Ø trace_id: 用戶一系列行為的會話id。通過trace_id, 推薦系統可以串聯用戶行為。 trace_id的生命周期從曝光開始,依次在點擊、轉化、點贊等行為中傳遞。 下一次曝光需要生成新的trace_id;

協議如下所示:

{

       'uid': '3496892xx',

       'data_type': 2,

       'bid': 'b_teg_openrecom_xxx',

       'item_id': u '9787109061385',

       'scene_id': u '538659',

       'MD5': '8764084918781ab51493eaf43e6d0166',

       'action_time': 1487905960,

       'trace_id': u '1487905944',

       'action_type': 2,

       'request_id': '1487905960',

       'uid_type': '0'

}

相關閱讀

主從復制延遲排查

劉熾平:騰訊雲計算迅猛增長,正加強投資人工智能

 

追擊實錄(二):DDoS 黑產全鏈條遭斬斷,騰訊雲協助警方抓捕58人

 


 

此文已由作者授權騰訊雲技術社區發布,轉載請注明文章出處

原文鏈接:https://cloud.tencent.com/community/article/895984


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM