色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TensorFlow Recommenders開源軟件包可簡化構建、評估和應用推薦模型

Tensorflowers ? 來源:TensorFlow ? 作者:Maciej Kula 和 James ? 2020-10-21 10:54 ? 次閱讀

文 /Maciej Kula 和 James Chen,Google Brain

推薦系統是機器學習的一大主要應用,能夠根據用戶偏好推送相關內容,比如推薦電影、餐廳、搭配時裝首飾或篩選媒體信息流等。

Google 過去幾年一直在探索新的深度學習技術,力求通過結合多任務學習、強化學習、提取更好的用戶表征和構建公平性指標提供更好的推薦。這些努力和其他方面的進展大幅改善了我們的推薦效果。

今天,我們榮幸地推出 TensorFlow Recommenders (TFRS),這款開源 TensorFlow 軟件包可簡化構建、評估和應用復雜的推薦模型。

TensorFlow Recommenders (TFRS)
https://tensorflow.google.cn/recommenders

TFRS 使用 TensorFlow 2.x 構建,有助于:

構建和評估靈活的Candidate Nomination Model;

將條目、用戶和上下文信息自由整合到推薦模型;

訓練可聯合優化多個推薦目標的多任務模型;

用 TensorFlow Serving 高效利用生成的模型。

TFRS 基于 TensorFlow 2.x 和 Keras,十分易于上手,在采用模塊化設計的同時(您可以自定義每個層和評價指標),仍然組成了一個強有力的整體(各個組件可以良好協作)。在 TFRS 的設計過程中,我們一直強調靈活性和易用性:合理的默認設置、直觀易行的常見任務以及更復雜或自定義的推薦任務。

TensorFlow Recommenders 現已在 GitHub 上開源。我們的目標是讓其不斷發展,能夠靈活地進行學術研究,并以高度可擴展的方式構建全網推薦系統。我們還計劃在多任務學習、特征交叉建模、自監督學習和最前沿 (SOTA)近似最鄰近計算方面擴展其功能。

GitHub
https://github.com/tensorflow/recommenders

示例:構建電影推薦工具

讓我們先用一個簡單示例展現 TensorFlow Recommenders 的使用方法。首先,使用 pip 安裝 TFRS:

!pip install tensorflow_recommenders

然后,我們可以使用 MovieLens 數據集訓練一個簡單的電影推薦模型。數據集所含信息包括用戶觀看了哪些電影以及用戶對該電影的評分。

我們將使用這一數據集構建模型,預測用戶已觀看和未觀看的電影。此類任務通常選擇雙塔模型:一個具有兩個子模型的神經網絡,分別學習 query 和 candidate 的表征。給定的query-candidate 對的得分 (score) 只是這兩個塔的輸出的點積。

這個模型架構相當靈活。query 塔的輸入可以是:用戶 ID、搜索關鍵詞或時間戳;對于 candidate 側則有:電影片名、描述、梗概、主演名單。

在此示例中,我們在 query 塔僅使用用戶 ID,在 candidate 塔僅使用電影片名。

我們先來準備數據。數據可從 TensorFlow Datasets 獲取。

import tensorflow as tf import tensorflow_datasets as tfds import tensorflow_recommenders as tfrs

# Ratings data. ratings = tfds.load("movie_lens/100k-ratings", split="train") # Features of all the available movies. movies = tfds.load("movie_lens/100k-movies", split="train")

在數據集的所有可用特征中,最實用的是用戶 ID 和電影片名。雖然 TFRS 有多種可選特征,但為簡單起見,我們只使用這兩項。

ratings = ratings.map(lambda x: { "movie_title": x["movie_title"], "user_id": x["user_id"], }) movies = movies.map(lambda x: x["movie_title"])

只使用用戶 ID 和電影片名時,我們簡單的雙塔模型與典型的矩陣分解模型非常相似。我們需要使用以下內容進行構建:

一個用戶塔,將用戶 ID 轉換為用戶 embedding 向量(高維向量表示)。

一個電影塔,將電影片名轉換為電影 embedding 向量。

一個損失函數,對于觀看行為,最大化預測用戶與電影的匹配度,而未觀看的行為進行最小化。

TFRS 和 Keras 為實現這一目標提供了大量基本模塊。我們可以從創建模型類開始。在__init__方法中,我們設置一些超參數以及模型的主要組件。

class TwoTowerMovielensModel(tfrs.Model): """MovieLens prediction model.""" def __init__(self): # The `__init__` method sets up the model architecture. super().__init__() # How large the representation vectors are for inputs: larger vectors make # for a more expressive model but may cause over-fitting. embedding_dim = 32 num_unique_users = 1000 num_unique_movies = 1700 eval_batch_size = 128

第一個主要組件是用戶模型:一組描述如何將原始用戶特征轉換為數字化用戶表征的層。我們在這里使用 Keras 預處理層將用戶 ID 轉換為整數索引,然后將其映射到學習的 embedding 向量:

