文献笔记|符号网络|OBOE|Look Before You Leap: Confirming Edge Signs in Random Walk with Restart for PNR in SN

Look Before You Leap: Confirming Edge Signs in Random Walk with Restart for Personalized Node Ranking in Signed Networks

题目:《三思后行:在重启随机游走种确认边符号,用户符号网络中的个性化节点排名》

作者:Wonchang Lee, Yeon-Chang Lee, Dongwon Lee, Sang-Wook Kim

来源:SIGIR‘21

代码:http://github.com/wonchang24/OBOE

关键词:personalized node ranking; signed networks; balance theory

研究对象

在本文中,我们解决了有符号网络的个性化节点排序问题(PNR),该问题的目标是在有符号网络中按 照与给定种子节点最相关的顺序,对节点进行排序。考虑以下两个因素:

  • 网络的结构
  • 种子节点的连通性

请添加图片描述

相关工作

传统方法

请添加图片描述

最近的工作

最近提出的PNR方法引入了有符号随机游走者的概念,简称为SRSurfer,利用平衡理论在节点之间进行 分数传播。在有符号网络的实际设置中,边的关系往往没有严格遵循平衡理论的规则。因此,基于 SRSurfer的PNR方法经常会对节点进行错误的评分传播,从而降低了PNR的准确性。

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

作者的方法

作者提出了一种新的基于随机游走的符号验证PNR方法,命名为OBOE。简单来说,OBOE利用节点的拓扑特征,仔细验证SRSurfer的分数传播。然后,OBOE利用给定网络的统计数据对所有不正确的分数传播案例进行修正。

请添加图片描述

方法的细节

请添加图片描述
请添加图片描述

  • r y + {\bf{r}}^+_y ry+ r y − {\bf{r}}^-_y ry 分别表示 n x {\bf{n}}_x nx n y {\bf{n}}_y ny 之间的边关系为正号和负号的可能性(用OBOE测量)
  • 如果 x = y,则 r y + {\bf{r}}^+_y ry+ r y − {\bf{r}}^-_y ry 的初始值设为1和0。否则的话, r y + {\bf{r}}^+_y ry+ r y − {\bf{r}}^-_y ry 的初始值都设为0。

图a:

  • 通过OBOE的分数传播策略, n y {\bf{n}}_y ny 已经收到了之前访问过的节点 n j {\bf{n}}_j nj 的分数;
  • 图中 n y {\bf{n}}_y ny n z {\bf{n}}_z nz 之间的正边关系是给定的;
  • 游走者将按照某一概率游走到 n z {\bf{n}}_z nz ,此时会按照OBOE的策略,将 r y + {\bf{r}}^+_y ry+ r y − {\bf{r}}^-_y ry 传播给 n z {\bf{n}}_z nz

图b:

  • (朋友的朋友是朋友)如果 n y {\bf{n}}_y ny n z {\bf{n}}_z nz 之间的边号是正的,OBOE会按照平衡理论的方式将 r y + {\bf{r}}^+_y ry+ 传播到 r z + {\bf{r}}^+_z rz+
  • (朋友的敌人是敌人)如果 n y {\bf{n}}_y ny n z {\bf{n}}_z nz 之间的边号是负的,OBOE会按照平衡理论的方式将 r y − {\bf{r}}^-_y ry 传播到 r z − {\bf{r}}^-_z rz
  • 同理,按照平衡理论:敌人的朋友是敌人,敌人的敌人是朋友。
  • 图b想表达的意思是平衡理论是有可能出错的,真正的关系应该是怎样呢?

图c:

  • 为了验证平衡理论是否出错,OBOE会按照图本身的拓扑结构对 n x {\bf{n}}_x nx n z {\bf{n}}_z nz 的关系进行预测;

图d:

  • 如果验证平衡理论正确,则按照平衡理论将分数进行传播;
  • 如果验证平衡理论不正确,OBOE会按照某一比值将 r y + {\bf{r}}^+_y ry+ 传播到 r z + {\bf{r}}^+_z rz+ r z − {\bf{r}}^-_z rz ;同理, r y − {\bf{r}}^-_y ry 也会被传播到 r z + {\bf{r}}^+_z rz+ r z − {\bf{r}}^-_z rz

请添加图片描述

关联规则:给定一个交易数据库D,其中每个事务t是I的非空子集,即,每一个交易都与一个唯一 的标识符TID(Transaction ID)对应。关联规则在D中的支持度(support)是D中事务同时包含X、Y的 百分比,即概率;置信度(confidence)是D中事务已经包含X的情况下,包含Y的百分比,即条件概率。如果满足最小支持度阈值和最小置信度阈值,则认为关联规则是有趣的。这些阈值是根据挖掘需要人为设定。

请添加图片描述
请添加图片描述

迭代算法

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

请添加图片描述

请添加图片描述

收敛性证明

请添加图片描述
请添加图片描述
请添加图片描述

以下是使用 Oboe 实现耳返功能的示例代码: ```cpp #include <oboe/Oboe.h> class EarbackStream : public oboe::AudioStreamCallback { public: EarbackStream() {} oboe::DataCallbackResult onAudioReady(oboe::AudioStream *audioStream, void *audioData, int32_t numFrames) override { // 获取输入音频数据 int16_t *inputData = static_cast<int16_t *>(audioData); // 处理音频数据 // ... // 将处理后的音频数据输出到耳机或耳麦 oboe::AudioStream *outputStream = getOutputStream(); if (outputStream != nullptr) { outputStream->write(inputData, numFrames, 0); } return oboe::DataCallbackResult::Continue; } oboe::AudioStream *getOutputStream() { if (mOutputStream == nullptr) { oboe::AudioStreamBuilder builder; builder.setDirection(oboe::Direction::Output) .setPerformanceMode(oboe::PerformanceMode::LowLatency) .setSharingMode(oboe::SharingMode::Exclusive) .setFormat(oboe::AudioFormat::I16) .setChannelCount(oboe::ChannelCount::Mono) .setSampleRate(oboe::SampleRate::Unspecified) .setCallback(nullptr) .openManagedStream(mOutputStream); } return mOutputStream.get(); } private: std::shared_ptr<oboe::AudioStream> mOutputStream; }; // 启动耳返功能 void startEarback() { // 创建输入音频流 oboe::AudioStreamBuilder builder; builder.setDirection(oboe::Direction::Input) .setPerformanceMode(oboe::PerformanceMode::LowLatency) .setSharingMode(oboe::SharingMode::Exclusive) .setFormat(oboe::AudioFormat::I16) .setChannelCount(oboe::ChannelCount::Mono) .setSampleRate(oboe::SampleRate::Unspecified) .setCallback(new EarbackStream()) .openManagedStream(nullptr); } // 停止耳返功能 void stopEarback() { // 关闭音频流 // ... } ``` 以上代码中,`EarbackStream` 类是一个实现了 `oboe::AudioStreamCallback` 接口的音频流回调类,它在 `onAudioReady` 方法中获取输入音频数据,处理后将数据输出到耳机或耳麦中。`getOutputStream` 方法用于创建输出音频流,并返回一个指向该音频流的指针。`startEarback` 函数用于启动耳返功能,它创建一个输入音频流,并设置 `EarbackStream` 类为回调对象;`stopEarback` 函数用于停止耳返功能,它关闭输入和输出音频流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值