99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

3天內(nèi)不再提示

關于推出適用于設備端推薦的自適應框架

Tensorflowers ? 來源:TensorFlow ? 作者:TensorFlow ? 2021-06-15 17:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

發(fā)布人:Ellie Zhou、Tian Lin、Shuangfeng Li 以及 Sushant Prakash

簡介和動機

我們非常高興地宣布推出一種自適應框架,用于使用您自己的數(shù)據(jù)以及高級用戶建模架構構建設備端推薦 ML 解決方案。

在之前開源了設備端推薦解決方案后,我們發(fā)現(xiàn)社區(qū)中的許多人都對引入設備端推薦系統(tǒng) AI 頗有興趣。受反饋內(nèi)容的激勵與啟發(fā),我們考慮了各種不同的用例,并創(chuàng)建了一種框架,該框架可以生成適應不同種類的數(shù)據(jù)、特征和架構的 TensorFlow Lite 推薦模型,對之前的模型進行了完善。

此框架的優(yōu)勢

靈活:自適應框架支持用戶以可配置方式創(chuàng)建模型。

優(yōu)化了模型表征: 為了完善之前的模型,我們的新推薦模型可以利用多種特征,而非單單一種特征。

個性化推薦在如今的數(shù)字化生活中越來越重要。隨著越來越多的用戶操作已轉移至邊緣設備,支持設備端推薦系統(tǒng)將變?yōu)橐粋€重要方向。與完全基于服務器的傳統(tǒng)推薦系統(tǒng)相比,設備端解決方案具有獨特的優(yōu)勢,如保護用戶隱私、快速地對設備端用戶操作作出反應、利用輕量級 TensorFlow Lite 推理,以及繞過網(wǎng)絡依賴。我們歡迎您體驗此框架并在您的應用中創(chuàng)建推薦體驗。

框架

https://tensorflow.google.cn/lite/examples/recommendation/overview

在本文中,我們將

介紹完善后的模型架構和框架自適應性。

帶您循序漸進地了解如何利用框架。

根據(jù)使用公開數(shù)據(jù)集完成的研究提供數(shù)據(jù)分析。

您可以在 TensorFlow 網(wǎng)站上找到更多詳細信息。

TensorFlow 網(wǎng)站

https://tensorflow.google.cn/lite/examples/recommendation/overview

模型

推薦模型通常根據(jù)用戶之前的活動預測用戶未來活動。我們的框架支持模型使用上下文信息展開預測,框架可以按照以下架構進行描述:

在上下文方面,由編碼器聚合所有用戶活動的表征,以生成上下文嵌入。我們支持三種不同類型的編碼器:1) 詞袋(又名為 BOW),2) 1-D 卷積(又名為 CNN)和 3) LSTM。在標簽方面,同樣會將正樣本標簽項和詞匯表中的所有其他負樣本標簽項編碼為向量。將上下文和標簽嵌入與點積進行結合并提供給 softmax 交叉熵損失。

在框架內(nèi)部,將 ContextEncoder、LabelEncoder 和 DotProductSimilarity 的 tf.keras 層封裝為 RecommendationModel 中的重要組件。

為了為每個用戶活動建立模型,我們可以使用活動項目編號(稱為基于編號的模型)、項目的多個特征(稱為基于特征的模型)或二者的組合?;谔卣鞯哪P蜁褂枚鄠€特征,集中性地對用戶行為進行編碼。借助我們的框架,您可以可配置方式創(chuàng)建基于編號或基于特征的模型。

與上一版本類似,系統(tǒng)會在訓練后導出 TensorFlow Lite 模型,可以直接在推薦候選條目中提供前 K 個預測。

分步教程

為了展示這個全新的自適應框架,我們使用多個特征對含有 MovieLens 數(shù)據(jù)集的設備端電影推薦模型進行了訓練,并將其整合到演示版應用中(模型和應用僅用于演示目的)。MovieLens 1M 數(shù)據(jù)集包含 6039 位用戶對 3951 部電影的評分,每個用戶僅對一小部分電影進行評分。

MovieLens

https://grouplens.org/datasets/movielens/

讓我們了解一下如何在此 Notebook 中分步使用框架。

Notebook

https://github.com/tensorflow/examples/blob/master/lite/examples/recommendation/ml/ondevice_recommendation.ipynb