# Set up user and movie representations. self.user_model = tf.keras.Sequential([ # We first turn the raw user ids into contiguous integers by looking them # up in a vocabulary. tf.keras.layers.experimental.preprocessing.StringLookup( max_tokens=num_unique_users), # We then map the result into embedding vectors. tf.keras.layers.Embedding(num_unique_users, embedding_dim) ])

電影模型看起來很相似,能夠將電影片名轉換為 embedding 向量:

self.movie_model = tf.keras.Sequential([ tf.keras.layers.experimental.preprocessing.StringLookup( max_tokens=num_unique_movies), tf.keras.layers.Embedding(num_unique_movies, embedding_dim) ])

得到用戶和電影模型后,就需要定義我們的目標和它的評估指標了。在 TFRS 中,可以通過 Retrieval任務完成這一點(使用 in-batch softmax loss):

# The `Task` objects has two purposes: (1) it computes the loss and (2) # keeps track of metrics. self.task = tfrs.tasks.Retrieval( # In this case, our metrics are top-k metrics: given a user and a known # watched movie, how highly would the model rank the true movie out of # all possible movies? metrics=tfrs.metrics.FactorizedTopK( candidates=movies.batch(eval_batch_size).map(self.movie_model) ) )

我們使用 compute_loss方法查看模型的訓練過程:

def compute_loss(self, features, training=False): # The `compute_loss` method determines how loss is computed. # Compute user and item embeddings. user_embeddings = self.user_model(features["user_id"]) movie_embeddings = self.movie_model(features["movie_title"]) # Pass them into the task to get the resulting loss. The lower the loss is, the # better the model is at telling apart true watches from watches that did # not happen in the training data. return self.task(user_embeddings, movie_embeddings)

我們可以調用 Keras 的 fit 擬合此模型:

model = MovielensModel() model.compile(optimizer=tf.keras.optimizers.Adagrad(0.1)) model.fit(ratings.batch(4096), verbose=False)

要對模型的推薦進行 Sanity-Check(合理性檢驗),我們可以使用 TFRS BruteForce 層。BruteForce 層以預先計算好的 candidate 的表征進行排序,允許我們對所有可能的 candidate 計算其所在 query-candidate 對的得分,并返回排名最靠前的電影 (query):

index = tfrs.layers.ann.BruteForce(model.user_model) index.index(movies.batch(100).map(model.movie_model), movies) # Get recommendations. _, titles = index(tf.constant(["42"])) print(f"Recommendations for user 42: {titles[0, :3]}")

當然,BruteForce 層只適用于非常小的數據集。有關將 TFRS 與近似最鄰近庫 Annoy 結合使用的示例,請參閱我們的完整教程。

完整教程
https://tensorflow.google.cn/recommenders/examples/basic_retrieval#building_a_candidate_ann_index

我們希望這能讓您對 TensorFlow Recommenders 的功能有所了解。要了解更多信息,請查看我們的教程或 API 參考。如果您想參與,一同推動 TensorFlow 推薦系統發展,請考慮貢獻您的一份力量!我們還將在近期宣布成立 TensorFlow Recommendations 特殊興趣小組 (SIG),歡迎大家就嵌入向量學習和分布式訓練與應用等主題開展合作和做出貢獻。敬請期待!

教程
https://tensorflow.google.cn/recommenders/examples/quickstart

API 參考
https://tensorflow.google.cn/recommenders/api_docs/python/tfrs/all_symbols

貢獻您的一份力量
https://github.com/tensorflow/recommenders/

致謝

TensorFlow Recommenders 是 Google 以及其他組織的人員共同努力的成果。我們要感謝 Tiansheng Yao、Xinyang Yi、Ji Yang 對庫的核心貢獻,感謝 Lichan Hong 和 Ed Chi 的領導與指導。我們也要感謝 Zhe Zhao、Derek Cheng、Sagar Jain、Alexandre Passos、Francois Chollet、Sandeep Gupta、Eric Ni 等人對項目的建議和支持。

責任編輯:xj

原文標題:TensorFlow Recommenders 現已開源,讓推薦系統更上一層樓!

文章出處:【微信公眾號:TensorFlow】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器學習
    +關注

    關注

    66

    文章

    8434

    瀏覽量

    132875
  • 推薦系統
    +關注

    關注

    1

    文章

    43

    瀏覽量

    10088
  • tensorflow
    +關注

    關注

    13

    文章

    329

    瀏覽量

    60577

