精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于關系型深度學習的自助機器學習 原創

發布于 2024-11-4 08:10
瀏覽
0收藏

本文將探討直接在關系數據庫上執行機器學習的新方法——關系型深度學習。

基于關系型深度學習的自助機器學習-AI.x社區

本文示例項目數據集的關系模式(作者提供圖片)

在本文中,我們將深入探討一種有趣的深度學習(DL)新方法,稱為關系型深度學習(RDL)。我們還將通過在一家電子商務公司的真實數據庫(不是數據集!)上做一些RDL來獲得一些實踐經驗。

簡介

在現實世界中,我們通常有一個關系數據庫,我們想在這個數據庫上運行一些機器學習任務。但是,有時候數據庫需要高度規范化;這意味著,大量耗時的特征工程和粒度損失,因為我們必須進行大量的聚合操作。更重要的是,我們可以構建無數種可能的特征組合,每種組合都可能產生良好的性能(【文獻2】)。這意味著,我們可能會在數據庫表格中留下一些與ML任務相關的信息。

這類似于計算機視覺的早期,在深度神經網絡出現之前,特征工程任務是基于像素值形式手工完成的。如今,模型直接使用原始像素,而不再依賴于這個中間環節。

關系型深度學習

關系型深度學習(RDL)承諾用表格形式學習實現同樣的事情。也就是說,它消除了通過直接在關系數據庫上學習來構建特征矩陣的額外步驟。RDL通過將數據庫及其關系轉換為圖來實現這一點;其中,表中的一行成為節點,表之間的關系成為邊,行值作為節點特征存儲在節點內。

在本文中,我們將使用??Kaggle的電子商務數據集??,該數據集包含有關星形模式中電子商務平臺的交易數據,其中包含一個核心事實表(交易)和一些維度表。完整的代碼可以在??鏈接??處的筆記本文件中找到。

在本文中,我們將使用??relbench??庫來執行RDL。在relbench中,我們必須做的第一件事是指定關系數據庫的模式。下面給出一個示例,說明我們如何對數據庫中的“事務”表執行此操作。我們將表作為pandas數據幀給出,并指定主鍵和時間戳列。主鍵列用于唯一標識實體。時間戳確保我們只能在預測未來交易時從過去的交易中學習。在這種構圖中,這意味著信息只能從時間戳較低的節點(即過去)流向時間戳較高的節點。此外,我們指定關系中存在的外鍵。在這種情況下,事務表具有列“customer_key”,該列是指向“customer_dim”表的外鍵。

tables['transactions'] = Table(
df=pd.DataFrame(t),
pkey_col='t_id',
fkey_col_to_pkey_table={
'customer_key': 'customers',
'item_key': 'products',
'store_key': 'stores'
},
time_col='date'
)

其余的表需要以相同的方式定義。請注意,如果你已經有了數據庫模式,這也可以通過自動化的方式實現。由于數據集來自Kaggle,所以我需要手動創建模式。我們還需要將日期列轉換為實際的pandas日期時間對象,并刪除任何NaN值。

class EcommerceDataBase(Dataset):
#創建你自己的數據集的示例:??https://github.com/snap-stanford/relbench/blob/main/tutorials/custom_dataset.ipynb?

val_timestamp = pd.Timestamp(year=2018, month=1, day=1)
test_timestamp = pd.Timestamp(year=2020, month=1, day=1)

def make_db(self) -> Database:

tables = {}

customers = load_csv_to_db(BASE_DIR + '/customer_dim.csv').drop(columns=['contact_no', 'nid']).rename(columns={'coustomer_key': 'customer_key'})
stores = load_csv_to_db(BASE_DIR + '/store_dim.csv').drop(columns=['upazila'])
products = load_csv_to_db(BASE_DIR + '/item_dim.csv')
transactions = load_csv_to_db(BASE_DIR + '/fact_table.csv').rename(columns={'coustomer_key': 'customer_key'})
times = load_csv_to_db(BASE_DIR + '/time_dim.csv')