(a) 環(huán)境準備

git clone https://github.com/tensorflow/examples

cd examples/lite/examples/recommendation/ml/

pip install -r requirements.txt

(b) 準備訓練數(shù)據(jù)

請參考 movielens 示例生成文件準備訓練數(shù)據(jù)。需要注意的是,預計 TensorFlow Lite 輸入特征為 FixedLenFeature,因此請?zhí)畛浠蚪厝√卣?,并在輸入配置中設置特征長度。您可以按照您的想法隨意使用以下命令來處理示例數(shù)據(jù)集。

FixedLenFeature

https://tensorflow.google.cn/api_docs/python/tf/io/FixedLenFeature

python -m data.example_generation_movielens

--data_dir=data/raw

--output_dir=data/examples

--min_timeline_length=3

--max_context_length=10

--max_context_movie_genre_length=32

--min_rating=2

--train_data_fraction=0.9

--build_vocabs=True

MovieLens 數(shù)據(jù)包含 ratings.dat(列: 用戶編號、 電影編號、 評分、 時間戳)和 movies.dat(列:電影編號、 標題、 類型)。在示例生成腳本中,我們同時采用了這兩個文件,僅將評分保持在 2 分以上、構成用戶電影交互時間線,作為標簽的示例活動以及之前的用戶活動作為預測上下文。請查找生成的 tf.Example:

0 : {

features: {

feature: {

key : “context_movie_id”

value: { int64_list: { value: [ 1124, 2240, 3251, 。。。, 1268 ] } }

}

feature: {

key : “context_movie_rating”

value: { float_list: {value: [ 3.0, 3.0, 4.0, 。。。, 3.0 ] } }

}

feature: {

key : “context_movie_year”

value: { int64_list: { value: [ 1981, 1980, 1985, 。。。, 1990 ] } }

}

feature: {

key : “context_movie_id”

value: { int64_list: { value: [ 1124, 2240, 3251, 。。。, 1268 ] } }

}

feature: {

key : “context_movie_genre”

value: { bytes_list: { value: [ “Drama”, “Drama”, “Mystery”, 。。。, “UNK” ] } }

}

feature: {

key : “l(fā)abel_movie_id”

value: { int64_list: { value: [ 3252 ] } }

}

}

}

(c) 創(chuàng)建輸入配置

準備好數(shù)據(jù)后,請設置輸入配置,例如,這是 movielens 電影推薦模型的一個示例配置。

activity_feature_groups {

features {

feature_name: “context_movie_id”

feature_type: INT

vocab_size: 3953

embedding_dim: 8

feature_length: 10

}

features {

feature_name: “context_movie_rating”

feature_type: FLOAT

feature_length: 10

}

encoder_type: CNN

}

activity_feature_groups {

features {

feature_name: “context_movie_genre”

feature_type: STRING

vocab_name: “movie_genre_vocab.txt”

vocab_size: 19

embedding_dim: 4

feature_length: 32

}

encoder_type: CNN

}

label_feature {

feature_name: “l(fā)abel_movie_id”

feature_type: INT

vocab_size: 3953

embedding_dim: 8

feature_length: 1

}

(d) 訓練模型

模型訓練器將根據(jù)輸入配置構建含有簡單界面的推薦模型。

python -m model.recommendation_model_launcher --

--training_data_filepattern “data/examples/train_movielens_1m.tfrecord”

--testing_data_filepattern “data/examples/test_movielens_1m.tfrecord”

--model_dir “model/model_dir”

--vocab_dir “data/examples”

--input_config_file “configs/sample_input_config.pbtxt”

--batch_size 32

--learning_rate 0.01

--steps_per_epoch 2

--num_epochs 2

--num_eval_steps 2

--run_mode “train_and_eval”

--gradient_clip_norm 1.0

--num_predictions 10

--hidden_layer_dims “32,32”

--eval_top_k “1,5”

--conv_num_filter_ratios “2,4”

--conv_kernel_size 4

--lstm_num_units 16

在推薦模型內(nèi)部,核心組件將被打包到 keras 層(context_encoder.py、label_encoder.py 和 dotproduct_similarity.py),其中每一層都可以被自身使用。下圖介紹了代碼結構:

