CN104951499B - 一种跨域用户关联方法及信息推送方法 - Google Patents
一种跨域用户关联方法及信息推送方法 Download PDFInfo
- Publication number
- CN104951499B CN104951499B CN201510199720.XA CN201510199720A CN104951499B CN 104951499 B CN104951499 B CN 104951499B CN 201510199720 A CN201510199720 A CN 201510199720A CN 104951499 B CN104951499 B CN 104951499B
- Authority
- CN
- China
- Prior art keywords
- user
- cookie
- http
- group
- bags
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种跨域用户关联方法及信息推送方法。本方法为:1)从网络中收集HTTP包,并按照设定的时间窗口对采集的包划分;2)对每一窗口内的包,根据FixCookie列表进行聚类,将同一用户的一次请求聚在一起,然后将各窗口内相同用户的用户组集合合并为一个用户组集合;3)对采集的包进行聚类,将主机名、cookie名和值相同的包聚为一组,将同一组内的包对应的用户组集合合并;4)对采集的包进行聚类,将主机名、cookie名和值相同且不存在fixCookie冲突的包聚为一组,将同一组内的包对应的用户组集合合并;5)将位于4)中同一用户组集合内的用户判定为不同域中的同一用户。本方法准确率高,聚类效果好。
Description
技术领域
本发明涉及一种基于Cookie聚类分析的跨域用户关联方法及信息推送方法,属于互联网用户行为关联分析领域。
背景技术
一般情况下,网站或者广告联盟都会非常想要一种技术方式可以在网络上精确定位到每一个个体,这样可以通过收集这些个体的数据,通过分析后更加精准的去推送广告信息或其他有针对性的一些活动。Cookie技术是非常受欢迎的一种。当用户访问一个网站时,网站可以在用户当前的浏览器Cookie中永久植入一个含有唯一标识符(UUID)的信息,并通过这个信息将用户所有行为(浏览了哪些页面?搜索了哪些关键字?对什么感兴趣?点了哪些按钮?用了哪些功能?看了哪些商品?把哪些放入了购物车等等)关联起来。
用户唯一标识体系
在互联网中,我们有着许多标识唯一用户的技术手段,其中,最为常见的就是Cookie了。简单的多,Cookie具备几个特征:
唯一性,一个Cookie是唯一存在于一个域名下的;
归属权,一个Cookie必须属于某一个域名,且相互不能访问使用;
持久性,一个Cookie可以持久的存在于一个浏览器中。
正因为Cookie具备上述几个特征,也就衍生出Cookie在使用上的一些特点了,我们以A.COM(购物平台),B.COM(游戏平台),C.COM(数据管理平台)为例,存在以下结论:
A.COM,B.COM,C.COM都存在各自的用户标识体系(各自定义的唯一ID标识);
用户User在上述三个产品的ID分别是a1,b1,c1,且相互不能访问使用。
A.COM,B.COM,C.COM都可以唯一的标识出用户User,但并不能相互读取标识信息。
共享用户特征
由于业务的需要,A.COM,B.COM,C.COM均有不同的业务:
广告主使用A.COM进行广告投放,并且用户User点击了游戏广告;
用户User主动使用了C.COM提供的浏览器购物比价插件服务;
用户User点击过位于交易平台B.COM上的职业学习、求职类广告;
存在这种情况,A.COM识别出了User喜欢玩游戏特征,C.COM识别出了User是男性用户, B.COM识别出了User是个年轻人。此时由于A,B,C三方的数据并不共享,因此对于业务人员而言,仅知道a1喜欢玩游戏,b1是年轻人,c1是男性用户。并不能直接知道User是个喜爱玩游戏的年轻男性。
广告系统的目标是要能够识别用户User玩游戏的时候给他进行产品的推荐,此时产品的推荐依赖于用户曾经在C.COM,B.COM上购买过产品或浏览过一些信息。最终目标将不同业务体系中的用户特征合并绑到同一个用户上来,然而现有方法无法将不同业务体系中的用户特征合并绑到同一个用户上来。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种基于Cookie聚类分析的跨域用户关联方法及信息推送方法。本发明利用用户时序行为和第三方Cookie对不同域名用户进行聚类关联,专利在聚类过程中采用了“三次加法聚类、三次减法排除”的方法。首先在时间窗口内对用户一次访问进行聚类,在聚类过程中通过FixCookie进行排除,然后利用FixCookie进行第二次聚类,最后利用Any-Cookie进行三次聚类,用FixCookie进行排除。专利聚类方法不依赖任何第三方设备或程序对不同域名下的Cookie做Mapping映射(物理或程序),而是对网络中HTTP包进行聚类分析,算法准确率高,聚类效果好。
本发明的技术方案为:
一种跨域用户关联方法,其步骤为:
1)搜索域名的FixCookie,建立一FixCookie列表;
2)从网络中收集HTTP包,并按照设定的时间窗口对采集的HTTP包进行划分;其中,该时间窗口为划分用户访问关联第三方的界限;
3)对每一时间窗口内的HTTP包,根据FixCookie列表采用用户时序聚类分析器进行聚类,将同一用户的一次请求聚在一起,得到多个用户组集合;然后将各个时间窗口内相同用户的用户组集合合并为一个用户组集合;
4)采用FixCookie聚类分析器对采集的HTTP包进行聚类,将主机名相同且cookie名、cookie值相同的HTTP包聚为一组,如果同一组内的HTTP包位于步骤3)合并后不同的用户组集合内,则再将对应的用户组集合合并为一个用户组集合;
5)采用anyCookie聚类分析器对采集的HTTP包进行聚类,将主机名、cookie名、cookie值相同且不存在fixCookie冲突的HTTP包聚为一组,如果同一组内的HTTP包位于步骤4)合并后不同的用户组集合内,则再将对应的用户组集合合并为一个用户组集合;
6)将位于步骤5)中同一用户组集合内的用户判定为不同域中的同一用户。
进一步的,所述不存在fixCookie冲突的HTTP包为具有相同主机名、都含有相同的cookie属性,且cookie_name相等但cookie_value不相等。
进一步的,所述步骤2)中,首先对从网络中收集HTTP包进行预处理,然后对采集的HTTP包进行划分;其中预处理方法为:
31)对收集的HTTP包进行过滤,去掉无Cookie的HTTP包和无浏览器标识UA的HTTP包;
32)将过滤后的HTTP包规整为键值对格式,然后按时间对进行排序;
33)将排序后的HTTP数据转化为JSON格式形式存储。
进一步的,所述HTTP包信息包括:用户IP、出口IP、端口号、主机、路径、时间、浏览器标识UA、引用和Cookie。
一种信息推送方法,其步骤为:
1)搜索域名的FixCookie,建立一FixCookie列表;
2)从网络中收集HTTP包,并按照设定的时间窗口对采集的HTTP包进行划分;其中,该时间窗口为划分用户访问关联第三方的界限;
3)对每一时间窗口内的HTTP包,根据FixCookie列表采用用户时序聚类分析器进行聚类,将同一用户的一次请求聚在一起,得到多个用户组集合;然后将各个时间窗口内相同用户的用户组集合合并为一个用户组集合;
4)采用FixCookie聚类分析器对采集的HTTP包进行聚类,将主机名相同且cookie名、cookie值相同的HTTP包聚为一组,如果同一组内的HTTP包位于步骤3)合并后不同的用户组集合内,则将对应的用户组集合合并为一个用户组集合;
5)采用anyCookie聚类分析器对采集的HTTP包进行聚类,将主机名、cookie名、cookie值相同且不存在fixCookie冲突的HTTP包聚为一组,如果同一组内的HTTP包位于步骤4)合并后不同的用户组集合内,则将对应的用户组集合合并为一个用户组集合;
6)将位于步骤5)中同一用户组集合内的用户判定为不同域中的同一用户;
7)根据步骤6)的结果提取同一用户在不同域中的特征信息,向具有相同特征的用户发送设定信息。
进一步的,所述不存在fixCookie冲突的HTTP包为具有相同主机名、都含有相同的cookie属性,且cookie_name相等但cookie_value不相等。
进一步的,所述步骤2)中,首先对从网络中收集HTTP包进行预处理,然后对采集的HTTP包进行划分;其中预处理方法为:
34)对收集的HTTP包进行过滤,去掉无Cookie的HTTP包和无浏览器标识UA的HTTP包;
35)将过滤后的HTTP包规整为键值对格式,然后按时间对进行排序;
36)将排序后的HTTP数据转化为JSON格式形式存储。
本方法首先对局域网中用户HTTP包数据进行预处理,包括数据清洗、HTTP包排序、HTTP包转换为JSON格式数据,接下来对JSON格式数据进行聚类分析,聚类分析过程包括三部分:基于用户时序聚类、基于FixCookie聚类和基于Any-Cookie聚类,经三个聚类器处理后就可将属于同一个用户的不同网站的HTTP包关联到一个用户,从而实现了用户跨域追踪。
与现有技术相比,本发明的积极效果为:
本发明的用户时序行为关联聚类算法整体效果较好,能够保持准确率在80%,平均覆盖率在42%。能够将不同业务数据关联到同一个用户,进而进行推荐,算法具有准确率高,聚类效果好等优点。
附图说明
图1为本发明的总体流程图;
图2为用户时序关联算法流程图;
图3为基于FixCookie聚类算法流程图;
图4为基于AnyCookie聚类算法流程图。
具体实施方式
本发明的方法总体流程图如图1所示。下面结合附图对本发明进行进一步详细描述。
1.用户HTTP包数据说明及预处理
本发明首先要收集网站HTTP包(比如在局域网对外出口路由器上部署了一套抓包代码,对局域网中所有HTTP包进行收集);然后将收集的HTTP包以文件形式存储为一个文件,放在一起处理;用户HTTP包包含许多重要的信息,例如UA,HREF,COOKIE,TIME等,这些信息可以用作算法聚类的准则,同时为了提高聚类算法的准确性,人工标记了一些第三方访问以及一些Domain不变的FixCookie,这些数据大大提高了聚类算法准确度。
1)HTTP包信息
用户HTTP包信息包括用户IP(UserIp)、出口IP(SourceIp),端口号(Port),主机(Host),路径(Path),时间(UnixTime),浏览器标识(UA),引用(Referer),Cookie等属性。通常一个网站会有多个cookie,Fixcookie是那些长期不变的、被用来标识用户的cookie。一个cookie一般由cookie_name(cookie名)和cookie_value(cookie值)组成,如 ‘SGUID=1355294586548_97680443’的cookie_name为SGUID,cookie_value为1355294586548_97680443。
其描述及示例值如表1所示:
表1 用户HTTP包属性列表及示例值
2)数据预处理
算法开始之前需对原始数据进行处理,处理过程包括清洗、规整、排序、转化四个步骤,每个步骤功能描述如下:
清洗:对数据进行过滤,去掉无Cookie的HTTP包,去掉无(UA)User-Agent的HTTP包;
规整:将cookie规整为K-V对格式,例如对于cookie“SGUID=1355294586548_97680443”来说,cookie_name为SGUID,而cookie_value为‘1355294586548_97680443’,这里的K-V对实际是cookie_name-cookie_value对。对于表1中的cookie其实是有三个K-V对。
排序:按时间对整个数据排序;
转化:将HTTP数据转化为JSON格式形式存储;
最终数据以JSON格式存储,并作为聚类算法的输入。示例数据如下:
{"id":4,"unixTime":"1413861120252","parameter":"/newimpress","host":"sax.sina.com.cn","userAgent":"Mozilla/5.0(X11;Linux i686)AppleWebKit/537.36(KHTML,like Gecko)Ubuntu Chromium/37.0.2062.120Chrome/37.0.2062.120Safari/537.36","homeHost":"sax.sina.com.cn","useIp":"10.0.2.22","referer":"http://www.sina.com.cn/","destinationIP":"123.125.29.220","cookies":{"SUE":"es%3Dc1n9x4AUo6LVoEZ4MkuMdmDg TPG3OLhhJz%252FDKN2OE%253D%26rv%3D0","Apache":"103.250.226.130_1413784845.960030","SUS":"SID-3731893567-1413784852-XD-vu508fe4a6d20bafab122f3","SGUID":"1355294586548_97680443","vjuids":"-2542d3a8b.140aa6fe6c6.0.8b69cfc4"}}
2.行为时序聚类算法
行为时序分析算法由用户时序聚类分析器、FixCookie聚类分析器和Any-Cookie聚类分析器{满足任意一种聚类器的条件即可将两个HTTP包聚为一类}组成,每个聚类分析器侧重点不一样,聚类分析器在处理过程中需按顺序执行,顺序的颠倒会影响整个算法的准确率和覆盖 率。用户时序分析器依据时间窗口内的HTTP包满足一定规则聚类,在此过程中我们称为“一次访问聚类”,FixCookie聚类分析器依据HTTP包中Cookie有相同的FixCookie属性值聚类,Any-Cookie聚类分析器依据HTTP包Cookie字段任意相同属性值相等规则进行聚类。聚类过程中将满足条件的两个HTTP包合并为一个组或将两个HTTP包所属的组合并为一个大组。例如H为HTTP包集合,聚类过程中,如果hi和hj满足聚类条件,则将hi和hj合并为一个组Gk={hi,hj};如果hi和hj满足聚类条件并且hi∈Gi,hj∈Gj,则将hi和hj及hi和hj所属的组Gi和Gj合并为一个大组G′={hi∈Gi,hj∈Gj}。预处理数据经过三个分类器聚类分析后,将不同Domain下的HTTP包关联到一个组,即属于一个用户。
1)基于用户时序聚类分析器
统计发现,用户访问某个网站,同时也会发起第三方的请求,如表2所示:
表2 用户访问淘宝网站发起第三方请求
用户时序聚类分析器主要作用将同一用户的一次请求聚在一起,即“一次请求”聚类。当用户点击一个页面(也可认为是发出一次请求)时,会发出多个HTTP包,这些HTTP包中既包含第一方HTTP,也包含第三方HTTP。一个很好的例子是当点击新浪首页时,在一个时间窗口内新浪首页会生成,此时就发出了多个HTTP请求包,其中有些属于第三方广告联盟的包发送到了第三方,而新浪的包发往了新浪,即第一方。设时间窗口ΔT用于划分用户某次访问关联第三方访问的界限,在ΔT时间内属于同一个用户,大于ΔT时间不能判断属于同一个用户,由于网络环境不同ΔT取值也不同,本专利实验环境ΔT取值1秒时聚类效果最优。比如User1访问了淘宝taobao.com,由于淘宝网站本身的机制,淘宝网站会向第三方平台发起请求(例如tanx.cn),这就是所谓的第三方访问。首先数据预处理将数据按时间排好序,将时间窗口在排好序的数据上滑动,滑动过程中进行聚类,将一个用户的一次(包括对第一方和第三方)访问聚在一块。同时这一步产生的聚类结果作为第二个聚类分析器的输入,继续从不同角度(第三方网站的关联性),将同一用户关联。
分析发现,第一方(request1)与第三方(request3)存在下面的关系request1.host=request3.href,即request3是从request1的一个链接(href为表1中Referer字段,host和href在代码中相等对href提取域名后相等{这里说request1.host=request3.href并非指字符串相等,而是指host与href是同一个域名。例如’host=baidu.com’与href=’www.baidu.com/news’是同一个域名,因为二者都是属于baidu.com的。}),用户浏览器UA也可作为对属于ΔT时间内的用户请求包,如果request1.host=request3.href,request1.UA=request3.UA和request1.UserIp=request3.UserIp可以关联request1和request3为同一个用户。
然而同一局域网满足上述条件的request1和request3可能是不同的用户。为了提高聚类算法的准确度,将满足上述条件的request1和request3区分,本专利人工找了许多FixCookie,即某Domain下不变的Cookie,通过比较相同domain中FixCookie值,如果不等,则request1和request3为不同用户。目前,FixCookie库大小为六百多个。比较常见的电商、搜索和游戏FixCookie如下表3所示:
表3 常见的电商、搜索和游戏FixCookie
域名{host} | FixCookie{即cookie_name} |
taobao.com | cna |
amazon.com | x-wl-uid |
etao.com | cna |
gome.com.cn | uid,cookie |
jd.com | mt_ext,__jda,user-key |
jumei.com | cookie_uid |
baidu.com | BAIDUID |
youdao.com | youdao_usr_info |
soso.com | SUID |
hao.360.cn | __huid |
Bing.com | MUID |
sogou.com | SUID,SUV |
yeyou.com | SUV |
nie.163.com | _ntes_nuid |
用户时序关联聚类算法文字描述:
输入:按时间戳排好序的HTTP包列表H={h1,h2,…,hN},hN是第N个HTTP包;时间窗口大小ΔT,FixCookie列表F={f1,f2,…,fM},这一步需要用到列表F,在一个时间窗口内,F用来排除错误的聚类,例如h1和h2时间戳之差不大于ΔT,且满足聚类条件,但是二者存在fixCookie冲突(h1和h2中由一个cookie_name相同,而cookie_value不同的fixCookie),此时应该禁止h1和h2的聚类。fm是第m个FixCookie,fm为K-V对<host,cookie_name>,例如<baidu.com,BAIDUID>。
输出:用户组集合G={g1,g1,…,gS},其中gi表示由HTTP包组成的集合{在使用第一个 聚类器聚类的过程中,属于gi的HTTP被聚在一组,它们属于同一个用户;第二个聚类器在第一个聚类器的基础上聚类,可能会把其中的gi和gj合并为同一个用户组gk};对于任意i、j,gi∩gj=Ф。
其它说明:cookie_value(p.cookie_name(c))表示获取数据包p的cookie_name为c的cookie_value。
步骤1:用户组集合G={g1,g2,...,gN},gi={i},组数与包数相等,即每个包一个用户组;当前包cur=NULL;将要与cur比较的包的列表TS=NULL,其中对于TS中任意包p有cur.UnixTime-p.Unixtime<ΔT。转向步骤2。
步骤2:从H中读取一个HTTP包cur。若cur不为NULL则转向步骤3,否则转向步骤8。
步骤3:对于任意p属于TS,如果cur.UnixTime-p.Unixtime>=ΔT(即是cur的时间戳与p的时间戳时间间隔大于ΔT),则从TS中删除p。转向步骤4。
步骤4:从TS中读取一个HTTP包p。若p为NULL则转向步骤2,否则转向步骤5。
步骤5:若满足(cur.UseIp==p.UseIp)&&
(cur.UserAgent==p.UserAgent)&&
(cur.Host==p.Referer||cur.Referer==p.Host||(cur.DestIp==p.DestIp),则转向步骤6;
否则转向步骤4。
步骤6:获取cur的cookie列表lstC1、p的cookie列表lstC2,其中lstC1和lstC2的每个元素为二元组<cookie_name,cookie_value>,若lstC1和lstC2中分别存在元素A、B,cur.host==p.host&&A.cookie_name==B.cookie_name&&<cur.host,A.cookie_name>∈F&&A.cookie_value!=B.cookie_value,即存在fixCookie冲突,则转向步骤4,否则转向步骤7。
步骤7:将cur和p置为相同的用户组标号(根据http_id将二者所在用户组合并为一个)。
步骤8:输出用户组集合G。
用户时序关联聚类算法伪代码:
输入:HTTP包集合H={h1,h2,…,hN},时间窗口ΔT,FixCookie列表F={f1,f2,…,fM}
输出:用户组集合G={g1,g1,…,gS}
初始化:读取FixCookie列表F;用户组集合G=NULL;时间内的用户包集合TS=NULL
for i=1 to N do
current_h=hi;
//以hi为参照点,清除集合TS中时间窗口ΔT外的HTTP包
//对hi和TS进行聚类分析,并将集合中与hi、TS属于同一个用户的包聚为一个GROUP
用户时序关联聚类算法流程图如图2所示。
2)基于FixCookie聚类分析器;从第一个聚类器得到用户组集合G={g1,g1,…,gS};已知FixCookie列表F;HTTP包列表H={h1,h2,…,hN};列表lstFixCookie=NULL;
for(cur in H)
求得cur的cookie列表lstC(一个HTTP包有多个cookie,以‘;’分隔;每个cookie包
含cookie_name和cookie_value,以‘=’分隔),其中lstC的元素为四元组<host,
cookie_name,cookie_value,http_id>
遍历完H之后,对lstFixCookie按照host,cookie_name,cookie_value排序后,将host,cookie_name,cookie_value都相等的HTTP包(根据http_id)所在用户组合并,如gi、gj合并为gk。
FixCookie指某域名对应的不变的Cookie,基于FixCookie聚类算法主要根据相同域名下的FixCookie值进行分类,即对任意两个HTTP包,如果主机host相同,而且通过查询人工库找出host所对应的FixCookie属性,比较FixCookie值是否相等进行聚类。人工库数量大小六百多,虽然量级较小,但分类器能够实现准确的聚类,聚类结果百分之百准确。实验发现,基于FixCookie聚类分析器对整体覆盖率是非常有效的。
基于FixCookie算法文字描述步骤:
输入:HTTP包列表H={h1,h2,…,hN},FixCookie列表F={f1,f2,…,fM},用户组集合G={g1,g1,…,gS}(用户时序关联算法组集合输出);这里的聚类是递增聚类,对于上一个聚类器得到的G,假设根据第二个聚类器的聚类条件p1与p2可以合并(p1∈g1,p2∈g2),则从G中去除g1、g2,然后加入g3=g1∪g2。例如原本G={{1,2},{3,4},{5,6}},从第二个分类器判别得出标识为1和3的两个包可以合并,则经过这次合并G={{1,2,3,4},{5,6}}。
输出:用户组集合G={g1,g2,...,gS’}
初始化:读取FixCookie到集合F={f1,f2,…,fM}{将表3存储到F中,fm是第m个FixCookie,fm为K-V对<host,cookie_name>,例如<baidu.com,BAIDUID>。}。
步骤1:当前包cur=NULL;列表lstFixCookie=NULL,lstFixCookie的每个元素elem为四元组<host,cookie_name,cookie_value,http_id>{第二个分类器的原理是假如h1和h2的host都是baidu.com且都含有某个FixCookie“BAIDUID=abcdefg123”(即cookie_name和cookie_value都相等),则将h1和h2合并为同一个组。lstFixCookie初始为空,每个元素为四元组<host,cookie_name,cookie_value,http_id>。}。转向步骤2。
步骤2:从H中读取一个HTTP包cur。若cur不为NULL则转向步骤3,否则转向步骤7。
步骤3:取得cur的cookie列表lstC,lstC的每个元素也为四元组<host,cookie_name,cookie_value,http_id>,对于cur中的每个cookie ck,都生成一个四元组<cur.host,ck.cookie_name,ck.cookie_value,cur.http_id>放入lstC中{一个HTTP包一般包含多个cookie,以分号分隔,lstC每个元素对应其中一个cookie}。转向步骤4。
步骤4:从lstC中获取一个元素E,从lstC中删除E并求得二元组key=<E.host,E.cookie_name>{步骤4是个for循环,每次从lstC中读取一个cookie}。若key==NULL{表示for循环结束},转向步骤2,否则转向步骤5。
步骤5:若key∈F转向步骤6,否则转向步骤4。
步骤6:将E放入LstFixCookie中,转向步骤4。比如有两个HTTP包H1={id=1,host=”h”,cookie=”c1=a;c2=b;c3=c”}、H2={id=2,host=”h”,cookie=”c3=c;c4=d”},假设<h,c3>∈F,则E1=<h,c3,c,1>和E2=<h,c3,c,2>都会被放入LstFixCookie中。根据步骤7和8,可以将H1和H2合并)。
步骤7:将lstFixCookie按照host、cookie_name、cookie_value排序。转向步骤8。
步骤8:将lstFixcookie中相邻(由于经过了排序,故而host、cookie_name、cookie_value都相同的元素是相邻的)且host、cookie_name、cookie_value都相等的元素置为相同的用户组标号{假如h1和h2满足条件,则将h1和h2所在的集合合并为一个用户组}。转向步骤9
步骤9:输出用户组集合G。
基于FixCookie算法伪代码:
输入:HTTP包集合H={h1,h2,…,hN},FixCookie列表F={f1,f2,…,fM},用户组集合G={g1,g1,…,gS}(用户时序关联算法组集合输出)
输出:用户组集合G′={g′1,g′1,…,g′S′}
初始化:读取FixCookie到集合F={f1,f2,…,fM}。
基于FixCookie聚类算法流程图如图3所示。
3)基于AnyCookie聚类分析器
从上一个聚类器得到用户组集合G={g1,g2,...,gS’};已知FixCookie列表F;HTTP包列表H={h1,h2,…,hN};列表lstFixCookie2=NULL;
基于FixCookie聚类算法完全依赖人工库,网络中HTTP包种类繁多,人工方式是不可能统计完全,接下来的基于AnyCookie聚类分析器可以解决这个问题。对任意两个HTTP包h1和h2,通过比较h1.cookies和h2.cookies中相同属性的cookie值相等对两个用户聚类,同时在聚类过程中借助FixCookie对Cookie值相等的用户进行检查。总体来说,基于AnyCookie聚类分析器对任意两个HTTP包关联非常有效。
基于AnyCookie算法文字描述步骤:
输入:HTTP包列表H={h1,h2,…,hN},FixCookie列表F={f1,f2,…,fM},用户组集合G={g1,g2,...,gS’}(上一次聚类器输出),例如原本G={{1,2},{3,4},{5,6}},从第三个分类器判别得出标识为1和3的两个包可以合并,则经过这次合并G={{1,2,3,4},{5,6}}。
输出:用户组集合G={g1,g2,...,gS”}
初始化:读取FixCookie到集合F={f1,f2,…,fM}{将表3存储到F中,fm是第m个FixCookie,fm为K-V对<host,cookie_name>,例如<baidu.com,BAIDUID>。}。
步骤1:当前包cur=NULL;列表LstFixCookie2=NULL,LstFixCookie2的每个元素为六元组<host,cookie_name,cookie_value,fix_cookie_name,fix_cookie_value,http_id>,lstC2=NULL;{第三个分类器的原理是假如h1和h2的host都是baidu.com且都含有某个任意Cookie“CKID=abcdefg123”(注意必须是cookie_name和cookie_value都相等),即第二个分类器使用fixCookie进行关联,而第三个分类器使用fixCookie进行排除,假如h1和h2中不存在fixCookie冲突(即h1.host==h2.host,h1和h2都含有相同的cookie属性(例如t_c,t_c属于F),,且h1与h2对应t_c的cookie_name相等但cookie_value不相等),则将h1和h2合并为同一个组。LstFixCookie2初始为空}。转向步骤2。
步骤2:从H中读取一个HTTP包cur。若cur不为NULL则转向步骤3,否则转向步骤5。
步骤3:取得cur的fixCookie fixC(fixCookie为多个cookie中的一个)。转向步骤4
步骤4:生成cur的cookie列表lstC2,lstC2的每个元素也为六元组<host,cookie_name,cookie_value,fix_cookie_name,fix_cookie_value,http_id>,对于cur中的每个cookie ck,都生成一个六元组<cur.host,ck.cookie_name,ck.cookie_value,fixC.cookie_name,fixC.cookie_value,cur.http_id>放入LstFixCookie2(比如假设有HTTP包H1={id=1,host=”h”,cookie=”c1=a;c2=b;c3=c”},且<h,c3>∈F,则<h,c1,a,c3,c,1>和<h,c2,b,c3,c,1>都会被放入LstFixCookie2中。)中。转向步骤2。
步骤5:将LstFixCookie2按照host、cookie_name、cookie_value排序。转向步骤6
步骤6:将LstFixcookie2中相邻(由于经过了排序,故而host、cookie_name、cookie_value都相同的元素是相邻的)且host、cookie_name、cookie_value都相等且不存在fixCookie冲突(fix_cookie_name相等,fix_cookie_value不等)的元素置为相同的用户组标号{假如h1和h2满足条件,则将h1和h2所在的集合合并为一个用户组}。转向步骤7
步骤7:输出用户组集合G。
基于AnyCookie算法伪代码:
输入:HTTP包集合H={h1,h2,…,hN},FixCookie列表F={f1,f2,…,fM},用户组集合G′={g′1,g′1,…,g′S′}(基于FixCookie算法组集合输出)
输出:用户组集合G″={g″1,g″2,…,g″S″}
初始化:读取FixCookie到集合F={f1,f2,…,fM},hm_cookie集合(HashMap集合,用于存储cookie中属性和值到HTTP包的映射)
基于FixCookie算法流程图如图4所示。
经过三个聚类算法分析器处理后,最终将不同Domain下的HTTP包关联到同一个用户。
3.实验结果分析
本专利通过实验验证了算法的准确性,主要从准确率和覆盖率两个方面来衡量。设HTTP包集合为H,聚类分析器将HTTP包分为m组,每个组代表某个用户(实验环境中局域网IP代表一个用户),对于第i组,包集合为Hi,聚类算法可能将其他用户的HTTP包聚类到这个组,即第i组集合中包含其他一些用户的HTTP包,为了找出最能够代表第i组,取组集合Hi中用户对应HTTP数量最大的那个用户uk代表这个组,用户uk对应的集合为符号表示为sum(Hik)=max(sum(ui∈Hi)),那么准确率指组集合Hi中最大子集合在集合Hi中所占的比例即max(sum(ui∈Hi))/sum(Hi)。对集合H,令用户uk对应的HTTP包集合为H′k,对于第i组覆盖率指用户uk在集合Hi中包大小与集合H中包大小的比例,即sum(ui∈Hi)/sum(ui∈H)。
分析发现准确率和覆盖率相互影响、相互制约,准确率代表聚类的准确效果,覆盖率代表聚类的广度,准确率越高说明聚类算法越好,覆盖率越低说明算法将原本属于同一组聚类到其他的组中即同一个用户HTTP包被分散到多个组中。算法通过调试参数使得聚类条件更加苛刻时准确率提高了,覆盖率会随之降低,所以为了满足不同的业务需求,可通过参数的调试来达到准确率和覆盖率都满足业务需求的效果。
实验环境:win7操作系统,16GB内存,某局域网完整的HTTP包,数据量大小5百多万,时间跨度一天。
实验统计分析如下:
1)用户数量统计
通过统计HTTP包中UserIp属性,局域网中有66131个用户。
2)浏览器UA数量
浏览器UA中记录着浏览器、操作系统等信息,两个用户UA相等的概率比较小,为此可通过UA数量粗略估计整个局域网中用户的数量。统计发现UA数量为71379。可解释为一个用户存在多个浏览器或者局域网中存在热点连接着不同的移动终端。
3)FixCookie数据
FixCookie为人工库,在聚类算法中起到比较重要的作用,为整个聚类做了三次“减法”。目前,FixCookie库大小为601。
4)准确率及覆盖率分析
a)组和分对组
经过聚类算法处理后,最终算法分为的组大小为908462,准确率为1(完全分对)的组大小为874874。
b)可忽略组
为了试验分析的准确性,统计分析发现,组中存在许多准确率为1、覆盖率特别小的组, 例如组中准确率为1,组中包数量为1,用户发包数量为9348,组中所属用户包数为1,准确率为1。说明当前用户的这个包为孤立的包(孤立程度:1/9348)。
为了分析的准确性,将大小小于10的组(项目上线可根据实际情况调整)去除;之所以这样做是因为线上项目可以实际做到,而且小于10个包的组对推荐系统的实际价值不大。
c)去除孤立组后统计分析
算法结果分组数:85423
完全分对的组数:69650
d)准确率和覆盖率统计分析
下表统计了不同的准确率和覆盖率条件下对应的用户组数量大小,如表4所示:
表4 不同准确率和覆盖率下用户组大小
由此可知算法准确率1的组所占比例约为81.5%,对于组来说覆盖率>=0.5的组所占比例为约4%,组整体覆盖率趋于10%。实际需求中,还可通过不同准确率和覆盖率条件下HTTP包与总的数据量大小比例说明算法好坏。
表5统计了在不同准确率和覆盖率条件下对应的HTTP包数据量大小:
表5 不同准确率和覆盖率下HTTP包数据量
统计分析发现准确率为1的HTTP包所占比例为31.8%,准确率>=0.5的HTTP包所占比例为45%,覆盖率为1的HTTP包所占比例为0.2%,覆盖率>=0.5的HTTP包所占比例为20%。
e)平均覆盖率
平均覆盖率指对每个用户选取覆盖率最大的代表此用户覆盖率,对所有用户覆盖率求均值即为平均覆盖率。实验中用户平均覆盖率为:28054/66131=0.424。
用户时序行为关联聚类算法整体效果较好,能够保持准确率在80%,平均覆盖率在42%。能够将不同业务数据关联到同一个用户,进而进行推荐,算法准确率较高,聚类效果好。
Claims (7)
1.一种跨域用户关联方法,其步骤为:
1)搜索域名的FixCookie,建立一FixCookie列表;Fixcookie是长期不变的、被用来标识用户的cookie;
2)从网络中收集HTTP包,并按照设定的时间窗口对采集的HTTP包进行划分;其中,该时间窗口为划分用户访问关联第三方的界限;
3)对每一时间窗口内的HTTP包,根据FixCookie列表采用用户时序聚类分析器进行聚类,将同一用户的一次请求聚在一起,得到多个用户组集合;然后将各个时间窗口内相同用户的用户组集合合并为一个用户组集合;
4)采用FixCookie聚类分析器对采集的HTTP包进行聚类,将主机名相同且cookie名、cookie值相同的HTTP包聚为一组,如果同一组内的HTTP包位于步骤3)合并后不同的用户组集合内,则再将对应的用户组集合合并为一个用户组集合;
5)采用聚类分析器对采集的HTTP包进行聚类,将主机名、cookie名、cookie值相同且不存在FixCookie冲突的HTTP包聚为一组,如果同一组内的HTTP包位于步骤4)合并后不同的用户组集合内,则再将对应的用户组集合合并为一个用户组集合;
6)将位于步骤5)中同一用户组集合内的用户判定为不同域中的同一用户。
2.如权利要求1所述的方法,其特征在于,所述不存在FixCookie冲突的HTTP包为具有相同主机名、都含有相同的cookie属性,且cookie名相等但cookie值不相等。
3.如权利要求1或2所述的方法,其特征在于,所述步骤2)中,首先对从网络中收集HTTP包进行预处理,然后对采集的HTTP包进行划分;其中预处理方法为:
31)对收集的HTTP包进行过滤,去掉无Cookie的HTTP包和无浏览器标识UA的HTTP包;
32)将过滤后的HTTP包规整为键值对格式,然后按时间对进行排序;
33)将排序后的HTTP数据转化为JSON格式形式存储。
4.如权利要求3所述的方法,其特征在于,所述HTTP包信息包括:用户IP、出口IP、端口号、主机、路径、时间、浏览器标识UA、引用和Cookie。
5.一种信息推送方法,其步骤为:
1)搜索域名的FixCookie,建立一FixCookie列表;
2)从网络中收集HTTP包,并按照设定的时间窗口对采集的HTTP包进行划分;其中,该时间窗口为划分用户访问关联第三方的界限;
3)对每一时间窗口内的HTTP包,根据FixCookie列表采用用户时序聚类分析器进行聚类,将同一用户的一次请求聚在一起,得到多个用户组集合;然后将各个时间窗口内相同用户的用户组集合合并为一个用户组集合;
4)采用FixCookie聚类分析器对采集的HTTP包进行聚类,将主机名相同且cookie名、cookie值相同的HTTP包聚为一组,如果同一组内的HTTP包位于步骤3)合并后不同的用户组集合内,则将对应的用户组集合合并为一个用户组集合;
5)采用聚类分析器对采集的HTTP包进行聚类,将主机名、cookie名、cookie值相同且不存在FixCookie冲突的HTTP包聚为一组,如果同一组内的HTTP包位于步骤4)合并后不同的用户组集合内,则将对应的用户组集合合并为一个用户组集合;
6)将位于步骤5)中同一用户组集合内的用户判定为不同域中的同一用户;
7)根据步骤6)的结果提取同一用户在不同域中的特征信息,向具有相同特征的用户发送设定信息。
6.如权利要求5所述的方法,其特征在于,所述不存在FixCookie冲突的HTTP包为具有相同主机名、都含有相同的cookie属性,且cookie名相等但cookie值不相等。
7.如权利要求5或6所述的方法,其特征在于,所述步骤2)中,首先对从网络中收集HTTP包进行预处理,然后对采集的HTTP包进行划分;其中预处理方法为:
34)对收集的HTTP包进行过滤,去掉无Cookie的HTTP包和无浏览器标识UA的HTTP包;
35)将过滤后的HTTP包规整为键值对格式,然后按时间对进行排序;
36)将排序后的HTTP数据转化为JSON格式形式存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510199720.XA CN104951499B (zh) | 2015-04-23 | 2015-04-23 | 一种跨域用户关联方法及信息推送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510199720.XA CN104951499B (zh) | 2015-04-23 | 2015-04-23 | 一种跨域用户关联方法及信息推送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104951499A CN104951499A (zh) | 2015-09-30 |
CN104951499B true CN104951499B (zh) | 2018-03-02 |
Family
ID=54166158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510199720.XA Expired - Fee Related CN104951499B (zh) | 2015-04-23 | 2015-04-23 | 一种跨域用户关联方法及信息推送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104951499B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708878B (zh) * | 2015-11-16 | 2020-06-16 | 北京国双科技有限公司 | 终端识别方法及装置 |
CN105743988B (zh) * | 2016-03-30 | 2019-03-08 | 新浪网技术(中国)有限公司 | 网络用户追踪实现方法、装置及系统 |
CN105912685B (zh) * | 2016-04-15 | 2019-08-23 | 上海交通大学 | 基于跨领域的机票个性化推荐系统及推荐方法 |
CN107659602B (zh) * | 2016-07-26 | 2020-12-29 | 株式会社理光 | 关联用户访问记录的方法、装置及系统 |
CN107092503A (zh) * | 2017-03-28 | 2017-08-25 | 武汉斗鱼网络科技有限公司 | 移动端小数据uuid永久存储的方法及系统 |
CN112085099B (zh) * | 2020-09-09 | 2022-05-17 | 西南大学 | 一种分布式学生聚类集成方法及系统 |
CN114238784A (zh) * | 2021-12-17 | 2022-03-25 | 北京达佳互联信息技术有限公司 | 内容推荐方法、装置、系统、设备、介质及程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266610A (zh) * | 2008-04-25 | 2008-09-17 | 浙江大学 | 一种Web活跃用户网站访问模式的在线挖掘方法 |
CN102158365A (zh) * | 2011-05-20 | 2011-08-17 | 北京邮电大学 | 一种网络日志挖掘中的用户聚类方法及系统 |
CN104298782A (zh) * | 2014-11-07 | 2015-01-21 | 辽宁四维科技发展有限公司 | 互联网用户主动访问行为轨迹的分析方法 |
-
2015
- 2015-04-23 CN CN201510199720.XA patent/CN104951499B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266610A (zh) * | 2008-04-25 | 2008-09-17 | 浙江大学 | 一种Web活跃用户网站访问模式的在线挖掘方法 |
CN102158365A (zh) * | 2011-05-20 | 2011-08-17 | 北京邮电大学 | 一种网络日志挖掘中的用户聚类方法及系统 |
CN104298782A (zh) * | 2014-11-07 | 2015-01-21 | 辽宁四维科技发展有限公司 | 互联网用户主动访问行为轨迹的分析方法 |
Non-Patent Citations (3)
Title |
---|
一种新的基于cookie的互联网个性化推荐系统设计;胡畔等;《微型电脑应用》;20130930;第29卷(第9期);第44-47页 * |
基于互联网访问日志的用户特征分析研究;郑亮亮;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140515(第5期);第I138-3170页 * |
面向版权分析的P2P协同行为研究;管洋洋;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150315(第3期);第I139-266页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104951499A (zh) | 2015-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104951499B (zh) | 一种跨域用户关联方法及信息推送方法 | |
Zhou et al. | How YouTube videos are discovered and its impact on video views | |
US10268960B2 (en) | Information recommendation method, apparatus, and server based on user data in an online forum | |
Bollinger et al. | Automating cookie consent and {GDPR} violation detection | |
Parekh et al. | Studying jihadists on social media: A critique of data collection methodologies | |
KR101114012B1 (ko) | 정보 신규성 및 다이내믹스의 분석을 통해 뉴스피드를 개인화하는 원리 및 방법 | |
CN103218431B (zh) | 一种能识别网页信息自动采集的系统 | |
US8935390B2 (en) | Method and system for efficient and exhaustive URL categorization | |
US9276974B2 (en) | Topical activity monitor and identity collector system and method | |
US20140317117A1 (en) | Method, device and computer storage media for user preferences information collection | |
US20150205580A1 (en) | Method and System for Sorting Online Videos of a Search | |
JP2015509222A (ja) | 決定されたユーザグループに基づく情報推薦の提供 | |
Abbasi et al. | A social network system for analyzing publication activities of researchers | |
CN109685128A (zh) | 一种MB-kmeans++聚类方法及基于其的用户会话聚类方法 | |
GB2498762A (en) | Computing user traffic at the website based on user actions | |
CN106570013A (zh) | 页面访问数据的处理方法和装置 | |
KR20190122334A (ko) | 소셜 네트워크 시스템 기반의 질의 응답 서비스 제공을 위한 전문가 추천 방법 및 전문가 추천 시스템 | |
Kepner et al. | Hypersparse neural network analysis of large-scale internet traffic | |
CN104202418B (zh) | 为内容提供商推荐商业的内容分发网络的方法和系统 | |
CN103605744B (zh) | 网站搜索引擎流量数据的分析方法及装置 | |
Alzahrani et al. | Finding organizational accounts based on structural and behavioral factors on twitter | |
WO2015062652A1 (en) | Technique for data traffic analysis | |
WO2017050991A1 (en) | Aggregating profile information | |
US20150058307A1 (en) | Device for rapid provision of information | |
JP5384567B2 (ja) | 潜在クラス分析装置、潜在クラス分析方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180302 Termination date: 20190423 |
|
CF01 | Termination of patent right due to non-payment of annual fee |