t = transactions.merge(times[['time_key', 'date']], on='time_key').drop(columns=['payment_key', 'time_key', 'unit'])
t['date'] = pd.to_datetime(t.date)
t = t.reset_index().rename(columns={'index': 't_id'})
t['quantity'] = t.quantity.astype(int)
t['unit_price'] = t.unit_price.astype(float)
products['unit_price'] = products.unit_price.astype(float)
t['total_price'] = t.total_price.astype(float)

print(t.isna().sum(axis=0))
print(products.isna().sum(axis=0))
print(stores.isna().sum(axis=0))
print(customers.isna().sum(axis=0))

tables['products'] = Table(
df=pd.DataFrame(products),
pkey_col='item_key',
fkey_col_to_pkey_table={},
time_col=None
)

tables['customers'] = Table(
df=pd.DataFrame(customers),
pkey_col='customer_key',
fkey_col_to_pkey_table={},
time_col=None
)

tables['transactions'] = Table(
df=pd.DataFrame(t),
pkey_col='t_id',
fkey_col_to_pkey_table={
'customer_key': 'customers',
'item_key': 'products',
'store_key': 'stores'
},
time_col='date'
)

tables['stores'] = Table(
df=pd.DataFrame(stores),
pkey_col='store_key',
fkey_col_to_pkey_table={}
)

return Database(tables)

至關重要的是,作者引入了訓練表的概念。這個訓練表基本上定義了ML任務。這里的想法是,我們想預測數據庫中某個實體的未來狀態(即未來值)。我們通過指定一個表來實現這一點,其中每一行都有一個時間戳、實體的標識符和我們想要預測的一些值。id用于指定實體,時間戳指定我們需要預測實體的時間點。這也將限制可用于推斷此實體值的數據(即僅過去的數據)。值本身就是我們想要預測的(即真實數據值)。

就我們而言,我們有一個與客戶互動的在線平臺。我們希望預測客戶在未來30天內的收入。我們可以使用DuckDB執行的SQL語句創建訓練表。這是RDL的一大優勢,因為我們可以僅使用SQL創建任何類型的ML任務。例如,我們可以定義一個查詢來選擇未來30天內買家的購買數量,以進行流失預測。

df = duckdb.sql(f"""
select
timestamp,
customer_key,
sum(total_price) as revenue
from
timestamp_df t
left join
transactions ta
on
ta.date <= t.timestamp + INTERVAL '{self.timedelta}'
and ta.date > t.timestamp
group by timestamp, customer_key
""").df().dropna()

結果將是一個數據庫表格,其中seller_id是我們想要預測的實體的關鍵字,收入是目標,時間戳是我們需要進行預測的時間(即我們只能使用到目前為止的數據進行預測)。

基于關系型深度學習的自助機器學習-AI.x社區

訓練表(作者提供圖片)

下面是創建“customer_venue”任務的完整代碼。

class CustomerRevenueTask(EntityTask):
# 自定義任務示例:??https://github.com/snap-stanford/relbench/blob/main/tutorials/custom_task.ipynb??


task_type = TaskType.REGRESSION
entity_col = "customer_key"
entity_table = "customers"
time_col = "timestamp"
target_col = "revenue"
timedelta = pd.Timedelta(days=30) # 我們想要預測未來的收入。
metrics = [r2, mae]
num_eval_timestamps = 40

def make_table(self, db: Database, timestamps: "pd.Series[pd.Timestamp]") -> Table:

timestamp_df = pd.DataFrame({"timestamp": timestamps})

transactions = db.table_dict["transactions"].df

df = duckdb.sql(f"""
select
timestamp,
customer_key,
sum(total_price) as revenue
from
timestamp_df t
left join
transactions ta
on
ta.date <= t.timestamp + INTERVAL '{self.timedelta}'
and ta.date > t.timestamp
group by timestamp, customer_key
""").df().dropna()

print(df)

return Table(
df=df,
fkey_col_to_pkey_table={self.entity_col: self.entity_table},
pkey_col=None,
time_col=self.time_col,
)