context_encoder.py

https://github.com/tensorflow/examples/blob/master/lite/examples/recommendation/ml/model/context_encoder.py

label_encoder.py

https://github.com/tensorflow/examples/blob/master/lite/examples/recommendation/ml/model/label_encoder.py

dotproduct_similarity.py

https://github.com/tensorflow/examples/blob/master/lite/examples/recommendation/ml/model/dotproduct_similarity.py

通過此框架,您可以通過命令直接執(zhí)行模型訓練啟動器:

python -m model.recommendation_model_launcher

--input_config_file “configs/sample_input_config.pbtxt”

--vocab_dir “data/examples”

--run_mode “export”

--checkpoint_path “model/model_dir/ckpt-1000”

--num_predictions 10

--hidden_layer_dims “32,32”

--conv_num_filter_ratios “2,4”

--conv_kernel_size 4

--lstm_num_units 16

導出至 TensorFlow Lite 后,可以在 Notebook 中找到推理代碼,同時我們會推薦讀者查看該處的詳細信息。

Notebook

https://github.com/tensorflow/examples/blob/master/lite/examples/recommendation/ml/ondevice_recommendation.ipynb

框架自適應性

我們的框架會提供 protobuf 接口,用戶可在此接口中對特征組、類型和其他信息進行配置,以相應地構建模型。在此接口中,您可以配置:

protobuf

https://github.com/tensorflow/examples/blob/master/lite/examples/recommendation/ml/configs/input-config.proto

特征

框架通常將特征分為 3 種類型:整型、字符串和浮點數(shù)。由于需要為整型和字符串特征創(chuàng)建嵌入空間,因此需要指定嵌入維度、詞匯表名稱和大小。浮點數(shù)特征值可直接使用。此外,對于設備端模型,我們建議使用可直接進行配置的固定長度特征。

message Feature {

optional string feature_name = 1;

// Supported feature types: STRING, INT, FLOAT.

optional FeatureType feature_type = 2;

optional string vocab_name = 3;

optional int64 vocab_size = 4;

optional int64 embedding_dim = 5;

optional int64 feature_length = 6;

}

特征組

一個用戶活動的一個特征可能具有多個值。例如,一部電影可以屬于多個類別,每部電影將具有多個類型的特征值。為了處理不同特征形狀,我們引入了“特征組”,用于將特征合并為組??梢詫㈤L度相同的特征放置到同一特征組中,以一起進行編碼。在輸入配置中,您可以設置全局特征組和活動特征組。

message FeatureGroup {

repeated Feature features = 1;

// Supported encoder types: BOW, CNN, LSTM.

optional EncoderType encoder_type = 2;

}

輸入配置

您可以使用輸入配置界面同時設置所有特征和特征組。

message InputConfig {

repeated FeatureGroup global_feature_groups = 1;

repeated FeatureGroup activity_feature_groups = 2;

optional Feature label_feature = 3;

}

input_pipeline.py 和 recommendation_model.py 會使用輸入配置將訓練數(shù)據(jù)處理為 tf.data.Dataset,并相應地構建模型。在 ContexEncoder 內(nèi)部,我們將為所有特征組創(chuàng)建 FeatureGroupEncoders,并將其用于計算輸入特征中的特征組嵌入。通過頂部隱藏層饋送串聯(lián)特征組嵌入,以獲得最終上下文嵌入。值得注意的是,最終上下文嵌入和標簽嵌入維度應該相同。

input_pipeline.py

https://github.com/tensorflow/examples/blob/master/lite/examples/recommendation/ml/model/input_pipeline.py

recommendation_model.py

https://github.com/tensorflow/examples/blob/master/lite/examples/recommendation/ml/model/recommendation_model.py

請在附錄部分查看使用不同輸入配置生成的不同模型圖。

附錄

https://github.com/tensorflow/examples/blob/master/lite/examples/recommendation/ml/ondevice_recommendation.ipynb

實驗與分析

我們會借此機會,針對基于編號和基于特征的模型,分析其在不同配置下的性能,并提供一些實證結果。

對于基于編號的模型,僅會將 movie_id 用作輸入特征。對于基于特征的模型,會使用 movie_id 和 movie_genre 特征。兩種類型的模型都嘗試使用了 3 種編碼器類型 (BOW/CNN/LSTM) 和 3 種上下文歷史長度 (10/50/100)。