原文標題:TensorFlow Recommenders 現已開源,讓推薦系統更上一層樓!

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何使用Python構建LSTM神經網絡模型

    : NumPy:用于數學運算。 TensorFlow:一個開源機器學習庫,Keras是其高級API。 Keras:用于構建和訓練深度學習模型。 你可以使用pip來安裝這些庫: pip
    的頭像 發表于 11-13 10:10 ?501次閱讀

    蘋果推出全新開源Swift軟件包

    七月三十一日,蘋果企業總部對外正式發表公告,宣布昨日(即七月二十九日)成功推出全新的開源 Swift 軟件包—— (喚名為 swift-homomorphic-encryption)。此舉旨在為 Swift 編程語言帶來應用便利的同態加密功能。
    的頭像 發表于 07-31 15:17 ?414次閱讀

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google開發的一個開源深度學習框架,它允許開發者方便地構建、訓練和部署各種復雜的機器學習模型TensorFlow
    的頭像 發表于 07-12 16:38 ?767次閱讀

    使用TensorFlow進行神經網絡模型更新

    使用TensorFlow進行神經網絡模型的更新是一個涉及多個步驟的過程,包括模型定義、訓練、評估以及根據新數據或需求進行模型微調(Fine-
    的頭像 發表于 07-12 11:51 ?453次閱讀

    tensorflow簡單的模型訓練

    在本文中,我們將詳細介紹如何使用TensorFlow進行簡單的模型訓練。TensorFlow是一個開源的機器學習庫,廣泛用于各種機器學習任務,包括圖像識別、自然語言處理等。我們將從安裝
    的頭像 發表于 07-05 09:38 ?741次閱讀

    keras模型tensorflow session

    和訓練深度學習模型。Keras是基于TensorFlow、Theano或CNTK等底層計算框架構建的。TensorFlow是一個開源的機器學
    的頭像 發表于 07-05 09:36 ?574次閱讀

    如何使用Tensorflow保存或加載模型

    TensorFlow是一個廣泛使用的開源機器學習庫,它提供了豐富的API來構建和訓練各種深度學習模型。在模型訓練完成后,保存
    的頭像 發表于 07-04 13:07 ?1656次閱讀

    如何在TensorFlow構建并訓練CNN模型

    TensorFlow構建并訓練一個卷積神經網絡(CNN)模型是一個涉及多個步驟的過程,包括數據預處理、模型設計、編譯、訓練以及評估。下面
    的頭像 發表于 07-04 11:47 ?1023次閱讀

    TensorFlow的定義和使用方法

    數據流圖,從而簡化機器學習模型構建、訓練和部署。自2015年11月開源以來,TensorFlow迅速成為數據科學家、
    的頭像 發表于 07-02 14:14 ?845次閱讀

    艾體寶方案 | 管理開源軟件包更新,提升開源安全性

    文章介紹了Mend.io如何通過其Smart Merge Control功能增強開源軟件的安全性。現代應用程序高度依賴開源軟件,但這也增加了潛在的安全漏洞。Mend SCA的增強功能允
    的頭像 發表于 05-31 17:03 ?339次閱讀

    TLE9879QXA40_eSL-BAS-EVAL未找到軟件包的原因?

    我使用的是TLE987x EvalBoard。 打開我的項目時,彈出了這個窗口 點擊"Yes" ,打開軟件包安裝程序窗口,發現以下錯誤 "
    發表于 05-24 07:38

    谷歌模型框架是什么軟件?谷歌模型框架怎么用?

    谷歌模型框架通常指的是谷歌開發的用于機器學習和人工智能的軟件框架,其中最著名的是TensorFlowTensorFlow是一個開源的機器學
    的頭像 發表于 03-01 16:25 ?934次閱讀

    RT-Thread Studio添加軟件包報錯怎么解決?

    RT-Thread Studio添加軟件包報錯ImportError: No module named psutil
    發表于 03-01 08:41

    RZ/G柔性軟件包v2.0.1發布說明

    電子發燒友網站提供《RZ/G柔性軟件包v2.0.1發布說明.pdf》資料免費下載
    發表于 02-21 10:48 ?0次下載
    RZ/G柔性<b class='flag-5'>軟件包</b>v2.0.1發布說明

    RL78系列 Data Flash Library Type04軟件包3.0版發布說明

    電子發燒友網站提供《RL78系列 Data Flash Library Type04軟件包3.0版發布說明.pdf》資料免費下載
    發表于 02-19 10:06 ?0次下載
    RL78系列 Data Flash Library Type04<b class='flag-5'>軟件包</b>3.0版發布說明
    主站蜘蛛池模板: 打扑克床上视频不用下载免费观看| 国产精品乱码一区二区三| 国产精品视频大全| 日本无翼恶漫画大全优优漫画| gv肉片视频免费观看| 你的欲梦裸身在线播放| 99在线国产视频| 青青草久久| 多男同时插一个女人8p| 日本亚欧热亚洲乱色视频| 成人AV精品视频| 深喉吞精日本| 国产在线观看黄| 在线观看国产亚洲| 免费在线观看国产| 成人亚洲视频在线观看| 午夜国产精品视频| 狠狠色色综合站| 在线看片亚洲| 欧美性猛交XXXX乱大交极品| 抽插内射高潮呻吟爆乳| 午夜神器18以下不能进免费| 国产亚洲精品影视在线| 在线中文字幕网站| 欧美日韩视频高清一区| 国产不卡在线观看视频| 亚洲国产高清在线观看视频| 久久久久亚洲精品影视| 99热这里只有精品| 无限资源在线看影院免费观看| 精品久久久噜噜噜久久久app| 中文字幕一区二区视频| 强开少妇嫩苞又嫩又紧九色| 国产精品亚洲精品久久品| 影音先锋 av天堂| 人妻美妇疯狂迎合| 好男人社区| jk制服喷水| 亚洲国产精品无码中文字满| 免费看欧美一级特黄a大片| 东北成人社区|