至此,我們已經完成了大部分工作。其余的工作流程都是類似的,獨立于機器學習任務。我能夠從relbench提供的??示例筆記本文件??中復制大部分代碼。

例如,我們需要對節點特征進行編碼。在這里,我們可以使用GloVe嵌入(【譯者注】個別網文中翻譯為“手套嵌入”)來編碼所有文本特征,如產品描述和產品名稱。

from typing import List, Optional
from sentence_transformers import SentenceTransformer
from torch import Tensor


class GloveTextEmbedding:
def __init__(self, device: Optional[torch.device
] = None):
self.model = SentenceTransformer(
"sentence-transformers/average_word_embeddings_glove.6B.300d",
device=device,
)

def __call__(self, sentences: List[str]) -> Tensor:
return torch.from_numpy(self.model.encode(sentences))

之后,我們可以將這些轉換應用于我們的數據并構建圖表。

from torch_frame.config.text_embedder import TextEmbedderConfig
from relbench.modeling.graph import make_pkey_fkey_graph

text_embedder_cfg = TextEmbedderConfig(
text_embedder=GloveTextEmbedding(device=device), batch_size=256
)

data, col_stats_dict = make_pkey_fkey_graph(
db,
col_to_stype_dict=col_to_stype_dict,  # speficied column types
text_embedder_cfg=text_embedder_cfg,  # our chosen text encoder
cache_dir=os.path.join(
root_dir, f"rel-ecomm_materialized_cache"
),  # store materialized graph for convenience
)

其余的代碼將從標準層構建GNN(圖神經網絡),對循環訓練進行編碼,并進行一些評估。為了簡單起見,我將把這段代碼從本文中刪除,因為它非常標準,在各個任務中都是一樣的。你可以在鏈接https://github.com/LaurinBrechter/GraphTheory/tree/main/rdl處查看對應的筆記本文件。

基于關系型深度學習的自助機器學習-AI.x社區

訓練結果(作者提供圖片)

因此,我們可以訓練這個GNN,使其r2達到0.3左右,MAE達到500。這意味著,它預測賣家在未來30天的收入,平均誤差為+-500美元。當然,我們不知道這是好是壞,也許通過經典機器學習和特征工程的結合,我們可以得到80%的r2。

結論

關系型深度學習是一種有趣的機器學習新方法,特別是當我們有一個復雜的關系模式時,手動特征工程太費力了。它使我們能夠僅使用SQL定義ML任務,這對于那些不深入研究數據科學但僅了解一些SQL的人來說尤其有用。這也意味著,我們可以快速迭代,并對不同的任務進行大量實驗。

同時,這種方法也存在自己的問題,例如訓練GNN和從關系模式構建圖存在不少困難。此外,還有一個問題是,RDL在性能方面能在多大程度上與經典ML模型競爭。過去,我們已經看到,在表格預測問題上,XGboost等模型已被證明比神經網絡更好。

參考文獻

【1】Robinson,Joshua等人,《RelBench:關系數據庫深度學習的基準》,arXiv,2024,https://arxiv.org/abs/2407.20060。

【2】Fey、Matthias等人,《關系深度學習:關系數據庫上的圖表示學習》,arXiv預印本arXiv:2312.04615(2023)。

【3】Schlichtkrull,Michael等人。《用圖卷積網絡建模關系數據》,語義網:第15屆國際會議,2018年ESWC,希臘克里特島伊拉克利翁,2018年6月3日至7日,會議記錄#15。施普林格國際出版社,2018年。

譯者介紹

朱先忠,51CTO社區編輯,51CTO專家博客、講師,濰坊一所高校計算機教師,自由編程界老兵一枚。