由于 MovieLens 數(shù)據(jù)集是一個實驗數(shù)據(jù)集,其中大約含有 4000 部候選電影和 19 種電影類型,因此我們會在實驗中縮小嵌入維度,以模擬生成場景。對于上述實驗結果圖表,將編號嵌入維度設置為 8 并將電影類型嵌入維度設置為 4。如果以 context10_cnn 為例,基于特征的模型性能比基于編號的模型性能高出 58.6%。此外,平均結果顯示基于特征的模型性能要高出 48.35%。因此,在這種情況中,基于特征的模型性能要優(yōu)于基于編號的模型,因為 movie_genre 特征向模型引入了其他信息。

MovieLens

https://grouplens.org/datasets/movielens/

此外,候選項目的大部分基礎特征的詞匯表都相對較小,因此嵌入空間也相對較小。例如,電影類型詞匯表要比電影編號詞匯表小很多。在這種情況中,使用基礎特征會減小模型的內(nèi)存大小,從而令其更適合設備端。

編輯:jq

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

    關注

    5152

    文章

    19675

    瀏覽量

    317606
  • 網(wǎng)絡
    +關注

    關注

    14

    文章

    7815

    瀏覽量

    90968
  • ML
    ML
    +關注

    關注

    0

    文章

    151

    瀏覽量

    35079