原文標題:??Self-Service ML with Relational Deep Learning??,作者:Laurin Brechter

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
收藏
回復
舉報
回復
相關推薦
www.九色在线| 五月天婷婷在线观看| 亚洲成人国产| 亚洲成人久久久| 亚洲色精品三区二区一区| 日本视频在线播放| 国产成人午夜片在线观看高清观看| 久久久噜噜噜久噜久久| 欧美成人国产精品一区二区| 国产美女视频一区二区| 精品免费在线观看| 中文字幕一区综合| 日韩精品一二| 国产精品系列在线播放| 日韩暖暖在线视频| 久草视频免费在线| 日韩88av| 亚洲精品视频久久| 久久久无码人妻精品无码| 欧美日韩激情电影| 亚洲电影在线播放| 一区二区免费电影| 毛片免费在线播放| 北条麻妃国产九九精品视频| 国产精品影院在线观看| 91久久国产视频| 久久精品影视| 在线丨暗呦小u女国产精品| 蜜桃色一区二区三区| 久久91视频| 色综合 综合色| 日本黄大片在线观看| 日本最新在线视频| 国产亚洲视频系列| 欧美日韩高清免费| 人妻精品一区一区三区蜜桃91| 美女一区二区三区| 国产成人精品在线| 亚洲天堂视频网站| 亚洲黄色三级| 欧美激情小视频| 国产中文av在线| 人人狠狠综合久久亚洲婷| 亚洲精品资源美女情侣酒店| 成人做爰www看视频软件| 99国内精品久久久久| 欧美日韩一区三区| 欧美日韩亚洲自拍| 亚州一区二区三区| 色香蕉成人二区免费| 男人操女人免费| 免费毛片b在线观看| 亚洲成av人影院| 国产av熟女一区二区三区| 麻豆传媒在线完整视频| 国产精品久久看| 亚洲v国产v在线观看| 国产在线一二| 欧美极品xxx| 色一情一乱一伦一区二区三区丨 | 国产乱码在线| 一区二区三区成人| 久久久久久久香蕉| 久久久123| 性久久久久久久久久久久| www.av91| 美女一区网站| 欧美熟乱第一页| 在线看的黄色网址| 电影一区中文字幕| 欧美成人欧美edvon| 亚洲色图欧美日韩| 任我爽精品视频在线播放| 日韩av在线网站| aaaaa级少妇高潮大片免费看| 中文字幕精品影院| 色阁综合伊人av| av成人免费网站| 亚洲国产激情| 日韩av电影免费观看高清| 黄色一区二区视频| 国产九色精品成人porny| 国产伦精品一区二区三区视频黑人| 三级小视频在线观看| 久久精品水蜜桃av综合天堂| 亚洲欧美丝袜| 九色91在线| 欧美性生交大片免网| 91色国产在线| 日韩精品视频在线看| 亚洲激情在线视频| 日韩福利在线视频| 黄色亚洲在线| 国产精品91久久| 国产肥老妇视频| 99精品视频在线免费观看| 手机成人在线| 色老头在线观看| 欧美综合一区二区| 亚洲区 欧美区| 国产成人黄色| 欧美成人激情视频| 五月婷婷六月婷婷| 国产福利视频一区二区三区| 日本精品二区| 成人性生交大片免费看在线播放| 在线观看亚洲a| 天天躁日日躁狠狠躁免费麻豆| 最新国产一区| 欧美激情免费在线| 欧美激情一区二区三区免费观看| 国产91在线看| 一本一道久久久a久久久精品91| 好久没做在线观看| 欧美精品tushy高清| 精品夜夜澡人妻无码av| 亚洲国产精品91| 国产成人亚洲综合91精品| www.欧美国产| 国产精品青草综合久久久久99| 国产夫妻自拍一区| 亚洲午夜剧场| 正在播放欧美视频| 日韩中文字幕在线观看视频| 国产美女精品人人做人人爽 | 你懂的在线网址| 亚洲一区二区三区美女| 中文字幕国产免费| 日韩激情网站| 久久久亚洲国产天美传媒修理工| 国产露脸91国语对白| 日本一区二区三区在线观看| 久久网站免费视频| 豆花视频一区二区| 欧美美最猛性xxxxxx| 亚洲天堂aaa| 亚洲国产精品国自产拍av| 欧美亚洲另类色图| 日韩动漫一区| 91精品国产高清自在线| 隣の若妻さん波多野结衣| 亚洲美女视频一区| 簧片在线免费看| 成人区精品一区二区婷婷| 热re99久久精品国产66热| 三级网站免费观看| 精品久久久香蕉免费精品视频| 日本成人在线免费| 欧美三级网页| 国产高清在线精品一区二区三区| 色图在线观看| 精品成人a区在线观看| 精品小视频在线观看| 福利一区二区在线| 日韩一级性生活片| 另类ts人妖一区二区三区| 韩国19禁主播vip福利视频| 日本黄色三级视频| 精品福利视频导航| 亚洲精品视频久久久| 日韩专区欧美专区| 亚洲国产精品久久久久婷婷老年| 国内欧美日韩| 欧美成人精品xxx| 亚洲va欧美va| 欧美午夜精品久久久久久人妖 | 55夜色66夜色国产精品视频| 亚洲色偷精品一区二区三区| 一本到高清视频免费精品| www.99热| 国产一区二区三区免费播放| 国产爆乳无码一区二区麻豆| 色综合www| 国产精品久久久久久久久久久久久| 91社区在线观看播放| 91麻豆精品国产91久久久久久| 麻豆changesxxx国产| av一区二区久久| 日本成人中文字幕在线| 视频在线不卡免费观看| 91在线免费看片| 黄视频网站在线观看| 亚洲网站在线播放| a在线观看免费| 精品美女国产在线| www.xx日本| 99久久免费视频.com| 熟妇人妻无乱码中文字幕真矢织江| 国产精品久久久久一区二区三区厕所 | 国产精品一区二区在线播放| 国产一级爱c视频| 欧美精品乱码| 国产精品免费观看高清| 人人鲁人人莫人人爱精品| 久久香蕉国产线看观看av| 日批免费在线观看| 欧美久久一区二区| 国产精品人人人人| 亚洲日本va午夜在线影院| 国产肉体xxxx裸体784大胆| 美国av一区二区| 丰满少妇久久久| 99视频精品全部免费在线视频| 国产一区二区精品在线| 日韩在线你懂得| 9.1国产丝袜在线观看| 黄色片网站在线| 国产丝袜一区视频在线观看 | 亚洲国产成人久久综合一区| 国产在线观看第一页| 一区二区三区高清不卡| 久久久久99精品成人| av在线免费不卡| 手机av在线网站| 日韩福利视频导航| 欧美精品99久久| 欧美日韩一区二区高清| 日本不卡久久| 久久久精品国产**网站| 91沈先生作品| 欧洲精品久久久久毛片完整版| 91av在线播放| av丝袜在线| 欧美猛交免费看| 国产成人无吗| 日韩在线免费av| 国产鲁鲁视频在线观看免费| 亚洲精品456在线播放狼人| 国产视频一二三四区| 欧美视频在线播放| 久久亚洲精品石原莉奈| 欧美日韩免费一区| 精品无码黑人又粗又大又长| 亚洲欧美日韩系列| 在线观看美女av| 国产精品成人一区二区艾草| 一级黄色片网址| 国产欧美综合色| 国产成人av一区二区三区不卡| 99久久精品国产麻豆演员表| 亚洲少妇一区二区| 国产伦精品一区二区三区视频青涩| 污污动漫在线观看| 蜜桃视频在线观看一区| 色婷婷成人在线| 日韩精品亚洲一区二区三区免费| 欧美视频第一区| 久久精品人人| 日本三级免费观看| 日韩av一级电影| 亚洲欧美日韩一级| 久久99深爱久久99精品| 国产精品嫩草影院8vv8 | 色婷婷综合久色| 91在线视频免费播放| 欧美中文字幕亚洲一区二区va在线 | 亚洲熟妇无码av| 久久尤物电影视频在线观看| 亚洲区免费视频| 日本一区二区视频在线观看| 成年人网站在线观看视频| 一色屋精品亚洲香蕉网站| 一区二区三区影视| 亚洲在线中文字幕| 日韩精品在线不卡| 欧美日韩亚洲视频| 国产乡下妇女三片| 91精品黄色片免费大全| 亚洲高清视频网站| 日韩国产在线播放| av网站在线免费观看| 超薄丝袜一区二区| 99色在线观看| 国产精品吹潮在线观看| 成人在线啊v| 成人免费看片网址| 影视先锋久久| 熟女熟妇伦久久影院毛片一区二区| 欧美日韩网址| 波多野结衣天堂| 另类小说一区二区三区| 91精品人妻一区二区三区四区| 91最新地址在线播放| 999福利视频| 亚洲成人av一区| 一区二区视频网站| 精品国产乱码久久久久久久久| 巨骚激情综合| 欧美成人网在线| 黑人巨大精品| 操一操视频一区| 欧洲三级视频| 免费毛片网站在线观看| 麻豆精品新av中文字幕| 无码任你躁久久久久久老妇| 国产丝袜美腿一区二区三区| 欧美成人精品激情在线视频| 日韩欧美国产激情| 亚洲AV无码乱码国产精品牛牛| 国产一区二区三区网站| 日本三级韩国三级欧美三级| 国产精品久久久久久久久久久久久久| 超碰成人在线观看| 亚洲精品第一区二区三区| 最新日韩av| 国产农村妇女精品久久| 国产日产亚洲精品系列| 国产精品2020| 欧美精品亚洲二区| 国产三级视频在线看| 欧美激情综合色| 99综合久久| 日韩福利视频| 亚洲免费影视| 天堂va欧美va亚洲va老司机| 中文字幕佐山爱一区二区免费| www.久久精品视频| 亚洲国产免费av| 在线观看午夜av| 成人高清视频观看www| 国产亚洲一卡2卡3卡4卡新区 | 日韩高清在线播放| 国产精品久久久久9999高清| 免费黄视频在线观看| 中文字幕一区二区三| 国产精品第6页| 国产视频丨精品|在线观看| 污影院在线观看| 亚洲影院色在线观看免费| 久久国产综合| 在线免费观看视频黄| 欧美极品另类videosde| 国产污视频网站| 亚洲人成亚洲人成在线观看| 日本蜜桃在线观看视频| 国产精品永久入口久久久| 激情久久久久| 亚洲 自拍 另类 欧美 丝袜| 亚洲男人都懂的| 国产哺乳奶水91在线播放| 久久视频在线播放| 久久9999免费视频| 黄色www在线观看| 激情五月激情综合网| 国产一区二区三区视频播放| 欧美唯美清纯偷拍| 99re在线视频| 91欧美精品午夜性色福利在线 | 久久久电影免费观看完整版| 日本黄色成人| 精品91一区二区三区| 国产美女精品人人做人人爽| 丰满少妇被猛烈进入一区二区| 91精品国产福利| 美女尤物在线视频| 精品国产一二| 免费亚洲视频| 91麻豆制片厂| 91精选在线观看| 欧美人与牲禽动交com| 国产精品自拍首页| 免费一级欧美片在线播放| 日韩丰满少妇无码内射| 欧美三级电影在线观看| 黄在线免费观看| 成人动漫在线视频| 亚洲欧美卡通另类91av| 成年人在线免费看片| 欧美一区二区福利视频| 久草在线视频资源| 欧美欧美一区二区| 蜜桃av一区二区在线观看| www.av视频| 亚洲精品乱码久久久久久按摩观| 欧美精品日日操| 一级一片免费播放| 成人免费视频网站在线观看| 久久精品无码av| www.国产一区| 日本超碰一区二区| 欧美日韩在线视频一区二区三区| 中文字幕第一区| 亚洲第一视频在线| 国产xxx69麻豆国语对白| 国产精品久久久久久影院8一贰佰 国产精品久久久久久麻豆一区软件 | 色美美综合视频| av网站大全在线| 欧美午夜精品久久久久免费视| 狠狠色伊人亚洲综合成人| 国产手机在线视频| 中文字幕日韩综合av| 国产精品白浆| 爱爱爱爱免费视频| 亚洲成a人片在线观看中文| 午夜在线观看视频| 九色91国产| 国内精品在线播放| 亚洲欧美精品一区二区三区| 久久久999精品| 精品视频网站|