原文標題:推出適用于設備端推薦的自適應框架

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    用于無線 LAN 的 2.4 GHz 高效前端和適用于藍牙?應用的端口 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()用于無線 LAN 的 2.4 GHz 高效前端和適用于藍牙?應用的端口相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有用于無線 LAN 的 2.4 GHz 高效前端和適用于藍牙?應
    發(fā)表于 07-01 18:32
    <b class='flag-5'>用于</b>無線 LAN 的 2.4 GHz 高效前端和<b class='flag-5'>適用于</b>藍牙?應用的端口 skyworksinc

    適用于 WLAN 和藍牙?應用的 2.4 GHz 高效前端 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()適用于 WLAN 和藍牙?應用的 2.4 GHz 高效前端相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有適用于 WLAN 和藍牙?應用的 2.4 GHz 高效前端的引腳圖、接線圖、封裝手冊
    發(fā)表于 06-20 18:30
    <b class='flag-5'>適用于</b> WLAN 和藍牙?應用的 2.4 GHz 高效前端 skyworksinc

    2.4 GHz、256 QAM 前端模塊,用于 WLAN/ 和端口,適用于藍牙?應用 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()2.4 GHz、256 QAM 前端模塊,用于 WLAN/ 和端口,適用于藍牙?應用相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有2.4 GHz、256 QAM 前端模塊,用于 WLAN
    發(fā)表于 06-18 18:30
    2.4 GHz、256 QAM 前端模塊,<b class='flag-5'>用于</b> WLAN/ 和端口,<b class='flag-5'>適用于</b>藍牙?應用 skyworksinc

    用于 WLAN/ 的 2.4 GHz、256 QAM 前端模塊和適用于藍牙?應用的端口 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()用于 WLAN/ 的 2.4 GHz、256 QAM 前端模塊和適用于藍牙?應用的端口相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有用于 WLAN/ 的 2.4 GHz、256 QAM 前端
    發(fā)表于 06-18 18:30
    <b class='flag-5'>用于</b> WLAN/ 的 2.4 GHz、256 QAM 前端模塊和<b class='flag-5'>適用于</b>藍牙?應用的端口 skyworksinc

    適用于Versal的AMD Vivado 加快FPGA開發(fā)完成Versal自適應SoC設計

    設計、編譯、交付,輕松搞定。更快更高效。 Vivado 設計套件提供經(jīng)過優(yōu)化的設計流程,讓傳統(tǒng) FPGA 開發(fā)人員能夠加快完成 Versal 自適應 SoC 設計。 面向硬件開發(fā)人員的精簡設計流程
    的頭像 發(fā)表于 05-07 15:15 ?581次閱讀
    <b class='flag-5'>適用于</b>Versal的AMD Vivado  加快FPGA開發(fā)完成Versal<b class='flag-5'>自適應</b>SoC設計

    適用于工業(yè)控制設備的RS485通信芯片CN3485

    適用于工業(yè)控制設備的RS485通信芯片CN3485
    的頭像 發(fā)表于 04-17 10:01 ?325次閱讀
    <b class='flag-5'>適用于</b>工業(yè)控制<b class='flag-5'>設備</b>的RS485通信芯片CN3485

    基于事件相機的統(tǒng)一幀插值與自適應去模糊框架(REFID)

    )的解決方案。團隊提出了一種基于事件相機的統(tǒng)一幀插值與自適應去模糊框架(REFID)。該框架基于雙向遞歸網(wǎng)絡,結合事件流和圖像信息,自適應地融合來自不同時間點的信息,從而能夠在模糊的輸
    的頭像 發(fā)表于 03-14 11:48 ?839次閱讀
    基于事件相機的統(tǒng)一幀插值與<b class='flag-5'>自適應</b>去模糊<b class='flag-5'>框架</b>(REFID)

    GLAD應用:大氣像差與自適應光學

    概述 激光在大氣湍流中傳輸時會拾取大氣湍流導致的相位畸變,特別是在長距離傳輸?shù)募す馔ㄐ畔到y(tǒng)中。這種畸變會使傳輸激光的波前劣化。通過在系統(tǒng)中引入自適應光學系統(tǒng),可以對激光傳輸時拾取的低頻畸變進行校正
    發(fā)表于 03-10 08:55

    AMD Versal自適應SoC器件Advanced Flow概覽(上)

    在最新發(fā)布的 AMD Vivado Design Suite 2024.2 中,引入的新特性之一是啟用了僅適用于 AMD Versal 自適應 SoC 器件的 Advanced Flow 布局布線
    的頭像 發(fā)表于 01-17 10:09 ?676次閱讀
    AMD Versal<b class='flag-5'>自適應</b>SoC器件Advanced Flow概覽(上)

    華為推出RN/H5多設備自適應組件庫

    在原生鴻蒙應用開發(fā)中,華為針對ArkUI框架推出了一整套針對多設備適配的完善能力(如“一多”能力)以及高階組件(如分欄、邊看邊評等),幫助開發(fā)者輕松實現(xiàn)“一次開發(fā),多端部署”。然而,當前鴻蒙生態(tài)仍
    的頭像 發(fā)表于 01-16 14:46 ?792次閱讀

    OTL電路適用于哪些設備

    音響系統(tǒng)中。由于省去了昂貴的輸出變壓器,電路設計更加簡潔,同時保持了良好的音質表現(xiàn)。它的小體積、低成本和寬頻響等優(yōu)點,使其在音頻設備中備受青睞。 耳機放大器 : OTL電路也適用于耳機放大器,能夠提供清晰、純凈的音質,滿足用戶對音
    的頭像 發(fā)表于 01-16 09:35 ?578次閱讀

    NVIDIA推出適用于網(wǎng)絡安全的NIM Blueprint

    德勤使用適用于容器安全的 NVIDIA NIM Agent Blueprint 幫助企業(yè)利用開源軟件構建安全的 AI。
    的頭像 發(fā)表于 11-20 09:58 ?705次閱讀

    PGA2500能否適用于輸入呢?

    PGA2500為差分輸入差分輸出,因此想請教的第一個問題是PGA2500能否適用于輸入呢(將Vin-接地)? 此外,查閱了一些資料,發(fā)現(xiàn)幻象供電多用于電容型麥克風,因此第二個問題是針對所用
    發(fā)表于 11-04 07:31

    軌到軌運算放大器AiP8612適用于低功耗便攜式設備

    軌到軌運算放大器AiP8612適用于低功耗便攜式設備
    的頭像 發(fā)表于 09-04 09:44 ?771次閱讀
    軌到軌運算放大器AiP8612<b class='flag-5'>適用于</b>低功耗便攜式<b class='flag-5'>設備</b>

    選擇適用于汽車應用的基準電壓

    電子發(fā)燒友網(wǎng)站提供《選擇適用于汽車應用的基準電壓.pdf》資料免費下載
    發(fā)表于 09-02 11:26 ?0次下載
    選擇<b class='flag-5'>適用于</b>汽車應用的基準電壓